[ADD] completion and values fetching for Date and Datetime fields, based on datejs's fuzzy date-ish parsing
bzr revid: xmo@openerp.com-20120403090807-6ct56fqkd1a6jcg1
This commit is contained in:
parent
9ec3559e00
commit
ac5eed3c6c
|
@ -1001,7 +1001,7 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w
|
||||||
* @returns {Array<Array>} domain to include in the resulting search
|
* @returns {Array<Array>} domain to include in the resulting search
|
||||||
*/
|
*/
|
||||||
make_domain: function (name, operator, facet) {
|
make_domain: function (name, operator, facet) {
|
||||||
return [[name, operator, facet.value()]];
|
return [[name, operator, this.get_value(facet)]];
|
||||||
},
|
},
|
||||||
get_domain: function (facet) {
|
get_domain: function (facet) {
|
||||||
var val = this.get_value(facet);
|
var val = this.get_value(facet);
|
||||||
|
@ -1176,20 +1176,24 @@ openerp.web.search.BooleanField = openerp.web.search.SelectionField.extend(/** @
|
||||||
* @extends openerp.web.search.DateField
|
* @extends openerp.web.search.DateField
|
||||||
*/
|
*/
|
||||||
openerp.web.search.DateField = openerp.web.search.Field.extend(/** @lends openerp.web.search.DateField# */{
|
openerp.web.search.DateField = openerp.web.search.Field.extend(/** @lends openerp.web.search.DateField# */{
|
||||||
template: "SearchView.date",
|
get_value: function (facet) {
|
||||||
start: function () {
|
return openerp.web.date_to_str(facet.get('json'));
|
||||||
this._super();
|
|
||||||
// FIXME: this insanity puts a div inside a span
|
|
||||||
this.datewidget = new openerp.web.DateWidget(this);
|
|
||||||
this.datewidget.prependTo(this.$element);
|
|
||||||
this.datewidget.$element.find("input")
|
|
||||||
.attr("size", 15)
|
|
||||||
.attr("autofocus", this.attrs.default_focus === '1' ? 'autofocus' : null)
|
|
||||||
.removeAttr('style');
|
|
||||||
this.datewidget.set_value(this.defaults[this.attrs.name] || false);
|
|
||||||
},
|
},
|
||||||
get_value: function () {
|
complete: function (needle) {
|
||||||
return this.datewidget.get_value() || null;
|
var d = Date.parse(needle);
|
||||||
|
if (!d) { return $.when(null); }
|
||||||
|
var value = openerp.web.format_value(d, this.attrs);
|
||||||
|
var label = _.str.sprintf(_.str.escapeHTML(
|
||||||
|
_t("Search %(field)s at: %(value)s")), {
|
||||||
|
field: '<em>' + this.attrs.string + '</em>',
|
||||||
|
value: '<strong>' + value + '</strong>'});
|
||||||
|
return $.when([{
|
||||||
|
category: this.attrs.string,
|
||||||
|
label: label,
|
||||||
|
value: value,
|
||||||
|
json: d,
|
||||||
|
field: this
|
||||||
|
}]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
/**
|
/**
|
||||||
|
@ -1204,9 +1208,8 @@ openerp.web.search.DateField = openerp.web.search.Field.extend(/** @lends opener
|
||||||
* @extends openerp.web.DateField
|
* @extends openerp.web.DateField
|
||||||
*/
|
*/
|
||||||
openerp.web.search.DateTimeField = openerp.web.search.DateField.extend(/** @lends openerp.web.search.DateTimeField# */{
|
openerp.web.search.DateTimeField = openerp.web.search.DateField.extend(/** @lends openerp.web.search.DateTimeField# */{
|
||||||
make_domain: function (name, operator, value) {
|
get_value: function (facet) {
|
||||||
return ['&', [name, '>=', value + ' 00:00:00'],
|
return openerp.web.datetime_to_str(facet.get('json'));
|
||||||
[name, '<=', value + ' 23:59:59']];
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.search.ManyToOneField = openerp.web.search.CharField.extend({
|
openerp.web.search.ManyToOneField = openerp.web.search.CharField.extend({
|
||||||
|
|
Loading…
Reference in New Issue