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

View File

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

View File

@ -12,5 +12,9 @@
<label name="mistake"/> <label name="mistake"/>
<field name="mistake"/> <field name="mistake"/>
<label name="mistake_rate"/> <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> </form>