From acbd7beb1dc69241cf04e54be64784c41abc0deb Mon Sep 17 00:00:00 2001 From: Kirti Choudhary Date: Fri, 17 Aug 2018 16:38:26 +0200 Subject: [PATCH] [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 --- addons/mrp/data/mrp_data.xml | 28 +++++++++++++++------ addons/mrp/models/mrp_workcenter.py | 30 ++++++++++++++++++----- addons/mrp/security/ir.model.access.csv | 1 + addons/mrp/views/mrp_workcenter_views.xml | 4 +-- 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 @@ + + + availability + + + performance + + + quality + + + productive + + Material Availability - availability + 1 Equipment Failure - availability + 2 Setup and Adjustments - availability + 3 Reduced Speed - performance + 5 Process Defect - quality + 6 Reduced Yield - quality + 7 Fully Productive Time - productive + 0 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 @@ - - - +