summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirti Choudhary <kic@odoo.com>2018-08-17 16:38:26 +0200
committerArnold Moyaux <arm@odoo.com>2018-08-20 11:14:33 +0200
commitacbd7beb1dc69241cf04e54be64784c41abc0deb (patch)
tree5a309caf9700ae4f55bcb6006a7ca57c4598a64a
parent5b0a84f702cd35f2fc25ebb594b0b525a7007a16 (diff)
[IMP] mrp: domain on Effectiveness Category
When users create new productivity losses of type productivity or performance, they could not be used. Only one is selected randomly. So it makes no sense to allow that configuration. Related to task: 58625
-rw-r--r--addons/mrp/data/mrp_data.xml28
-rw-r--r--addons/mrp/models/mrp_workcenter.py30
-rw-r--r--addons/mrp/security/ir.model.access.csv1
-rw-r--r--addons/mrp/views/mrp_workcenter_views.xml4
4 files changed, 47 insertions, 16 deletions
diff --git a/addons/mrp/data/mrp_data.xml b/addons/mrp/data/mrp_data.xml
index 7749846f598..1343cbcf146 100644
--- a/addons/mrp/data/mrp_data.xml
+++ b/addons/mrp/data/mrp_data.xml
@@ -35,41 +35,55 @@
<field name='manufacture_to_resupply' eval='True'/>
</record>
+ <!-- Category for Blocking Reasons Workcenter -->
+ <record id="category_availability" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">availability</field>
+ </record>
+ <record id="category_performance" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">performance</field>
+ </record>
+ <record id="category_quality" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">quality</field>
+ </record>
+ <record id="category_productive" model="mrp.workcenter.productivity.loss.type">
+ <field name="loss_type">productive</field>
+ </record>
+
<!-- Reasons To Block Workcenter -->
<record id="block_reason0" model="mrp.workcenter.productivity.loss">
<field name="name">Material Availability</field>
- <field name="loss_type">availability</field>
+ <field name="loss_id" ref="mrp.category_availability"></field>
<field name="sequence">1</field>
</record>
<record id="block_reason1" model="mrp.workcenter.productivity.loss">
<field name="name">Equipment Failure</field>
- <field name="loss_type">availability</field>
+ <field name="loss_id" ref="mrp.category_availability"></field>
<field name="sequence">2</field>
</record>
<record id="block_reason2" model="mrp.workcenter.productivity.loss">
<field name="name">Setup and Adjustments</field>
- <field name="loss_type">availability</field>
+ <field name="loss_id" ref="mrp.category_availability"></field>
<field name="sequence">3</field>
</record>
<record id="block_reason4" model="mrp.workcenter.productivity.loss">
<field name="name">Reduced Speed</field>
- <field name="loss_type">performance</field>
+ <field name="loss_id" ref="mrp.category_performance"></field>
<field name="manual" eval="False"/>
<field name="sequence">5</field>
</record>
<record id="block_reason5" model="mrp.workcenter.productivity.loss">
<field name="name">Process Defect</field>
- <field name="loss_type">quality</field>
+ <field name="loss_id" ref="mrp.category_quality"></field>
<field name="sequence">6</field>
</record>
<record id="block_reason6" model="mrp.workcenter.productivity.loss">
<field name="name">Reduced Yield</field>
- <field name="loss_type">quality</field>
+ <field name="loss_id" ref="mrp.category_quality"></field>
<field name="sequence">7</field>
</record>
<record id="block_reason7" model="mrp.workcenter.productivity.loss">
<field name="name">Fully Productive Time</field>
- <field name="loss_type">productive</field>
+ <field name="loss_id" ref="mrp.category_productive"></field>
<field name="manual" eval="False"/>
<field name="sequence">0</field>
</record>
diff --git a/addons/mrp/models/mrp_workcenter.py b/addons/mrp/models/mrp_workcenter.py
index af78cad1ac9..7ba89c9e290 100644
--- a/addons/mrp/models/mrp_workcenter.py
+++ b/addons/mrp/models/mrp_workcenter.py
@@ -166,6 +166,28 @@ class MrpWorkcenter(models.Model):
return {'type': 'ir.actions.client', 'tag': 'reload'}
+class MrpWorkcenterProductivityLossType(models.Model):
+ _name = "mrp.workcenter.productivity.loss.type"
+ _rec_name = 'loss_type'
+
+ @api.depends('loss_type')
+ def name_get(self):
+ """ As 'category' field in form view is a Many2one, its value will be in
+ lower case. In order to display its value capitalized 'name_get' is
+ overrided.
+ """
+ result = []
+ for rec in self:
+ result.append((rec.id, rec.loss_type.title()))
+ return result
+
+ loss_type = fields.Selection([
+ ('availability', 'Availability'),
+ ('performance', 'Performance'),
+ ('quality', 'Quality'),
+ ('productive', 'Productive')], string='Category', default='availability', required=True)
+
+
class MrpWorkcenterProductivityLoss(models.Model):
_name = "mrp.workcenter.productivity.loss"
_description = "TPM Big Losses"
@@ -174,12 +196,8 @@ class MrpWorkcenterProductivityLoss(models.Model):
name = fields.Char('Reason', required=True)
sequence = fields.Integer('Sequence', default=1)
manual = fields.Boolean('Is a Blocking Reason', default=True)
- loss_type = fields.Selection([
- ('availability', 'Availability'),
- ('performance', 'Performance'),
- ('quality', 'Quality'),
- ('productive', 'Productive')], "Effectiveness Category",
- default='availability', required=True)
+ loss_id = fields.Many2one('mrp.workcenter.productivity.loss.type', domain=([('loss_type', 'in', ['quality', 'availability'])]), string='Category')
+ loss_type = fields.Selection(string='Effectiveness Category', related='loss_id.loss_type', store=True)
class MrpWorkcenterProductivity(models.Model):
diff --git a/addons/mrp/security/ir.model.access.csv b/addons/mrp/security/ir.model.access.csv
index 54e9e1c72cb..0f48edfa18d 100644
--- a/addons/mrp/security/ir.model.access.csv
+++ b/addons/mrp/security/ir.model.access.csv
@@ -1,6 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mrp_workcenter_productivity_loss_manager,mrp.workcenter.productivity.loss,model_mrp_workcenter_productivity_loss,mrp.group_mrp_manager,1,1,1,1
access_mrp_workcenter_productivity_loss,mrp.workcenter.productivity.loss,model_mrp_workcenter_productivity_loss,mrp.group_mrp_user,1,0,0,0
+access_mrp_workcenter_productivity_loss_type,mrp.workcenter.productivity.loss.type,model_mrp_workcenter_productivity_loss_type,mrp.group_mrp_user,1,0,0,0
access_mrp_workcenter_productivity,mrp.workcenter.productivity,model_mrp_workcenter_productivity,mrp.group_mrp_user,1,1,1,1
access_mrp_workcenter,mrp.workcenter,model_mrp_workcenter,mrp.group_mrp_user,1,0,0,0
access_mrp_routing,mrp.routing,model_mrp_routing,mrp.group_mrp_user,1,0,0,0
diff --git a/addons/mrp/views/mrp_workcenter_views.xml b/addons/mrp/views/mrp_workcenter_views.xml
index 283af4edcb8..a26ebc0d323 100644
--- a/addons/mrp/views/mrp_workcenter_views.xml
+++ b/addons/mrp/views/mrp_workcenter_views.xml
@@ -451,9 +451,7 @@
<group>
<group>
<field name="name"/>
- <field name="loss_type"/>
- </group><group>
- <field name="manual"/>
+ <field name="loss_id" widget="selection"/>
</group>
</group>
</form>