diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index 32147ddb..8a87cf96 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -170,6 +170,46 @@ class Agreement(models.Model): company_contact_email = fields.Char( related="company_contact_id.email", string="Email" ) + use_parties_content = fields.Boolean( + string="Use parties content", + help="Use custom content for parties") + + def _get_default_parties(self): + deftext = """ +

Company Information

+

+ ${object.company_partner_id.name or ''}.
+ ${object.company_partner_id.street or ''}
+ ${object.company_partner_id.state_id.code or ''} + ${object.company_partner_id.zip or ''} + ${object.company_partner_id.city or ''}
+ ${object.company_partner_id.country_id.name or ''}.

+ Represented by ${object.company_contact_id.name or ''}. +

+

+

Partner Information

+

+ ${object.partner_id.name or ''}.
+ ${object.partner_id.street or ''}
+ ${object.partner_id.state_id.code or ''} + ${object.partner_id.zip or ''} ${object.partner_id.city or ''}
+ ${object.partner_id.country_id.name or ''}.

+ Represented by ${object.partner_contact_id.name or ''}. +

+ """ + return deftext + + parties = fields.Html( + string="Parties", + track_visibility="onchange", + default=_get_default_parties, + help="Parties of the agreement", + ) + dynamic_parties = fields.Html( + compute="_compute_dynamic_parties", + string="Dynamic Parties", + help="Compute dynamic parties", + ) agreement_type_id = fields.Many2one( "agreement.type", string="Agreement Type", @@ -308,6 +348,18 @@ class Agreement(models.Model): ) agreement.dynamic_description = description + @api.multi + def _compute_dynamic_parties(self): + MailTemplates = self.env["mail.template"] + for agreement in self: + lang = agreement.partner_id.lang or "en_US" + parties = MailTemplates.with_context( + lang=lang + )._render_template( + agreement.parties, "agreement", agreement.id + ) + agreement.dynamic_parties = parties + @api.multi def _compute_dynamic_special_terms(self): MailTemplates = self.env["mail.template"] diff --git a/agreement_legal/report/agreement.xml b/agreement_legal/report/agreement.xml index f497e7a2..546fa212 100644 --- a/agreement_legal/report/agreement.xml +++ b/agreement_legal/report/agreement.xml @@ -25,25 +25,32 @@

-

+

Parties

-

Company Information

-
-
-
-
- Represented by . -
-

Partner Information

-
-
-
-
- Represented by . +
+ +

+

+ +

Company Information

+
+
+
+
+ Represented by . +
+

Partner Information

+
+
+
+
+ Represented by . +
+

Agreement

Recitals

diff --git a/agreement_legal/views/agreement.xml b/agreement_legal/views/agreement.xml index e9d56129..b400b10b 100644 --- a/agreement_legal/views/agreement.xml +++ b/agreement_legal/views/agreement.xml @@ -90,6 +90,14 @@

+ + + + +

+ This section (on the left) allows you to replace the default listing of the parties with custom dynamic content. +

+
@@ -119,6 +127,9 @@ + + +