diff options
| author | Kirti Choudhary <kic@odoo.com> | 2018-08-17 16:38:26 +0200 |
|---|---|---|
| committer | Arnold Moyaux <arm@odoo.com> | 2018-08-20 11:14:33 +0200 |
| commit | acbd7beb1dc69241cf04e54be64784c41abc0deb (patch) | |
| tree | 5a309caf9700ae4f55bcb6006a7ca57c4598a64a /addons | |
| parent | 5b0a84f702cd35f2fc25ebb594b0b525a7007a16 (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
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/mrp/data/mrp_data.xml | 28 | ||||
| -rw-r--r-- | addons/mrp/models/mrp_workcenter.py | 30 | ||||
| -rw-r--r-- | addons/mrp/security/ir.model.access.csv | 1 | ||||
| -rw-r--r-- | 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 @@ <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> |
