diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/sale_expense/static | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/sale_expense/static')
| -rw-r--r-- | addons/sale_expense/static/src/js/sale_order_many2one.js | 21 | ||||
| -rw-r--r-- | addons/sale_expense/static/tests/sale_order_many2one_tests.js | 79 |
2 files changed, 100 insertions, 0 deletions
diff --git a/addons/sale_expense/static/src/js/sale_order_many2one.js b/addons/sale_expense/static/src/js/sale_order_many2one.js new file mode 100644 index 00000000..9d63d1ea --- /dev/null +++ b/addons/sale_expense/static/src/js/sale_order_many2one.js @@ -0,0 +1,21 @@ +odoo.define('sale_expense.sale_order_many2one', function (require) { +"use strict"; + +var FieldMany2One = require('web.relational_fields').FieldMany2One; +var FieldRegistry = require('web.field_registry'); + + +var OrderField = FieldMany2One.extend({ + /** + * hide the search more option from the dropdown menu + * @override + * @private + * @returns {Object} + */ + _manageSearchMore: function (values) { + return values; + } +}); +FieldRegistry.add('sale_order_many2one', OrderField); +return OrderField; +}); diff --git a/addons/sale_expense/static/tests/sale_order_many2one_tests.js b/addons/sale_expense/static/tests/sale_order_many2one_tests.js new file mode 100644 index 00000000..00c7eed7 --- /dev/null +++ b/addons/sale_expense/static/tests/sale_order_many2one_tests.js @@ -0,0 +1,79 @@ +odoo.define('sale_expense.field_many_to_one_tests', function (require) { +"use strict"; + +var FormView = require('web.FormView'); +var testUtils = require('web.test_utils'); + +var createView = testUtils.createView; + + +QUnit.module('sale_expense', { + beforeEach: function () { + this.data = { + 'hr.expense': { + fields: { + name: { string: "Description", type: "char" }, + sale_order_id: { string: "Reinvoice Customer", type: 'many2one', relation: 'sale.order' }, + }, + records: [] + }, + 'sale.order': { + fields: { + name: { string: "Name", type: "char" }, + }, + records: [{ + id: 1, + name: "SO1", + }, { + id: 2, + name: "SO2", + }, { + id: 3, + name: "SO3" + }, { + id: 4, + name: "SO4" + }, { + id: 5, + name: "SO5" + }, { + id: 6, + name: "SO6" + }, { + id: 7, + name: "SO7" + }, { + id: 8, + name: "SO8" + }, { + id: 9, + name: "SO9" + }] + }, + }; + }, +}, function () { + QUnit.test('sale order many2one without search more option', async function (assert) { + assert.expect(3); + var form = await createView({ + View: FormView, + model: 'hr.expense', + data: this.data, + arch: + '<form string="Expense">' + + '<sheet>' + + '<group>' + + '<field name="sale_order_id" widget="sale_order_many2one"/>' + + '</group>' + + '</sheet>' + + '</form>' + }); + var $dropdown = form.$('.o_field_many2one input').autocomplete('widget'); + await testUtils.fields.many2one.clickOpenDropdown('sale_order_id'); + assert.containsN($dropdown, 'li:not(.o_m2o_dropdown_option)', 9); + assert.containsNone($dropdown, 'li.o_m2o_dropdown_option'); + assert.containsNone($dropdown, 'li.o_m2o_dropdown_option:contains("Search More...")', "Should not display the 'Search More... option'"); + form.destroy(); + }); +}); +}); |
