[FIX] Issue #323 + Cleanup

This commit is contained in:
Maxime Chambreuil
2019-05-07 12:40:10 -05:00
committed by Patrick Wilson
parent 0986eff343
commit 5327142bd5

View File

@@ -12,27 +12,22 @@ class AgreementSection(models.Model):
name = fields.Char(string="Name", required=True) name = fields.Char(string="Name", required=True)
title = fields.Char( title = fields.Char(
string="Title", string="Title",
help="The title is displayed on the PDF." "The name is not.", help="The title is displayed on the PDF. The name is not.")
)
sequence = fields.Integer(string="Sequence") sequence = fields.Integer(string="Sequence")
agreement_id = fields.Many2one( agreement_id = fields.Many2one(
"agreement", string="Agreement", ondelete="cascade" "agreement", string="Agreement", ondelete="cascade")
)
clauses_ids = fields.One2many( clauses_ids = fields.One2many(
"agreement.clause", "section_id", string="Clauses" "agreement.clause", "section_id", string="Clauses",copy=True)
)
content = fields.Html(string="Section Content") content = fields.Html(string="Section Content")
dynamic_content = fields.Html( dynamic_content = fields.Html(
compute="_compute_dynamic_content", compute="_compute_dynamic_content",
string="Dynamic Content", string="Dynamic Content",
help="compute dynamic Content", help="compute dynamic Content")
)
active = fields.Boolean( active = fields.Boolean(
string="Active", string="Active",
default=True, default=True,
help="""If unchecked, it will allow you to hide the help="If unchecked, it will allow you to hide the agreement without "
agreement without removing it.""", "removing it.")
)
# Dynamic field editor # Dynamic field editor
field_id = fields.Many2one( field_id = fields.Many2one(
@@ -40,30 +35,25 @@ class AgreementSection(models.Model):
string="Field", string="Field",
help="""Select target field from the related document model. If it is a help="""Select target field from the related document model. If it is a
relationship field you will be able to select a target field at the relationship field you will be able to select a target field at the
destination of the relationship.""", destination of the relationship.""")
)
sub_object_id = fields.Many2one( sub_object_id = fields.Many2one(
"ir.model", "ir.model",
string="Sub-model", string="Sub-model",
help="""When a relationship field is selected as first field, this help="""When a relationship field is selected as first field, this
field shows the document model the relationship goes to.""", field shows the document model the relationship goes to.""")
)
sub_model_object_field_id = fields.Many2one( sub_model_object_field_id = fields.Many2one(
"ir.model.fields", "ir.model.fields",
string="Sub-field", string="Sub-field",
help="""When a relationship field is selected as first field, this help="""When a relationship field is selected as first field, this
field lets you select the target field within the destination document field lets you select the target field within the destination document
model (sub-model).""", model (sub-model).""")
)
default_value = fields.Char( default_value = fields.Char(
string="Default Value", string="Default Value",
help="Optional value to use if the target field is empty.", help="Optional value to use if the target field is empty.")
)
copyvalue = fields.Char( copyvalue = fields.Char(
string="Placeholder Expression", string="Placeholder Expression",
help="""Final placeholder expression, to be copy-pasted in the desired help="""Final placeholder expression, to be copy-pasted in the desired
template field.""", template field.""")
)
@api.onchange("field_id", "sub_model_object_field_id", "default_value") @api.onchange("field_id", "sub_model_object_field_id", "default_value")
def onchange_copyvalue(self): def onchange_copyvalue(self):
@@ -72,8 +62,7 @@ class AgreementSection(models.Model):
self.sub_object_id = False self.sub_object_id = False
if self.field_id and not self.field_id.relation: if self.field_id and not self.field_id.relation:
self.copyvalue = "${{object.{} or {}}}".format( self.copyvalue = "${{object.{} or {}}}".format(
self.field_id.name, self.default_value or "''" self.field_id.name, self.default_value or "''")
)
self.sub_model_object_field_id = False self.sub_model_object_field_id = False
if self.field_id and self.field_id.relation: if self.field_id and self.field_id.relation:
self.sub_object_id = self.env["ir.model"].search( self.sub_object_id = self.env["ir.model"].search(
@@ -91,12 +80,8 @@ class AgreementSection(models.Model):
def _compute_dynamic_content(self): def _compute_dynamic_content(self):
MailTemplates = self.env["mail.template"] MailTemplates = self.env["mail.template"]
for section in self: for section in self:
lang = ( lang = (section.agreement_id and
section.agreement_id section.agreement_id.partner_id.lang or "en_US")
and section.agreement_id.partner_id.lang
or "en_US"
)
content = MailTemplates.with_context(lang=lang)._render_template( content = MailTemplates.with_context(lang=lang)._render_template(
section.content, "agreement.section", section.id section.content, "agreement.section", section.id)
)
section.dynamic_content = content section.dynamic_content = content