add domains in calibrations

This commit is contained in:
raskolnikov 2022-11-27 00:44:19 -05:00
parent ca72657c69
commit 8bede84e96
3 changed files with 33 additions and 19 deletions

View File

@ -5,7 +5,7 @@ from trytond.model import (
from trytond.wizard import (
Button, StateAction, StateTransition, StateView, Wizard)
from trytond.transaction import Transaction
from trytond.pyson import Bool, Eval, If, Id
from trytond.pyson import Bool, Eval, If, Id, Equal
from trytond.pool import Pool
from trytond.modules.currency.fields import Monetary
from trytond.modules.product import price_digits
@ -238,6 +238,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
('propietary_address', '=', Eval('propietary_address'))],
states=_states,
depends=['service_maintenance'])
equipment_calibrate = fields.Boolean("Calibrate Equipment", states={'readonly': False})
#when the maintenance is in agended status
diary = fields.One2Many('optical_equipment_maintenance.diary', 'diary')
#Preventive maintenance
@ -253,10 +254,11 @@ class Maintenance(Workflow, ModelSQL, ModelView):
patterns_equipments = fields.Char("K Pattern", states={'readonly': True},
depends=['equipment'])
lines_calibration = fields.One2Many('optical_equipment.maintenance.calibration_sample', 'maintenance', "Lines of Calibration",
states={'readonly': Eval('state') == 'finished'})
states={'readonly': Eval('state') == 'finished',
'required': Eval('equipment_calibrate')})
calibration_total = fields.One2Many('optical_equipment.maintenance.calibration', 'maintenance', "Calibration Total",
states={'readonly': Eval('state') == 'finished'})
states={'readonly': Eval('state') == 'finished',
'required': Eval('equipment_calibrate')})
maintenance_lines = fields.One2Many('optical_equipment.maintenance.line', 'maintenance', 'Lines')
description_activity = fields.Char('Activity')
next_maintenance = fields.Function(fields.Date('Next Maintenance'), 'get_next_maintenance')
@ -267,8 +269,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
states={'invisible': If(Eval('temperature_min') == None, True),
'readonly' : (Eval('state') == 'finished')},
depends=['itemperature_min']
)
depends=['itemperature_min'])
moisture_min = fields.Float("Moisture Min")
moisture_max = fields.Float("Moisture Max")
moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
@ -303,6 +304,12 @@ class Maintenance(Workflow, ModelSQL, ModelView):
}),
('//page[@id="corrective"]', 'states',{
'invisible': If(Eval('maintenance_type') != 'corrective', True),
}),
('//page[@id="calibration"]', 'states',{
'invisible': ~Eval('equipment_calibrate'),
}),
('//page[@id="graph"]', 'states',{
'invisible': ~Eval('equipment_calibrate'),
})
]
@ -531,8 +538,10 @@ class Maintenance(Workflow, ModelSQL, ModelView):
def on_change_equipment(self):
if self.equipment and self.equipment.product.calibration:
self.patterns_equipments = self.equipment.product.k_pattern
self.equipment_calibrate = self.equipment.product.calibration
else:
self.patterns_equipments = None
self.equipment_calibrate = False
@classmethod
@ModelView.button
@ -684,11 +693,12 @@ class CalibrationSample(sequence_ordered(), ModelView, ModelSQL):
__name__ = 'optical_equipment.maintenance.calibration_sample'
maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenance',
ondelete='CASCADE')
product = fields.Function(fields.Integer("Product ID"), 'get_product_id')
maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenance')
product = fields.Function(fields.Integer("Product ID"), 'on_change_with_product')
number_sample = fields.Float("Sample #", _digits)
value_patterns = fields.Many2One('optical_equipment.product_pattern', "Value Pattern", ondelete='RESTRICT', required=True)
value_patterns = fields.Many2One('optical_equipment.product_pattern', "Value Pattern", ondelete='RESTRICT', required=True,
domain=[('product', '=', Eval('product'))],
depends=['product'])
value_equipment = fields.Float("Value in Equipment", _digits, required=True,
states={'readonly': Eval('value_patterns') == None})
mistake = fields.Float("Mistake", _digits)
@ -697,14 +707,12 @@ class CalibrationSample(sequence_ordered(), ModelView, ModelSQL):
depends=['mistake'])
@fields.depends('maintenance', 'product')
def get_product_id(self, name):
product = None
if self.maintenance and self.maintenance.equipment:
product = self.maintenance.equipment.product.id
return product
@fields.depends('maintenance', '_parent_maintenance.equipment')
def on_change_with_product(self, name=None):
if self.maintenance:
return self.maintenance.equipment.product.template.id
@fields.depends('value_patterns', 'value_equipment',
'mistake', 'mistake_rate')
def on_change_value_equipment(self):

View File

@ -16,6 +16,8 @@
<field name="equipment"/>
<label name="service_maintenance"/>
<field name="service_maintenance"/>
<label name="equipment_calibrate" invisible="0"/>
<field name="equipment_calibrate" invisible="0"/>
<newline/>
<label name="description_activity"/>
<field name="description_activity" colspan="3"/>

View File

@ -12,5 +12,9 @@
<label name="mistake"/>
<field name="mistake"/>
<label name="mistake_rate"/>
<field name="mistake_rate"/>
<field name="mistake_rate"/>
<label name="product" invisible="1"/>
<field name="product" invisible="1"/>
<label name="maintenance" />
<field name="maintenance"/>
</form>