summaryrefslogtreecommitdiff
path: root/addons/base_setup
diff options
context:
space:
mode:
authorYannick Tivisse <yti@odoo.com>2017-06-13 13:38:47 +0200
committerYannick Tivisse <yti@odoo.com>2017-06-19 17:37:38 +0200
commit3055b00c4454fa96d71c0350b7328a4918a04e80 (patch)
tree46cb046bd9ed8d62a17b1cde5d4f2d5fa7d21ab0 /addons/base_setup
parent3eb37589ab7a2e58922a69f42bbc1ec443df44ed (diff)
[IMP] base: Introduce generic methods `get_default_field` and `set_fields`
Method `get_default_fields` =========================== Currently all the methods beginning by `get_default` are used to fetch their default values, usually by looking in the ir.config_parameter table. As several methods `get_default_fields` have been defined in res_config classes, it better to define it in base and calling to super to avoid side effects like the following example - 2 classes that override the same class and define the same method. In that case one method will never be called, as it is ovewritten by the other. Method `set_fields` =================== Currently all the methods beginning by `set_` are used to set their values, usually in the ir.config_parameter table. As several methods `set_fields` have been defined in res_config classes, it better to define it in base and calling to super to avoid side effects like the following example - 2 classes that override the same class and define the same method. In that case one method will never be called, as it is ovewritten by the other. Methods `get_default_foo` and `set_foo` ======================================= This commit deprecates the method starting with `get_default_` or `set_` in the res.config models. A warning is raised in that case.
Diffstat (limited to 'addons/base_setup')
-rw-r--r--addons/base_setup/models/base_config_settings.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/addons/base_setup/models/base_config_settings.py b/addons/base_setup/models/base_config_settings.py
index c1a0076957c..b59347450c4 100644
--- a/addons/base_setup/models/base_config_settings.py
+++ b/addons/base_setup/models/base_config_settings.py
@@ -38,17 +38,20 @@ class BaseConfigSettings(models.TransientModel):
@api.model
def get_default_fields(self, fields):
+ res = super(BaseConfigSettings, self).get_default_fields(fields)
default_external_email_server = self.env['ir.config_parameter'].sudo().get_param('base_setup.default_external_email_server', default=False)
default_user_rights = self.env['ir.config_parameter'].sudo().get_param('base_setup.default_user_rights', default=False)
default_custom_report_footer = self.env['ir.config_parameter'].sudo().get_param('base_setup.default_custom_report_footer', default=False)
- return {
+ res.update({
'default_external_email_server': default_external_email_server,
'default_user_rights': default_user_rights,
'default_custom_report_footer': default_custom_report_footer,
- }
+ })
+ return res
@api.multi
- def set_default_fields(self):
+ def set_fields(self):
+ super(BaseConfigSettings, self).set_fields()
self.env['ir.config_parameter'].sudo().set_param("base_setup.default_external_email_server", self.default_external_email_server)
self.env['ir.config_parameter'].sudo().set_param("base_setup.default_user_rights", self.default_user_rights)
self.env['ir.config_parameter'].sudo().set_param("base_setup.default_custom_report_footer", self.default_custom_report_footer)