Currently no access button is displayed if the email is a discussion and has no contextual actions like creating a new document, or setting the responsible of the document. However it leads to emails being sent without access button. This can be extremely frustrating and make the notification email quite impossible to use efficiently. With this commit when an user has access to a document the link to the document is always displayed in the notification email.
219 lines
11 KiB
XML
219 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<openerp>
|
|
<data noupdate="1">
|
|
<record forcecreate="True" id="ir_cron_mail_scheduler_action" model="ir.cron">
|
|
<field name="name">Email Queue Manager</field>
|
|
<field name="user_id" ref="base.user_root"/>
|
|
<field name="interval_number">1</field>
|
|
<field name="interval_type">hours</field>
|
|
<field name="numbercall">-1</field>
|
|
<field eval="False" name="doall"/>
|
|
<field eval="'mail.mail'" name="model"/>
|
|
<field eval="'process_email_queue'" name="function"/>
|
|
<field eval="'()'" name="args"/>
|
|
</record>
|
|
|
|
<record id="ir_cron_module_update_notification" model="ir.cron">
|
|
<field name="name">Update Notification</field>
|
|
<field eval="True" name="active" />
|
|
<field name="user_id" ref="base.user_root" />
|
|
<field name="interval_number">1</field>
|
|
<field name="interval_type">weeks</field>
|
|
<field name="numbercall">-1</field>
|
|
<field name="nextcall" eval="(DateTime.now() + timedelta(days=7)).strftime('%Y-%m-%d %H:%M:%S')" />
|
|
<field eval="False" name="doall" />
|
|
<field eval="'publisher_warranty.contract'" name="model" />
|
|
<field eval="'update_notification'" name="function" />
|
|
<field eval="'(None,)'" name="args" />
|
|
<field name="priority">1000</field>
|
|
</record>
|
|
|
|
<!-- Admin should not receivve emails at creation -->
|
|
<record id="base.partner_root" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
|
|
<!-- Catchall Email Alias -->
|
|
<record id="icp_mail_catchall_alias" model="ir.config_parameter">
|
|
<field name="key">mail.catchall.alias</field>
|
|
<field name="value">catchall</field>
|
|
</record>
|
|
|
|
<!-- Discussion subtype for messaging / Chatter -->
|
|
<record id="mt_comment" model="mail.message.subtype">
|
|
<field name="name">Discussions</field>
|
|
<field name="sequence" eval="0"/>
|
|
</record>
|
|
<record id="mt_note" model="mail.message.subtype">
|
|
<field name="name">Note</field>
|
|
<field name="default" eval="False"/>
|
|
<field name="internal" eval="True"/>
|
|
<field name="sequence" eval="100"/>
|
|
</record>
|
|
|
|
</data>
|
|
<data>
|
|
<!--Default Notification Email template -->
|
|
<record id="mail_template_data_notification_email_default" model="mail.template">
|
|
<field name="name">Notification Email</field>
|
|
<field name="subject">${object.subject or (object.record_name and 'Re: %s' % object.record_name) or (object.parent_id and object.parent_id.subject and 'Re: %s' % object.parent_id.subject) or (object.parent_id and object.parent_id.record_name and 'Re: %s' % object.parent_id.record_name)}</field>
|
|
<field name="model_id" ref="mail.model_mail_message"/>
|
|
<field name="auto_delete" eval="True"/>
|
|
<field name="body_html"><![CDATA[
|
|
<div itemscope itemtype="http://schema.org/EmailMessage">
|
|
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
|
|
% if ctx.get('button_access'):
|
|
<link itemprop="target" href="${ctx['button_access']['url']}"/>
|
|
<link itemprop="url" href="${ctx['button_access']['url']}"/>
|
|
% endif
|
|
<meta itemprop="name" content="View ${ctx['model_name']}"/>
|
|
</div>
|
|
</div>
|
|
% if not ctx['is_discussion'] or not len(ctx['actions']) == 0 or ctx.get('button_access') or ctx.get('is_accessible'):
|
|
<div summary="o_mail_notification" style="padding:0px; width:600px; margin:0 auto; background: #FFFFFF repeat top /100%;color:#777777">
|
|
<table cellspacing="0" cellpadding="0" style="width:600px; border-collapse:collapse; background:inherit; color:inherit">
|
|
<tbody><tr>
|
|
<td valign="center" width="200" style="padding:0px 10px 5px 5px; font-size: 12px">
|
|
<img src="/logo.png" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${user.company_id.name}">
|
|
</td>
|
|
<td valign="center" align="right" width="340" style="padding:0px 10px 5px 5px; font-size: 12px;">
|
|
<p>
|
|
% if ctx.get('actions'):
|
|
% for action in ctx['actions']:
|
|
<a href="${action['url']}" style="padding: 5px 10px; font-size: 12px; line-height: 18px; color: #FFFFFF; border-color:#a24689; text-decoration: none; display: inline-block; margin-bottom: 0px; font-weight: 400; text-align: center; vertical-align: middle; cursor: pointer; white-space: nowrap; background-image: none; background-color: #a24689; border: 1px solid #a24689; border-radius:3px">${action['title']}</a>
|
|
% endfor
|
|
% endif
|
|
|
|
% if ctx.get('button_follow'):
|
|
% if ctx.get('actions'):
|
|
|
|
|
% endif
|
|
<a href="${ctx['button_follow']['url']}" style="text-decoration:none; color: #a24689;"><strong>${ctx['button_follow']['title']}</strong></a>
|
|
% elif ctx.get('button_unfollow'):
|
|
% if ctx.get('actions'):
|
|
|
|
|
% endif
|
|
<a href="${ctx['button_unfollow']['url']}" style="text-decoration:none; color: #a24689;"><strong>${ctx['button_unfollow']['title']}</strong></a>
|
|
% endif
|
|
|
|
% if ctx.get('button_access') or ctx.get('button_follow') or ctx.get('button_unfollow'):
|
|
% if ctx.get('actions'):
|
|
|
|
|
% endif
|
|
<a href="${ctx['button_access']['url']}" style="text-decoration:none; color: #a24689;"><strong>${ctx['button_access']['title']}</strong></a>
|
|
% endif
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</tbody></table>
|
|
</div>
|
|
<div summary="o_mail_notification" style="padding:0px; width:600px; margin:0 auto; background: #FFFFFF repeat top /100%;color:#777777">
|
|
<table cellspacing="0" cellpadding="0" style="vertical-align:top; padding:0px; border-collapse:collapse; background:inherit; color:inherit">
|
|
<tbody><tr>
|
|
<td valign="top" style="width:600px; padding:0px 10px 5px 5px;">
|
|
<div>
|
|
<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:0px auto;padding:0">
|
|
</div>
|
|
</td>
|
|
</tr></tbody>
|
|
</table>
|
|
</div>
|
|
<div style="padding:0px; width:600px; max-width:600px; margin:0 auto; background: #FFFFFF repeat top /100%; color:#777777">
|
|
% else:
|
|
<div style="padding:0px; width:600px; max-width:600px; margin:0 auto; background: #FFFFFF repeat top /100%;>
|
|
% endif
|
|
<table cellspacing="0" cellpadding="0" style="width:600px ;text-align:justify; margin:0 auto; border-collapse:collapse; background:inherit; color:inherit">
|
|
|
|
<tbody>
|
|
% if not ctx['is_discussion'] or not len(ctx['actions']) == 0:
|
|
<tr>
|
|
<td style="padding:0px 10px 5px 5px;font-size: 14px;">
|
|
${object.body | safe}
|
|
% if ctx.get('tracking'):
|
|
<ul>
|
|
% for tracking in ctx['tracking']
|
|
<li>${tracking[0]} : ${tracking[1]} -> ${tracking[2]}</li>
|
|
% endfor
|
|
</ul>
|
|
% endif
|
|
</td>
|
|
</tr>
|
|
% else:
|
|
<tr>
|
|
<td style="font-size: 14px;">
|
|
${object.body | safe}
|
|
% if ctx.get('tracking'):
|
|
<ul>
|
|
% for tracking in ctx['tracking']
|
|
<li>${tracking[0]} : ${tracking[1]} -> ${tracking[2]}</li>
|
|
% endfor
|
|
</ul>
|
|
% endif
|
|
</td>
|
|
</tr>
|
|
% endif
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
% if not ctx['is_discussion'] or not len(ctx['actions']) == 0 or ctx.get('button_access'):
|
|
<div style="padding:0px; width:600px; max-width:600px; margin:0 auto; background: #FFFFFF repeat top /100%;color:#777777">
|
|
% else:
|
|
<div style="padding:0px; width:600px; max-width:600px; margin:0 auto; background: #FFFFFF repeat top /100%;>
|
|
% endif
|
|
<table cellspacing="0" cellpadding="0" style="width:600px ;text-align:justify; margin:0 auto; border-collapse:collapse; background:inherit; color:inherit">
|
|
<tbody>
|
|
% if ctx.get('signature'):
|
|
% if not ctx['is_discussion'] or not len(ctx['actions']) == 0:
|
|
<tr>
|
|
<td style="padding:0px 10px 5px 5px;font-size: 14px; text-align: left;">
|
|
${ctx['signature'] | safe}
|
|
</td>
|
|
</tr>
|
|
% else:
|
|
<tr>
|
|
<td style="font-size: 14px; text-align: left;">
|
|
${ctx['signature'] | safe}
|
|
</td>
|
|
</tr>
|
|
% endif
|
|
% endif
|
|
|
|
% if not ctx['is_discussion'] or not len(ctx['actions']) == 0:
|
|
<tr>
|
|
<td style="padding:0px 10px 5px 5px;font-size: 11px; text-align: left;">
|
|
<strong>Sent by</strong>
|
|
% if ctx.get('website_url'):
|
|
<a href="${ctx['website_url']}" style="text-decoration:none; color: #a24689;">
|
|
% endif
|
|
<strong>${ctx.get('company_name')}</strong>
|
|
% if ctx.get('website_url'):
|
|
</a>
|
|
% endif
|
|
<strong>using</strong>
|
|
<a href="https://www.odoo.com" style="text-decoration:none; color: #a24689;"><strong>Odoo</strong></a>
|
|
</td>
|
|
</tr>
|
|
% else:
|
|
<tr>
|
|
<td style="font-size: 14px; text-align: left;">
|
|
<strong>Sent by</strong>
|
|
% if ctx.get('website_url'):
|
|
<a href="${ctx['website_url']}" style="text-decoration:none;">
|
|
% endif
|
|
<strong>${ctx.get('company_name')}</strong>
|
|
% if ctx.get('website_url'):
|
|
</a>
|
|
% endif
|
|
<strong>using</strong>
|
|
<a href="https://www.odoo.com" style="text-decoration:none;"><strong>Odoo</strong></a>
|
|
</td>
|
|
</tr>
|
|
% endif
|
|
</tbody>
|
|
</table>
|
|
</div>]]></field>
|
|
</record>
|
|
|
|
</data>
|
|
</openerp>
|