summaryrefslogtreecommitdiff
path: root/addons/sale_expense/static
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/sale_expense/static
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/sale_expense/static')
-rw-r--r--addons/sale_expense/static/src/js/sale_order_many2one.js21
-rw-r--r--addons/sale_expense/static/tests/sale_order_many2one_tests.js79
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();
+ });
+});
+});