diff options
| author | Yannick Tivisse <yti@odoo.com> | 2017-06-13 13:38:47 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2017-06-19 17:37:38 +0200 |
| commit | 3055b00c4454fa96d71c0350b7328a4918a04e80 (patch) | |
| tree | 46cb046bd9ed8d62a17b1cde5d4f2d5fa7d21ab0 /addons/base_setup | |
| parent | 3eb37589ab7a2e58922a69f42bbc1ec443df44ed (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.py | 9 |
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) |
