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
-
-
-
-
-
-
-