Browse Source

[FIX] Issue #323 + Cleanup

pull/324/head
Maxime Chambreuil 5 years ago
parent
commit
c0182f6e1b
  1. 45
      agreement_legal/models/agreement_section.py

45
agreement_legal/models/agreement_section.py

@ -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
agreement without removing it.""",
)
help="If unchecked, it will allow you to hide the agreement without "
"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 = (
section.agreement_id
and section.agreement_id.partner_id.lang
or "en_US"
)
lang = (section.agreement_id 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
Loading…
Cancel
Save