[FIX] web: fix searching on datetime fields

Previously, one could not create a custom filter on a datetime
field without encountering a crash.
This commit is contained in:
David Monjoie
2017-06-23 09:58:42 +02:00
parent acfb54055a
commit 1192ca1048
2 changed files with 59 additions and 1 deletions
@@ -187,7 +187,7 @@ ExtendedSearchProposition.DateTime = ExtendedSearchProposition.Field.extend({
{value: "∄", text: _lt("is not set")}
],
get_value: function (index) {
return this["datewidget_" + (index || 0)].get_value();
return this["datewidget_" + (index || 0)].getValue();
},
get_domain: function (field, operator) {
switch (operator.value) {
@@ -199,6 +199,64 @@ QUnit.module('relational_fields', {
form.destroy();
});
QUnit.test('many2ones in form views with search more', function (assert) {
assert.expect(3);
this.data.partner.records.push({
id: 5,
display_name: "Partner 4",
}, {
id: 6,
display_name: "Partner 5",
}, {
id: 7,
display_name: "Partner 6",
}, {
id: 8,
display_name: "Partner 7",
}, {
id: 9,
display_name: "Partner 8",
}, {
id: 10,
display_name: "Partner 9",
});
this.data.partner.fields.datetime.searchable = true;
var form = createView({
View: FormView,
model: 'partner',
data: this.data,
arch: '<form string="Partners">' +
'<sheet>' +
'<group>' +
'<field name="trululu"/>' +
'</group>' +
'</sheet>' +
'</form>',
archs: {
'partner,false,list': '<tree><field name="display_name"/></tree>',
'partner,false,search': '<search><field name="datetime"/></search>',
},
res_id: 1,
});
form.$buttons.find('.o_form_button_edit').click();
var $dropdown = form.$('.o_field_many2one input').autocomplete('widget');
form.$('.o_field_many2one input').click();
$dropdown.find('.o_m2o_dropdown_option:contains(Search)').mouseenter().click(); // Open Search More
assert.strictEqual($('tr.o_data_row').length, 9, "should display 9 records");
$('.o_searchview_more').click(); // Magnifying class for more filters
$('button:contains(Filters)').click();
$('.o_add_filter').click(); // Add a custom filter, datetime field is selected
assert.strictEqual($('li.o_filter_condition select.o_searchview_extended_prop_field').val(), 'datetime',
"datetime field should be selected");
$('.o_apply_filter').click();
assert.strictEqual($('tr.o_data_row').length, 0, "should display 0 records");
form.destroy();
});
QUnit.test('onchanges on many2ones trigger when editing record in form view', function (assert) {
assert.expect(9);