+ """.format(
+ msg_sent_to=remove_p(msg_sent_to),
+ partner_message=Markup.escape(partner_message),
+ rc=msg_warn.striptags() and " " or "",
+ msg_warn=msg_warn.striptags() and remove_p(msg_warn) or "",
+ )
+ return full_text
+
+ def _send(self, auto_commit=False, raise_exception=False, smtp_session=None):
group_portal = self.env.ref("base.group_portal")
for mail_id in self.ids:
mail = self.browse(mail_id)
@@ -73,13 +121,21 @@ class MailMail(models.Model):
or x.user_ids # otherwise, email is not sent
and "email" in x.user_ids.mapped("notification_type")
)
- # get names and emails
- final_cc = None
- mails = ""
- for p in partners:
- mails += "%s <%s>, " % (p.name, p.email)
- # join texts
- final_cc = plain_text % (mails[:-2])
+ # set proper lang for recipients
+ langs = list(
+ filter(
+ bool,
+ mail.mapped("recipient_ids.lang")
+ + [
+ mail.author_id.lang,
+ self.env.company.partner_id.lang,
+ ],
+ )
+ )
+ # get show follower text
+ final_cc = mail.with_context(
+ lang=langs and langs[0]
+ )._build_cc_text(partners)
# it is saved in the body_html field so that it does
# not appear in the odoo log
mail.body_html = final_cc + mail.body_html
diff --git a/mail_show_follower/models/res_company.py b/mail_show_follower/models/res_company.py
index fdbc33efe..3e802cc00 100644
--- a/mail_show_follower/models/res_company.py
+++ b/mail_show_follower/models/res_company.py
@@ -5,5 +5,24 @@ class ResCompany(models.Model):
_inherit = "res.company"
show_internal_users_cc = fields.Boolean(
- string="Show Internal Users CC", default=True
+ string="Show Internal Users CC",
+ default=True,
+ )
+ show_followers_message_sent_to = fields.Html(
+ string="Text 'Sent to'",
+ translate=True,
+ default="This message has been sent to",
+ )
+ show_followers_partner_format = fields.Char(
+ string="Partner format",
+ default="%(partner_name)s",
+ help="Supported parameters:\n"
+ "%(partner_name)s = Partner Name\n"
+ "%(partner_email)s = Partner Email\n"
+ "%(partner_email_domain)s = Partner Email Domain",
+ )
+ show_followers_message_response_warning = fields.Html(
+ string="Text 'Replies'",
+ translate=True,
+ default="Notice: Replies to this email will be sent to all recipients",
)
diff --git a/mail_show_follower/models/res_config_settings.py b/mail_show_follower/models/res_config_settings.py
index 5b46dde55..43c92ed5a 100644
--- a/mail_show_follower/models/res_config_settings.py
+++ b/mail_show_follower/models/res_config_settings.py
@@ -1,11 +1,51 @@
-from odoo import fields, models
+from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
show_internal_users_cc = fields.Boolean(
- string="Show Internal Users CC",
related="company_id.show_internal_users_cc",
readonly=False,
)
+ show_followers_message_sent_to = fields.Html(
+ related="company_id.show_followers_message_sent_to",
+ readonly=False,
+ )
+ show_followers_partner_format = fields.Char(
+ related="company_id.show_followers_partner_format",
+ readonly=False,
+ help="Supported parameters:\n"
+ "%(partner_name)s = Partner Name\n"
+ "%(partner_email)s = Partner Email\n"
+ "%(partner_email_domain)s = Partner Email Domain",
+ )
+ show_followers_message_response_warning = fields.Html(
+ related="company_id.show_followers_message_response_warning",
+ readonly=False,
+ )
+ show_followers_message_preview = fields.Html(
+ string="Message preview",
+ readonly=True,
+ store=False,
+ )
+
+ @api.onchange(
+ "show_followers_message_sent_to",
+ "show_followers_partner_format",
+ "show_followers_message_response_warning",
+ )
+ def onchange_show_followers_message_preview(self):
+ self.show_followers_message_preview = (
+ self.env["mail.mail"]
+ .with_context(
+ # Use current data before
+ partner_format=self.show_followers_partner_format or "",
+ msg_sent_to=self.show_followers_message_sent_to or "",
+ msg_warn=self.show_followers_message_response_warning or "",
+ )
+ ._build_cc_text(
+ # Sample partners
+ self.env["res.partner"].search([("email", "!=", False)], limit=3),
+ )
+ )
diff --git a/mail_show_follower/readme/CONFIGURE.rst b/mail_show_follower/readme/CONFIGURE.rst
index 02a169a51..dade09de7 100644
--- a/mail_show_follower/readme/CONFIGURE.rst
+++ b/mail_show_follower/readme/CONFIGURE.rst
@@ -1,4 +1,7 @@
To configure this module, you need to:
-#. Go General settings/Discuss/Show Internal Users CC and set if want to show or not internal users in cc details.
+#. Go General settings/Discuss/Show Followers on mails/Show Internal Users CC and set if want to show or not internal users in cc details.
#. Go Settings/Users & Company salect any user in 'Preferences' check or not the 'Show in CC' field if this user need to appear in the cc note.
+#. Go General settings/Discuss/Show Followers on mails/Text 'Sent to' and set the initial part of the message.
+#. Go General settings/Discuss/Show Followers on mails/Partner format and choose desired fields to show on CC recipients.
+#. Go General settings/Discuss/Show Followers on mails/Text 'Replies' and choose desired warn message
diff --git a/mail_show_follower/readme/CONTRIBUTORS.rst b/mail_show_follower/readme/CONTRIBUTORS.rst
index 40630f391..5aa167943 100644
--- a/mail_show_follower/readme/CONTRIBUTORS.rst
+++ b/mail_show_follower/readme/CONTRIBUTORS.rst
@@ -1,2 +1,3 @@
* Valentin Vinagre
* Lorenzo Battistini
+* Eduardo de Miguel
diff --git a/mail_show_follower/static/description/index.html b/mail_show_follower/static/description/index.html
index be3024158..a6322bead 100644
--- a/mail_show_follower/static/description/index.html
+++ b/mail_show_follower/static/description/index.html
@@ -392,8 +392,11 @@ In the cc, only appear when: