[IMP] make date field a single-component field, domained by equality

bzr revid: xmo@openerp.com-20110810110055-y2zmsn33lfbeksct
This commit is contained in:
Xavier Morel 2011-08-10 13:00:55 +02:00
parent bdacad5c2d
commit f7369a8de7
2 changed files with 4 additions and 75 deletions

View File

@ -708,75 +708,20 @@ openerp.base.search.BooleanField = openerp.base.search.SelectionField.extend(/**
}
});
openerp.base.search.DateField = openerp.base.search.Field.extend( /** @lends openerp.base.search.DateField# */{
template: 'SearchView.fields.date',
/**
* enables date picker on the HTML widgets
*/
start: function () {
this._super();
this.$element.find('input').datepicker({
this.$element.addClass('field_date').datepicker({
dateFormat: 'yy-mm-dd'
});
},
stop: function () {
this.$element.find('input').datepicker('destroy');
this.$element.datepicker('destroy');
},
/**
* Returns an object with two optional keys ``from`` and ``to`` providing
* the values for resp. the from and to sections of the date widget.
*
* If a key is absent, then the corresponding field was not filled.
*
* @returns {Object}
*/
get_values: function () {
var values_array = this.$element.find('input').serializeArray();
if (!values_array || !values_array[0]) {
throw new openerp.base.search.Invalid(
this.attrs.name, null, "widget not ready");
}
var from = values_array[0].value,
to = values_array[1].value;
var field_values = {};
if (from) {
field_values.from = from;
}
if (to) {
field_values.to = to;
}
return field_values;
},
get_context: function () {
var values = this.get_values();
if (!this.attrs.context || _.isEmpty(values)) {
return null;
}
return _.extend(
{}, this.attrs.context,
{own_values: {self: values}});
},
get_domain: function () {
var values = this.get_values();
if (_.isEmpty(values)) {
return null;
}
var domain = this.attrs['filter_domain'];
if (!domain) {
domain = [];
if (values.from) {
domain.push([this.attrs.name, '>=', values.from]);
}
if (values.to) {
domain.push([this.attrs.name, '<=', values.to]);
}
return domain;
}
return _.extend(
{}, domain,
{own_values: {self: values}});
get_value: function () {
return this.$element.val();
}
});
openerp.base.search.DateTimeField = openerp.base.search.DateField.extend({

View File

@ -968,22 +968,6 @@
<t t-if="filters.length" t-raw="filters.render(defaults)"/>
</div>
</t>
<t t-name="SearchView.fields.date">
<label style="display: block" t-att-title="attrs.help"
t-att-for="element_id">
<t t-esc="attrs.string || attrs.name"/>
<span t-if="attrs.help">(?)</span>
</label>
<div style="white-space: nowrap;" t-att-id="element_id">
<input t-att-name="attrs.name" type="text" class="field_date"
t-att-value="defaults[attrs.name] || ''"
t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined"/>
to
<input t-att-name="attrs.name" type="text" class="field_date"
t-att-value="defaults[attrs.name] || ''"/>
<t t-if="filters.length" t-raw="filters.render(defaults)"/>
</div>
</t>
<t t-name="SearchView.field.selection">
<label style="display: block" t-att-title="attrs.help"
t-att-for="element_id">