mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
[IMP] mrp_bom_version: Define if draft is active in config parameters
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user