[IMP] mrp_bom_version: Define if draft is active in config parameters

This commit is contained in:
oihane
2015-10-23 15:14:19 +02:00
committed by Kay K. Cross
parent 327e3c7bf6
commit 85a4878eeb
6 changed files with 39 additions and 48 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,19 +6,6 @@
<field name="model">mrp.config.settings</field>
<field name="inherit_id" ref="mrp.view_mrp_config" />
<field name="arch" type="xml">
<separator string="Master Data" position="after">
<field name="has_default_company" invisible="1" />
<group groups="base.group_multi_company">
<label for="id" string="Company"/>
<div>
<div attrs="{'invisible': [('has_default_company', '=', True)]}">
<label for="company_id" string="Select Company"/>
<field name="company_id" widget="selection"
class="oe_inline"/>
</div>
</div>
</group>
</separator>
<xpath expr="//field[@name='module_mrp_repair']/.." position="after">
<div>
<field name="group_mrp_bom_version" class="oe_inline"/>