From 0627e36185c425532d23f88b943d2a8d4111d11b Mon Sep 17 00:00:00 2001 From: Stepan Savelyev Date: Tue, 14 Jan 2020 09:38:51 +0500 Subject: [PATCH] [ADD] form-visible attribute of a transient field --- data/fields_default.xml | 2 ++ models/res_partner_contract_field.py | 1 + models/res_partner_contract_field_transient.py | 1 + wizard/res_partner_contract_wizard.py | 13 ++++++++++++- wizard/res_partner_contract_wizard.xml | 2 ++ 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/data/fields_default.xml b/data/fields_default.xml index 3fa368b..9153b36 100644 --- a/data/fields_default.xml +++ b/data/fields_default.xml @@ -274,6 +274,7 @@ action = ctx mm Number 16 + False @@ -288,6 +289,7 @@ action = ctx yy Short 40 + False diff --git a/models/res_partner_contract_field.py b/models/res_partner_contract_field.py index d251f24..25d6897 100644 --- a/models/res_partner_contract_field.py +++ b/models/res_partner_contract_field.py @@ -11,3 +11,4 @@ class ContractField(models.Model): ) description = fields.Char(string="Description", translate=True, default="",) sequence = fields.Integer(string="Sequence",) + visible = fields.Boolean(string="Visible", default=True,) diff --git a/models/res_partner_contract_field_transient.py b/models/res_partner_contract_field_transient.py index 43e214b..07f043c 100644 --- a/models/res_partner_contract_field_transient.py +++ b/models/res_partner_contract_field_transient.py @@ -18,4 +18,5 @@ class ContractFieldTransient(models.TransientModel): description = fields.Char( related="contract_field_id.description", string="Description", readonly=True, ) + visible = fields.Boolean(related="contract_field_id.visible",) value = fields.Char(string="Value", default="",) diff --git a/wizard/res_partner_contract_wizard.py b/wizard/res_partner_contract_wizard.py index 7dbe858..0371884 100644 --- a/wizard/res_partner_contract_wizard.py +++ b/wizard/res_partner_contract_wizard.py @@ -40,6 +40,9 @@ class ContractWizard(models.TransientModel): "_contract_wizard_id", string="Contract Fields", ) + transient_field_ids_hidden = fields.One2many( + "res.partner.contract.field.transient", "_contract_wizard_id", + ) @api.onchange("document_template") def _onchange_document_template(self): @@ -110,6 +113,12 @@ class ContractWizard(models.TransientModel): ).sequence, ) ] + self.transient_field_ids_hidden = ( + self.transient_field_ids - self.transient_field_ids.filtered("visible") + ) + self.transient_field_ids = ( + self.transient_field_ids - self.transient_field_ids_hidden + ) # Set up template domain template_type = { @@ -137,7 +146,9 @@ class ContractWizard(models.TransientModel): fields = { transient_field.technical_name: transient_field.value - for transient_field in self.transient_field_ids + for transient_field in ( + self.transient_field_ids + self.transient_field_ids_hidden + ) if transient_field.technical_name and transient_field.value } diff --git a/wizard/res_partner_contract_wizard.xml b/wizard/res_partner_contract_wizard.xml index 376423c..73340b2 100644 --- a/wizard/res_partner_contract_wizard.xml +++ b/wizard/res_partner_contract_wizard.xml @@ -30,6 +30,7 @@ +