summaryrefslogtreecommitdiff
path: root/odoo/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-11-16 19:30:20 +0100
committerChristophe Simonis <chs@odoo.com>2018-11-16 19:30:20 +0100
commit6faad524cf5e4db02855cb213277c40aee14c42a (patch)
tree383c984dc1461a03481baa9fbdce8c156ca97e2e /odoo/addons
parent3657dc77c2ddb4275f07d1271b93e7f25e09913a (diff)
parentbc744a1da46efda6f1eb5c341f2fa5df30c9c7ad (diff)
[MERGE] forward port branch 12.0 up to bc744a1da46
Diffstat (limited to 'odoo/addons')
-rw-r--r--odoo/addons/base/rng/calendar_view.rng2
-rw-r--r--odoo/addons/base/static/src/js/res_config_settings.js9
-rw-r--r--odoo/addons/base/static/tests/base_settings_tests.js4
-rw-r--r--odoo/addons/base/views/ir_module_views.xml4
-rw-r--r--odoo/addons/base/views/res_partner_views.xml10
-rw-r--r--odoo/addons/test_main_flows/static/src/js/tour.js2
-rw-r--r--odoo/addons/test_new_api/ir.model.access.csv4
-rw-r--r--odoo/addons/test_new_api/models.py35
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py20
9 files changed, 80 insertions, 10 deletions
diff --git a/odoo/addons/base/rng/calendar_view.rng b/odoo/addons/base/rng/calendar_view.rng
index 949c3f48318..500a61b3389 100644
--- a/odoo/addons/base/rng/calendar_view.rng
+++ b/odoo/addons/base/rng/calendar_view.rng
@@ -32,7 +32,7 @@
<rng:ref name="field"/>
</rng:zeroOrMore>
<rng:optional>
- <rng:element name="template">
+ <rng:element name="templates">
<rng:oneOrMore>
<rng:ref name="any"/>
</rng:oneOrMore>
diff --git a/odoo/addons/base/static/src/js/res_config_settings.js b/odoo/addons/base/static/src/js/res_config_settings.js
index 855b03452ae..9514d431141 100644
--- a/odoo/addons/base/static/src/js/res_config_settings.js
+++ b/odoo/addons/base/static/src/js/res_config_settings.js
@@ -354,6 +354,15 @@ var BaseSettingController = FormController.extend({
this.disableAutofocus = true;
this.renderer.activeSettingTab = this.initialState.context.module;
},
+ /**
+ * Settings view should always be in edit mode, so we have to override
+ * default behaviour
+ *
+ * @override
+ */
+ willRestore: function () {
+ this.mode = 'edit';
+ },
});
var BaseSettingsModel = BasicModel.extend({
diff --git a/odoo/addons/base/static/tests/base_settings_tests.js b/odoo/addons/base/static/tests/base_settings_tests.js
index e0ee5dd6380..eb9726b9fa6 100644
--- a/odoo/addons/base/static/tests/base_settings_tests.js
+++ b/odoo/addons/base/static/tests/base_settings_tests.js
@@ -87,7 +87,7 @@ QUnit.module('base_settings_tests', {
});
QUnit.test('settings views does not read existing id when coming back in breadcrumbs', function (assert) {
- assert.expect(7);
+ assert.expect(8);
var actions = [{
id: 1,
@@ -127,6 +127,8 @@ QUnit.module('base_settings_tests', {
actionManager.doAction(1);
actionManager.$('button[name="4"]').click();
$('.o_control_panel .breadcrumb-item a').click();
+ assert.ok(actionManager.$('.o_form_view').hasClass('o_form_editable'),
+ 'settings view should still be in edit mode');
assert.verifySteps([
'load_views', // initial setting action
'default_get', // this is a setting view => create new record
diff --git a/odoo/addons/base/views/ir_module_views.xml b/odoo/addons/base/views/ir_module_views.xml
index ebf6700ecea..7f1bb9727a9 100644
--- a/odoo/addons/base/views/ir_module_views.xml
+++ b/odoo/addons/base/views/ir_module_views.xml
@@ -37,8 +37,8 @@
<search string="Search modules">
<field name="name" filter_domain="['|', '|', ('summary', 'ilike', self), ('shortdesc', 'ilike', self), ('name',
'ilike', self)]" string="Module"/>
- <filter name="app" string="Apps" domain="[('application', '=', 1)]"/>
- <filter name="extra" string="Extra" domain="[('application', '=', 0)]"/>
+ <filter name="app" string="Apps" domain="[('application', '=', True)]"/>
+ <filter name="extra" string="Extra" domain="[('application', '=', False)]"/>
<separator/>
<filter name="installed" string="Installed" domain="[('state', 'in', ['installed', 'to upgrade', 'to remove'])]"/>
<filter name="not_installed" string="Not Installed" domain="[('state', 'in', ['uninstalled', 'uninstallable', 'to install'])]"/>
diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml
index 9a86939782b..1880589a326 100644
--- a/odoo/addons/base/views/res_partner_views.xml
+++ b/odoo/addons/base/views/res_partner_views.xml
@@ -449,15 +449,15 @@
<search string="Search Partner">
<field name="name"
filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email','ilike',self)]"/>
- <field name="parent_id" domain="[('is_company','=',1)]" operator="child_of"/>
+ <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/>
<filter name="filter_my_partners" help="My Contacts"
domain="[('user_id','=',uid)]"/>
<separator/>
- <filter string="Individuals" name="type_person" domain="[('is_company','=',0)]"/>
- <filter string="Companies" name="type_company" domain="[('is_company','=',1)]"/>
+ <filter string="Individuals" name="type_person" domain="[('is_company','=',False)]"/>
+ <filter string="Companies" name="type_company" domain="[('is_company','=',True)]"/>
<separator/>
- <filter string="Customers" name="customer" domain="[('customer','=',1), ('parent_id', '=', False)]"/>
- <filter string="Vendors" name="supplier" domain="[('supplier','=',1), ('parent_id', '=', False)]"/>
+ <filter string="Customers" name="customer" domain="[('customer','=',True), ('parent_id', '=', False)]"/>
+ <filter string="Vendors" name="supplier" domain="[('supplier','=',True), ('parent_id', '=', False)]"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<separator/>
<field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/>
diff --git a/odoo/addons/test_main_flows/static/src/js/tour.js b/odoo/addons/test_main_flows/static/src/js/tour.js
index 717c9d81884..d79036346b2 100644
--- a/odoo/addons/test_main_flows/static/src/js/tour.js
+++ b/odoo/addons/test_main_flows/static/src/js/tour.js
@@ -671,7 +671,7 @@ tour.register('main_flow_tour', {
position: 'bottom',
}, {
edition: "enterprise",
- trigger: '.o_app[data-menu-xmlid="account.menu_finance"]',
+ trigger: '.o_app[data-menu-xmlid="account_accountant.menu_accounting"]',
content: _t('Go to Accounting'),
position: 'bottom',
}, {
diff --git a/odoo/addons/test_new_api/ir.model.access.csv b/odoo/addons/test_new_api/ir.model.access.csv
index c825fb51c59..77c881dcc4d 100644
--- a/odoo/addons/test_new_api/ir.model.access.csv
+++ b/odoo/addons/test_new_api/ir.model.access.csv
@@ -22,3 +22,7 @@ access_test_new_api_multi_compute_inverse,access_test_new_api_multi_compute_inve
access_test_new_api_recursive,access_test_new_api_recursive,model_test_new_api_recursive,,1,1,1,1
access_test_new_api_cascade,access_test_new_api_cascade,model_test_new_api_cascade,,1,1,1,1
access_test_new_api_binary_svg,access_test_new_api_binary_svg,model_test_new_api_binary_svg,,1,1,1,1
+access_test_new_api_monetary_base,access_test_new_api_monetary_base,model_test_new_api_monetary_base,,1,1,1,1
+access_test_new_api_monetary_related,access_test_new_api_monetary_related,model_test_new_api_monetary_related,,1,1,1,1
+access_test_new_api_monetary_custom,access_test_new_api_monetary_custom,model_test_new_api_monetary_custom,,1,1,1,1
+access_test_new_api_monetary_inherits,access_test_new_api_monetary_inherits,model_test_new_api_monetary_inherits,,1,1,1,1
diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py
index 043ee8a0b7d..7d7ad777b44 100644
--- a/odoo/addons/test_new_api/models.py
+++ b/odoo/addons/test_new_api/models.py
@@ -468,3 +468,38 @@ class BinarySvg(models.Model):
name = fields.Char(required=True)
image_attachment = fields.Binary(attachment=True)
image_wo_attachment = fields.Binary(attachment=False)
+
+
+class MonetaryBase(models.Model):
+ _name = 'test_new_api.monetary_base'
+ _description = 'Monetary Base'
+
+ base_currency_id = fields.Many2one('res.currency')
+ amount = fields.Monetary(currency_field='base_currency_id')
+
+
+class MonetaryRelated(models.Model):
+ _name = 'test_new_api.monetary_related'
+ _description = 'Monetary Related'
+
+ monetary_id = fields.Many2one('test_new_api.monetary_base')
+ currency_id = fields.Many2one('res.currency', related='monetary_id.base_currency_id')
+ amount = fields.Monetary(related='monetary_id.amount')
+
+
+class MonetaryCustom(models.Model):
+ _name = 'test_new_api.monetary_custom'
+ _description = 'Monetary Related Custom'
+
+ monetary_id = fields.Many2one('test_new_api.monetary_base')
+ x_currency_id = fields.Many2one('res.currency', related='monetary_id.base_currency_id')
+ x_amount = fields.Monetary(related='monetary_id.amount')
+
+
+class MonetaryInherits(models.Model):
+ _name = 'test_new_api.monetary_inherits'
+ _description = 'Monetary Inherits'
+ _inherits = {'test_new_api.monetary_base': 'monetary_id'}
+
+ monetary_id = fields.Many2one('test_new_api.monetary_base', required=True, ondelete='cascade')
+ currency_id = fields.Many2one('res.currency')
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index caa4eedf4bf..9b3da038c5c 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -1054,6 +1054,26 @@ class TestFields(common.TransactionCase):
])
self.assertEqual(attachment.mimetype, 'text/plain')
+ def test_93_monetary_related(self):
+ """ Check the currency field on related monetary fields. """
+ # check base field
+ field = self.env['test_new_api.monetary_base']._fields['amount']
+ self.assertEqual(field.currency_field, 'base_currency_id')
+
+ # related fields must use the field 'currency_id' or 'x_currency_id'
+ field = self.env['test_new_api.monetary_related']._fields['amount']
+ self.assertEqual(field.related, ('monetary_id', 'amount'))
+ self.assertEqual(field.currency_field, 'currency_id')
+
+ field = self.env['test_new_api.monetary_custom']._fields['x_amount']
+ self.assertEqual(field.related, ('monetary_id', 'amount'))
+ self.assertEqual(field.currency_field, 'x_currency_id')
+
+ # inherited field must use the same field as its parent field
+ field = self.env['test_new_api.monetary_inherits']._fields['amount']
+ self.assertEqual(field.related, ('monetary_id', 'amount'))
+ self.assertEqual(field.currency_field, 'base_currency_id')
+
class TestX2many(common.TransactionCase):
def test_search_many2many(self):