diff --git a/product.py b/product.py index 38f3d3f..d46bfca 100644 --- a/product.py +++ b/product.py @@ -47,17 +47,35 @@ class Template(metaclass=PoolMeta): __name__ = 'product.template' equipment = fields.Boolean('It is equipment') - equipment_type = fields.Selection(_EQUIPMENT_TYPE, 'Equipment type', required=True) + equipment_type = fields.Selection(_EQUIPMENT_TYPE, 'Equipment type', + states={'required': Eval('equipment', False)}, + depends=['equipment'] + ) risk = fields.Selection(_RISK, 'Type risk') - use = fields.Selection(_USE, 'Use', required=True) - biomedical_class = fields.Selection(_BIOMEDICAL_CLASS, - 'Biomedical Class', required=True) - main_tecnology = fields.Selection(_MAIN_TECNOLOGY, - 'Main tecnology', required=True) + use = fields.Selection(_USE, 'Use', + states={'required': Eval('equipment', False)}, + depends=['equipment'] + ) + biomedical_class = fields.Selection(_BIOMEDICAL_CLASS,'Biomedical Class', + states={'required': Eval('equipment', False)}, + depends=['equipment'] + ) + main_tecnology = fields.Selection(_MAIN_TECNOLOGY,'Main tecnology', + states={'required': Eval('equipment', False)}, + depends=['equipment'] + ) calibration = fields.Boolean("Apply calibration") observation = fields.Text('Observation') - mark_category = fields.Many2One('product.category', 'Mark') - model_category = fields.Many2One('product.category', "Model") + mark_category = fields.Many2One('product.category', 'Mark', + domain=[('parent', '=', None)], + states={'required': Eval('equipment', False)}, + depends=['equipment'] + ) + model_category = fields.Many2One('product.category', "Model", + domain=[('parent', '=', Eval('mark_category'))], + states={'required': Eval('equipment', False)}, + depends=['equipment'] + ) reference = fields.Char("Reference", size=None) origin_country = fields.Many2One('country.country',"Origin Country") software_version = fields.Char( diff --git a/view/template_form.xml b/view/template_form.xml index c5e7f2c..17e42f8 100644 --- a/view/template_form.xml +++ b/view/template_form.xml @@ -9,7 +9,8 @@ this repository contains the full copyright notices and license terms. -->