From 9bf56092b60493da26907969521e4ca57a5b71eb Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Fri, 12 Apr 2019 00:19:23 +0200 Subject: [PATCH 1/5] [ADD] custom dynamic parties --- agreement_legal/models/agreement.py | 26 +++++++++++++++++++ agreement_legal/report/agreement.xml | 39 ++++++++++++++++------------ agreement_legal/views/agreement.xml | 13 +++++++++- 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index 32147ddb..668708a0 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -170,6 +170,20 @@ 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", + default = False, + help="Use custom content for parties" ) + parties = fields.Html( + string="Parties", + track_visibility="onchange", + 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 +322,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..29a4b5d5 100644 --- a/agreement_legal/views/agreement.xml +++ b/agreement_legal/views/agreement.xml @@ -90,7 +90,15 @@

- + + + +

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

+
+
+ + + From 09e579c420606a216bce4fc1b2f7a03fec646140 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Fri, 12 Apr 2019 09:29:59 +0200 Subject: [PATCH 2/5] [FIX] flake8 --- agreement_legal/models/agreement.py | 3 +-- agreement_legal/views/.#agreement.xml | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) create mode 120000 agreement_legal/views/.#agreement.xml diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index 668708a0..fcd4d33b 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -172,8 +172,7 @@ class Agreement(models.Model): ) use_parties_content = fields.Boolean( string="Use parties content", - default = False, - help="Use custom content for parties" ) + help="Use custom content for parties") parties = fields.Html( string="Parties", track_visibility="onchange", diff --git a/agreement_legal/views/.#agreement.xml b/agreement_legal/views/.#agreement.xml new file mode 120000 index 00000000..26e7fac5 --- /dev/null +++ b/agreement_legal/views/.#agreement.xml @@ -0,0 +1 @@ +ygol@ygol-S5000XVN.18158:1554463431 \ No newline at end of file From 8cf8175bfb586a7f7e6afe7f5009b7ba6ec67cba Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Fri, 12 Apr 2019 09:48:40 +0200 Subject: [PATCH 3/5] [FIX] pylint --- agreement_legal/views/.#agreement.xml | 1 - agreement_legal/views/agreement.xml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 120000 agreement_legal/views/.#agreement.xml diff --git a/agreement_legal/views/.#agreement.xml b/agreement_legal/views/.#agreement.xml deleted file mode 120000 index 26e7fac5..00000000 --- a/agreement_legal/views/.#agreement.xml +++ /dev/null @@ -1 +0,0 @@ -ygol@ygol-S5000XVN.18158:1554463431 \ No newline at end of file diff --git a/agreement_legal/views/agreement.xml b/agreement_legal/views/agreement.xml index 29a4b5d5..b400b10b 100644 --- a/agreement_legal/views/agreement.xml +++ b/agreement_legal/views/agreement.xml @@ -98,7 +98,7 @@ This section (on the left) allows you to replace the default listing of the parties with custom dynamic content.

-
Date: Tue, 16 Apr 2019 15:11:54 +0200 Subject: [PATCH 4/5] [IMP] add default html value for parties --- agreement_legal/models/agreement.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index fcd4d33b..9f330a19 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -173,9 +173,34 @@ class Agreement(models.Model): 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( From 184f61bd3e51379c6c0eb8994617a6054c67766e Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Tue, 16 Apr 2019 15:25:19 +0200 Subject: [PATCH 5/5] [UPD] flake8 --- agreement_legal/models/agreement.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/agreement_legal/models/agreement.py b/agreement_legal/models/agreement.py index 9f330a19..8a87cf96 100644 --- a/agreement_legal/models/agreement.py +++ b/agreement_legal/models/agreement.py @@ -173,8 +173,9 @@ class Agreement(models.Model): use_parties_content = fields.Boolean( string="Use parties content", help="Use custom content for parties") + def _get_default_parties(self): - deftext=""" + deftext = """

Company Information

${object.company_partner_id.name or ''}.
@@ -197,6 +198,7 @@ class Agreement(models.Model):

""" return deftext + parties = fields.Html( string="Parties", track_visibility="onchange",