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