[FIX] website_mail_channel: improve (un)subscribe emails content and display
When people (un)subscribe from mail channels through frontend interface a confirmation email is sent. However if this emails fails if may be displayed in channel chatter as there is an underlying ``mail.message``. As this message contains recipient-specific content it is better to avoid displaying it. Mail message_type is therefore set to ``user_notification`` meaning only author and recipient have access to message content. Moreover it is never displayed in any chatter. In this commit we also remove custom layouting of mail template bodies. We instead fall back on rendering template body encapsulated within a notification layout. Finally some more information for author is also added: author is set to channel creator, and email_from to formatted email of the company instead of its simple version. LINKS Task ID-2070632 (main task) Task ID-2419762 (followup task) COM PR odoo/odoo#62859 ENT PR odoo/enterprise#15172 UPG PR odoo/upgrade#2005
This commit is contained in:
@@ -7,84 +7,18 @@
|
||||
<field name="model_id" ref="mail.model_mail_channel"/>
|
||||
<field name="subject">Confirm subscription to ${object.name}</field>
|
||||
<field name="body_html" type="html">
|
||||
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
|
||||
<tbody>
|
||||
<!-- HEADER -->
|
||||
<tr>
|
||||
<td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
||||
<tr><td valign="middle">
|
||||
<span style="font-size: 10px;">Your Channel</span><br/>
|
||||
<span style="font-size: 20px; font-weight: bold;">${object.name}</span>
|
||||
</td><td valign="middle" align="right">
|
||||
<img src="/logo.png?company=${user.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${user.company_id.name}"/>
|
||||
</td></tr>
|
||||
<tr><td colspan="2" style="text-align:center;">
|
||||
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- CONTENT -->
|
||||
<tr>
|
||||
<td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
||||
<tr><td valign="top" style="font-size: 13px;">
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
Hello,<br/><br/>
|
||||
You have requested to be subscribed to the mailing list <strong>${object.name}</strong>.
|
||||
<br/><br/>
|
||||
To confirm, please visit the following link: <strong><a href="${ctx['token_url']}">${ctx['token_url']}</a></strong>
|
||||
<br/><br/>
|
||||
If this was a mistake or you did not requested this action, please ignore this message.
|
||||
% if user.signature
|
||||
<br/>
|
||||
${user.signature | safe}
|
||||
% endif
|
||||
</div>
|
||||
</td></tr>
|
||||
<tr><td style="text-align:center;">
|
||||
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- FOOTER -->
|
||||
<tr>
|
||||
<td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; font-size: 11px; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
||||
<tr><td valign="middle" align="left">
|
||||
${user.company_id.name}
|
||||
</td></tr>
|
||||
<tr><td valign="middle" align="left" style="opacity: 0.7;">
|
||||
% if user.company_id.phone
|
||||
${user.company_id.phone} |
|
||||
%endif
|
||||
% if user.company_id.email
|
||||
<a href="'mailto:%s' % ${user.company_id.email}" style="text-decoration:none; color: #454748;">${user.company_id.email}</a> |
|
||||
% endif
|
||||
% if user.company_id.website
|
||||
<a href="'%s' % ${user.company_id.website}" style="text-decoration:none; color: #454748;">${user.company_id.website}
|
||||
</a>
|
||||
% endif
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td></tr>
|
||||
<!-- POWERED BY -->
|
||||
<tr><td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
|
||||
<tr><td style="text-align: center; font-size: 13px;">
|
||||
Powered by <a target="_blank" href="https://www.odoo.com?utm_source=db&utm_medium=mail" style="color: #875A7B;">Odoo</a>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
</field>
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
Hello,<br/><br/>
|
||||
You have requested to be subscribed to the mailing list <strong>${object.name}</strong>.
|
||||
<br/><br/>
|
||||
To confirm, please visit the following link: <strong><a href="${ctx['token_url']}">${ctx['token_url']}</a></strong>
|
||||
<br/><br/>
|
||||
If this was a mistake or you did not requested this action, please ignore this message.
|
||||
% if user.signature
|
||||
<br/>
|
||||
${user.signature | safe}
|
||||
% endif
|
||||
</div></field>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
</record>
|
||||
|
||||
@@ -93,84 +27,18 @@
|
||||
<field name="model_id" ref="mail.model_mail_channel"/>
|
||||
<field name="subject">Confirm unsubscription to ${object.name}</field>
|
||||
<field name="body_html" type="html">
|
||||
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
|
||||
<tbody>
|
||||
<!-- HEADER -->
|
||||
<tr>
|
||||
<td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
||||
<tr><td valign="middle">
|
||||
<span style="font-size: 10px;">Your Channel</span><br/>
|
||||
<span style="font-size: 20px; font-weight: bold;">${object.name}</span>
|
||||
</td><td valign="middle" align="right">
|
||||
<img src="/logo.png?company=${user.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${user.company_id.name}"/>
|
||||
</td></tr>
|
||||
<tr><td colspan="2" style="text-align:center;">
|
||||
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- CONTENT -->
|
||||
<tr>
|
||||
<td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
||||
<tr><td valign="top" style="font-size: 13px;">
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
Hello,<br/><br/>
|
||||
You have requested to be unsubscribed to the mailing list <strong>${object.name}</strong>.
|
||||
<br/><br/>
|
||||
To confirm, please visit the following link: <strong><a href="${ctx['token_url']}">${ctx['token_url']}</a></strong>.
|
||||
<br/><br/>
|
||||
If this was a mistake or you did not requested this action, please ignore this message.
|
||||
% if user.signature:
|
||||
<br/>
|
||||
${user.signature | safe}
|
||||
% endif
|
||||
</div>
|
||||
</td></tr>
|
||||
<tr><td style="text-align:center;">
|
||||
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- FOOTER -->
|
||||
<tr>
|
||||
<td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; font-size: 11px; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
||||
<tr><td valign="middle" align="left">
|
||||
${user.company_id.name}
|
||||
</td></tr>
|
||||
<tr><td valign="middle" align="left" style="opacity: 0.7;">
|
||||
% if user.company_id.phone
|
||||
${user.company_id.phone} |
|
||||
%endif
|
||||
% if user.company_id.email
|
||||
<a href="'mailto:%s' % ${user.company_id.email}" style="text-decoration:none; color: #454748;">${user.company_id.email}</a> |
|
||||
% endif
|
||||
% if user.company_id.website
|
||||
<a href="'%s' % ${user.company_id.website}" style="text-decoration:none; color: #454748;">${user.company_id.website}
|
||||
</a>
|
||||
% endif
|
||||
</td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td></tr>
|
||||
<!-- POWERED BY -->
|
||||
<tr><td align="center" style="min-width: 590px;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
|
||||
<tr><td style="text-align: center; font-size: 13px;">
|
||||
Powered by <a target="_blank" href="https://www.odoo.com?utm_source=db&utm_medium=mail" style="color: #875A7B;">Odoo</a>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
</field>
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
Hello,<br/><br/>
|
||||
You have requested to be unsubscribed to the mailing list <strong>${object.name}</strong>.
|
||||
<br/><br/>
|
||||
To confirm, please visit the following link: <strong><a href="${ctx['token_url']}">${ctx['token_url']}</a></strong>.
|
||||
<br/><br/>
|
||||
If this was a mistake or you did not requested this action, please ignore this message.
|
||||
% if user.signature:
|
||||
<br/>
|
||||
${user.signature | safe}
|
||||
% endif
|
||||
</div></field>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -45,8 +45,11 @@ class MailGroup(models.Model):
|
||||
force_send=True,
|
||||
email_values={
|
||||
'recipient_ids': [(4, partner_id)],
|
||||
'email_from': website.company_id.email,
|
||||
}
|
||||
'email_from': website.company_id.email_formatted,
|
||||
'author_id': self.create_uid.partner_id.id,
|
||||
'message_type': 'user_notification',
|
||||
},
|
||||
notif_layout='mail.mail_notification_light',
|
||||
)
|
||||
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user