diff --git a/mrp_bom_version/models/__init__.py b/mrp_bom_version/models/__init__.py index 7ed2e275b..fa22f90a6 100644 --- a/mrp_bom_version/models/__init__.py +++ b/mrp_bom_version/models/__init__.py @@ -3,5 +3,4 @@ # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import mrp_bom -from . import res_company from . import res_config diff --git a/mrp_bom_version/models/mrp_bom.py b/mrp_bom_version/models/mrp_bom.py index aa9627825..2298f8be2 100644 --- a/mrp_bom_version/models/mrp_bom.py +++ b/mrp_bom_version/models/mrp_bom.py @@ -78,9 +78,10 @@ class MrpBom(models.Model): @api.multi def button_draft(self): + active_draft = self.env['mrp.config.settings']._get_parameter( + 'active.draft') self.write({ - 'active': (self.company_id.active_draft if self.company_id else - self.env.user.company_id.active_draft), + 'active': active_draft and active_draft.value or False, 'state': 'draft', }) @@ -99,10 +100,11 @@ class MrpBom(models.Model): } def _copy_bom(self): + active_draft = self.env['mrp.config.settings']._get_parameter( + 'active.draft') new_bom = self.copy({ 'version': self.version + 1, - 'active': (self.company_id.active_draft if self.company_id else - self.env.user.company_id.active_draft), + 'active': active_draft and active_draft.value or False, 'parent_bom': self.id, }) return new_bom diff --git a/mrp_bom_version/models/res_company.py b/mrp_bom_version/models/res_company.py deleted file mode 100644 index 93a1157bc..000000000 --- a/mrp_bom_version/models/res_company.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -# (c) 2015 Oihane Crucelaegui - AvanzOSC -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html - -from openerp import fields, models - - -class ResCompany(models.Model): - _inherit = 'res.company' - - active_draft = fields.Boolean( - string='Keep re-editing BoM active', - help='This will allow you to define if those BoM passed back to draft' - ' are still activated or not', default=False) diff --git a/mrp_bom_version/models/res_config.py b/mrp_bom_version/models/res_config.py index b8ce0d8d1..67cd714d4 100644 --- a/mrp_bom_version/models/res_config.py +++ b/mrp_bom_version/models/res_config.py @@ -2,25 +2,12 @@ # (c) 2015 Oihane Crucelaegui - AvanzOSC # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import fields, models +from openerp import api, fields, models class MrpConfigSettings(models.TransientModel): _inherit = 'mrp.config.settings' - def _default_company_id(self): - return self.env.user.company_id - - def _default_has_default_company(self): - count = self.env['res.company'].search_count([]) - return bool(count == 1) - - company_id = fields.Many2one( - comodel_name='res.company', string='Company', required=True, - default=_default_company_id) - has_default_company = fields.Boolean( - string='Has default company', readonly=True, - default=_default_has_default_company) group_mrp_bom_version = fields.Boolean( string='Allow to re-edit BoMs', implied_group='mrp_bom_version.group_mrp_bom_version', @@ -28,4 +15,33 @@ class MrpConfigSettings(models.TransientModel): active_draft = fields.Boolean( string='Keep re-editing BoM active', help='This will allow you to define if those BoM passed back to draft' - ' are still activated or not', related='company_id.active_draft') + ' are still activated or not') + + def _get_parameter(self, key, default=False): + param_obj = self.env['ir.config_parameter'] + rec = param_obj.search([('key', '=', key)]) + return rec or default + + def _write_or_create_param(self, key, value): + param_obj = self.env['ir.config_parameter'] + rec = self._get_parameter(key) + if rec: + if not value: + rec.unlink() + else: + rec.value = value + elif value: + param_obj.create({'key': key, 'value': value}) + + @api.multi + def get_default_parameters(self): + def get_value(key, default=''): + rec = self._get_parameter(key) + return rec and rec.value or default + return { + 'active_draft': get_value('active.draft', False), + } + + @api.multi + def set_parameters(self): + self._write_or_create_param('active.draft', self.active_draft) diff --git a/mrp_bom_version/tests/test_mrp_bom_version.py b/mrp_bom_version/tests/test_mrp_bom_version.py index c3dffde30..20c4a4fa2 100644 --- a/mrp_bom_version/tests/test_mrp_bom_version.py +++ b/mrp_bom_version/tests/test_mrp_bom_version.py @@ -9,6 +9,7 @@ class TestMrpBomVersion(common.TransactionCase): def setUp(self): super(TestMrpBomVersion, self).setUp() + self.mrp_config = self.env['mrp.config.settings'] self.bom_model = self.env['mrp.bom'] self.company = self.env.ref('base.main_company') vals = { @@ -50,7 +51,7 @@ class TestMrpBomVersion(common.TransactionCase): self.mrp_bom.active, 'Check must be False, default in company') def test_mrp_bom_back2draft_active(self): - self.company.active_draft = True + self.mrp_config.active_draft = True self.mrp_bom.button_activate() self.mrp_bom.button_draft() self.assertTrue( diff --git a/mrp_bom_version/views/res_config_view.xml b/mrp_bom_version/views/res_config_view.xml index 09fc6689b..59a42a62d 100644 --- a/mrp_bom_version/views/res_config_view.xml +++ b/mrp_bom_version/views/res_config_view.xml @@ -6,19 +6,6 @@ mrp.config.settings - - - - -