diff --git a/agreement/models/agreement.py b/agreement/models/agreement.py index c2ce8bb2a..963398306 100644 --- a/agreement/models/agreement.py +++ b/agreement/models/agreement.py @@ -334,16 +334,21 @@ class Agreement(models.Model): for record in self: record.total_company_mrc = amount_total - @api.onchange('field_id') - def onchange_sub_object_id(self): - if self.field_id: + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: self.sub_object_id = self.env['ir.model'].search( [('model', '=', self.field_id.relation)])[0] - - @api.onchange('sub_model_object_field_id', 'default_value') - def onchange_copyvalue(self): - if self.sub_model_object_field_id or self.default_value: - self.copyvalue = "${object.%s.%s or %s}" % \ + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ (self.field_id.name, self.sub_model_object_field_id.name, self.default_value or '\'\'') diff --git a/agreement/models/agreement_appendix.py b/agreement/models/agreement_appendix.py index 8699d5793..d70f2e21b 100644 --- a/agreement/models/agreement_appendix.py +++ b/agreement/models/agreement_appendix.py @@ -49,16 +49,21 @@ class AgreementAppendix(models.Model): help="""Final placeholder expression, to be copy-pasted in the desired template field.""") - @api.onchange('field_id') - def onchange_sub_object_id(self): - if self.field_id: + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: self.sub_object_id = self.env['ir.model'].search( [('model', '=', self.field_id.relation)])[0] - - @api.onchange('sub_model_object_field_id', 'default_value') - def onchange_copyvalue(self): - if self.sub_model_object_field_id or self.default_value: - self.copyvalue = "${object.%s.%s or %s}" % \ + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ (self.field_id.name, self.sub_model_object_field_id.name, self.default_value or '\'\'') diff --git a/agreement/models/agreement_clause.py b/agreement/models/agreement_clause.py index 00651f984..182f42279 100644 --- a/agreement/models/agreement_clause.py +++ b/agreement/models/agreement_clause.py @@ -58,16 +58,21 @@ class AgreementClause(models.Model): help="""Final placeholder expression, to be copy-pasted in the desired template field.""") - @api.onchange('field_id') - def onchange_sub_object_id(self): - if self.field_id: + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: self.sub_object_id = self.env['ir.model'].search( [('model', '=', self.field_id.relation)])[0] - - @api.onchange('sub_model_object_field_id', 'default_value') - def onchange_copyvalue(self): - if self.sub_model_object_field_id or self.default_value: - self.copyvalue = "${object.%s.%s or %s}" % \ + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ (self.field_id.name, self.sub_model_object_field_id.name, self.default_value or '\'\'') diff --git a/agreement/models/agreement_recital.py b/agreement/models/agreement_recital.py index c466f45d2..47bc28bc8 100644 --- a/agreement/models/agreement_recital.py +++ b/agreement/models/agreement_recital.py @@ -50,16 +50,21 @@ class AgreementRecital(models.Model): help="""Final placeholder expression, to be copy-pasted in the desired template field.""") - @api.onchange('field_id') - def onchange_sub_object_id(self): - if self.field_id: + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: self.sub_object_id = self.env['ir.model'].search( [('model', '=', self.field_id.relation)])[0] - - @api.onchange('sub_model_object_field_id', 'default_value') - def onchange_copyvalue(self): - if self.sub_model_object_field_id or self.default_value: - self.copyvalue = "${object.%s.%s or %s}" % \ + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ (self.field_id.name, self.sub_model_object_field_id.name, self.default_value or '\'\'') diff --git a/agreement/models/agreement_section.py b/agreement/models/agreement_section.py index 2ee345c6c..ea80af770 100644 --- a/agreement/models/agreement_section.py +++ b/agreement/models/agreement_section.py @@ -49,16 +49,21 @@ class AgreementSection(models.Model): help="""Final placeholder expression, to be copy-pasted in the desired template field.""") - @api.onchange('field_id') - def onchange_sub_object_id(self): - if self.field_id: + @api.onchange('field_id', 'sub_model_object_field_id', 'default_value') + def onchange_copyvalue(self): + self.sub_object_id = False + self.copyvalue = False + self.sub_object_id = False + if self.field_id and not self.field_id.relation: + self.copyvalue = "${object.%s or %s}" % \ + (self.field_id.name, + self.default_value or '\'\'') + self.sub_model_object_field_id = False + if self.field_id and self.field_id.relation: self.sub_object_id = self.env['ir.model'].search( [('model', '=', self.field_id.relation)])[0] - - @api.onchange('sub_model_object_field_id', 'default_value') - def onchange_copyvalue(self): - if self.sub_model_object_field_id or self.default_value: - self.copyvalue = "${object.%s.%s or %s}" % \ + if self.sub_model_object_field_id: + self.copyvalue = "${object.%s.%s or %s}" %\ (self.field_id.name, self.sub_model_object_field_id.name, self.default_value or '\'\'')