RATIONALE
Mail template model holds a field telling odoo mail engine to automatically
add the current user's signature to the body. Its use depends on the use
case
* using the template in the composer on a single record: it is displayed
in the rendered template in the composer, meaning people could change it.
This behavior is interesting as it allows to see the email content;
* using the template in the composer in mass mail mode: it is not displayed
as only the raw jinja is displayed. It is therefore not obvious that it
will be appended to the body of the mail. People could add it manually and
have 2 signatures as a result;
A mechanism automatically adding a signature to sent emails when posting a
message is already implemented and is based on template existence. If a
template has been used when posting, no signature is added in sent emails.
Otherwise it is automatically added. This behavior should not change.
Behavior will therefore be
* use a template -> specify signature usage in it manually through jinja;
* do not use a template -> signature added in sent emails;
SPECIFICATIONS
Remove user_signature.
Update template body accordingly. In customer oriented templates that are using
it and do not already contain it, manually add a call to user.signature within
the jinja code. When set to False, just remove its declaration.
Quickly clean some signature integration.
LINKS
Task ID 2089252
Community PR odoo/odoo#39482
Enterprise PR odoo/enterprise#6459
Upgrade PR odoo/upgrate#761
Related: odoo/enterprise#6459
Related: odoo/upgrade#761
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Co-authored-by: Michaël Mattiello <mcm@odoo.com>
Co-authored-by: Thibault Delavallée <tde@odoo.com>
349 lines
20 KiB
XML
349 lines
20 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<odoo>
|
||
<data noupdate="1">
|
||
<!-- activate B2C portal by default -->
|
||
<function model="ir.config_parameter" name="set_param" eval="('auth_signup.invitation_scope', 'b2c')"/>
|
||
<!-- activate Reset password by default -->
|
||
<function model="ir.config_parameter" name="set_param" eval="('auth_signup.reset_password', 'True')"/>
|
||
<!-- Email template for reset password -->
|
||
<record id="reset_password_email" model="mail.template">
|
||
<field name="name">Auth Signup: Reset Password</field>
|
||
<field name="model_id" ref="base.model_res_users"/>
|
||
<field name="subject">Password reset</field>
|
||
<field name="email_from">"${object.company_id.name | safe}" <${(object.company_id.email or user.email) | safe}></field>
|
||
<field name="email_to">${object.email_formatted | safe}</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 Account</span><br/>
|
||
<span style="font-size: 20px; font-weight: bold;">
|
||
${object.name}
|
||
</span>
|
||
</td><td valign="middle" align="right">
|
||
<img src="/logo.png?company=${object.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${object.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>
|
||
Dear ${object.name},<br/><br/>
|
||
A password reset was requested for the Odoo account linked to this email.
|
||
You may change your password by following this link which will remain valid during 24 hours:<br/>
|
||
<div style="margin: 16px 0px 16px 0px;">
|
||
<a href="${object.signup_url}"
|
||
style="background-color: #875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
|
||
Change password
|
||
</a>
|
||
</div>
|
||
If you do not expect this, you can safely ignore this email.<br/><br/>
|
||
Thanks,
|
||
% 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">
|
||
${object.company_id.name}
|
||
</td></tr>
|
||
<tr><td valign="middle" align="left" style="opacity: 0.7;">
|
||
${object.company_id.phone}
|
||
% if object.company_id.email
|
||
| <a href="'mailto:%s' % ${object.company_id.email}" style="text-decoration:none; color: #454748;">${object.company_id.email}</a>
|
||
% endif
|
||
% if object.company_id.website
|
||
| <a href="'%s' % ${object.company_id.website}" style="text-decoration:none; color: #454748;">
|
||
${object.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=auth" style="color: #875A7B;">Odoo</a>
|
||
</td></tr>
|
||
</table>
|
||
</td></tr>
|
||
</table>
|
||
</field>
|
||
<field name="lang">${object.lang}</field>
|
||
<field name="auto_delete" eval="True"/>
|
||
</record>
|
||
|
||
<!-- Email template for new users -->
|
||
<record id="set_password_email" model="mail.template">
|
||
<field name="name">Auth Signup: Odoo Connection</field>
|
||
<field name="model_id" ref="base.model_res_users"/>
|
||
<field name="subject">${object.create_uid.name} from ${object.company_id.name} invites you to connect to Odoo</field>
|
||
<field name="email_from">"${object.company_id.name | safe}" <${(object.company_id.email or user.email) | safe}></field>
|
||
<field name="email_to">${object.email_formatted | safe}</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;">Welcome to Odoo</span><br/>
|
||
<span style="font-size: 20px; font-weight: bold;">
|
||
${object.name}
|
||
</span>
|
||
</td><td valign="middle" align="right">
|
||
<img src="/logo.png?company=${object.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${object.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>
|
||
Dear ${object.name},<br /><br />
|
||
You have been invited by ${object.create_uid.name} of ${object.company_id.name} to connect on Odoo.
|
||
<div style="margin: 16px 0px 16px 0px;">
|
||
<a href="${object.signup_url}"
|
||
style="background-color: #875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
|
||
Accept invitation
|
||
</a>
|
||
</div>
|
||
% set website_url = object.env['ir.config_parameter'].sudo().get_param('web.base.url')
|
||
Your Odoo domain is: <b><a href='${website_url}'>${website_url}</a></b><br />
|
||
Your sign in email is: <b><a href="/web/login?login=${object.email}" target="_blank">${object.email}</a></b><br /><br />
|
||
Never heard of Odoo? It’s an all-in-one business software loved by 3+ million users. It will considerably improve your experience at work and increase your productivity.
|
||
<br /><br />
|
||
Have a look at the <a href="https://www.odoo.com/page/tour?utm_source=db&utm_medium=auth" style="color: #875A7B;">Odoo Tour</a> to discover the tool.
|
||
<br /><br />
|
||
Enjoy Odoo!<br />
|
||
--<br/>The ${object.company_id.name} Team
|
||
</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">
|
||
${object.company_id.name}
|
||
</td></tr>
|
||
<tr><td valign="middle" align="left" style="opacity: 0.7;">
|
||
${object.company_id.phone}
|
||
% if object.company_id.email
|
||
| <a href="'mailto:%s' % ${object.company_id.email}" style="text-decoration:none; color: #454748;">${object.company_id.email}</a>
|
||
% endif
|
||
% if object.company_id.website
|
||
| <a href="'%s' % ${object.company_id.website}" style="text-decoration:none; color: #454748;">
|
||
${object.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=auth" style="color: #875A7B;">Odoo</a>
|
||
</td></tr>
|
||
</table>
|
||
</td></tr>
|
||
</table></field>
|
||
<field name="lang">${object.lang}</field>
|
||
<field name="auto_delete" eval="True"/>
|
||
</record>
|
||
|
||
<!-- Email template for reminder of unregistered users -->
|
||
<record id="mail_template_data_unregistered_users" model="mail.template">
|
||
<field name="name">Auth Signup: Unregistered Users</field>
|
||
<field name="model_id" ref="base.model_res_users"/>
|
||
<field name="subject">Reminder for unregistered users</field>
|
||
<field name="email_from">${object.company_id.partner_id.email_formatted|safe}</field>
|
||
<field name="email_to">${object.email_formatted|safe}</field>
|
||
<field name="body_html" type="html">
|
||
<table border="0" cellpadding="0" cellspacing="0" style="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>
|
||
<!-- 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;">
|
||
% set invited_users = ctx['invited_users']
|
||
<td style="text-align : left">
|
||
<span style="font-size: 20px; font-weight: bold;">
|
||
Pending Invitations
|
||
</span><br/><br/>
|
||
</td>
|
||
<tr><td valign="top" style="font-size: 13px;">
|
||
<div>
|
||
Dear ${object.name or ''},<br/> <br/>
|
||
You added the following user(s) to your database but they haven't registered yet:
|
||
<ul>
|
||
% for invited_user in invited_users:
|
||
<li>${invited_user}</li>
|
||
% endfor
|
||
</ul>
|
||
Follow up with them so they can access your database and start working with you.
|
||
<br /><br/>
|
||
Have a nice day!<br />
|
||
--<br/>The ${object.company_id.name} Team
|
||
</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>
|
||
</tbody>
|
||
</table>
|
||
</td></tr>
|
||
</table>
|
||
</field>
|
||
<field name="lang">${object.partner_id.lang}</field>
|
||
<field name="auto_delete" eval="True"/>
|
||
</record>
|
||
|
||
<!-- Email template for new users that used a signup token -->
|
||
<record id="mail_template_user_signup_account_created" model="mail.template">
|
||
<field name="name">Auth Signup: Odoo Account Created</field>
|
||
<field name="model_id" ref="base.model_res_users"/>
|
||
<field name="subject">Welcome to ${object.company_id.name}!</field>
|
||
<field name="email_from">"${object.company_id.name | safe}" <${(object.company_id.email or user.email) | safe}></field>
|
||
<field name="email_to">${object.email_formatted | safe}</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 Account</span><br/>
|
||
<span style="font-size: 20px; font-weight: bold;">
|
||
${object.name}
|
||
</span>
|
||
</td><td valign="middle" align="right">
|
||
<img src="/logo.png?company=${object.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${object.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>
|
||
Dear ${object.name},<br/><br/>
|
||
Your account has been successfully created!<br/>
|
||
Your login is <strong>${object.email}</strong><br/>
|
||
To gain access to your account, you can use the following link:
|
||
<div style="margin: 16px 0px 16px 0px;">
|
||
<a href="/web/login?auth_login=${object.email}"
|
||
style="background-color: #875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
|
||
Go to My Account
|
||
</a>
|
||
</div>
|
||
Thanks,<br/>
|
||
% 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">
|
||
${object.company_id.name}
|
||
</td></tr>
|
||
<tr><td valign="middle" align="left" style="opacity: 0.7;">
|
||
${object.company_id.phone}
|
||
% if object.company_id.email
|
||
| <a href="'mailto:%s' % ${object.company_id.email}" style="text-decoration:none; color: #454748;">${object.company_id.email}</a>
|
||
% endif
|
||
% if object.company_id.website
|
||
| <a href="'%s' % ${object.company_id.website}" style="text-decoration:none; color: #454748;">
|
||
${object.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=auth" style="color: #875A7B;">Odoo</a>
|
||
</td></tr>
|
||
</table>
|
||
</td></tr>
|
||
</table></field>
|
||
<field name="lang">${object.lang}</field>
|
||
<field name="auto_delete" eval="True"/>
|
||
</record>
|
||
|
||
</data>
|
||
</odoo>
|