Purpose ======= In this commit, we will fix the loops that occur when you send an email to an alias (to create a ticket e.g.). In that case Odoo can reply "Your ticket has been created" and then the auto-replier of the user can reply to this email and the loop occurs. Specifications ============== To solve this issues, we add 2 system parameters - <mail.gateway.loop.minutes>, 120 minutes by default - <mail.gateway.loop.threshold>, 20 by default When an email is sent to an alias, we look on the last records created <mail.gateway.loop.minutes> minutes ago. If we overcome the limit <mail.gateway.loop.threshold> the email is ignored. Alias creation detection ======================== To detect the number of records created by a specific email address we use the `_primary_email` attribute set on the model. Task-2294034 closes odoo/odoo#78597 Related: odoo/enterprise#21772 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
64 lines
3.1 KiB
XML
64 lines
3.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
<!-- Discuss utility templates for notifications -->
|
|
<template id="message_user_assigned">
|
|
<p style="margin: 0px;">
|
|
<span>Dear <t t-esc="object.user_id.sudo().name"/>,</span><br />
|
|
<span style="margin-top: 8px;">You have been assigned to the <t t-esc="model_description or 'document'"/> <t t-esc="object.display_name"/>.</span>
|
|
</p>
|
|
<p style="padding-top: 24px; padding-bottom: 16px;">
|
|
<a t-att-href="access_link" t-att-data-oe-model="object._name" t-att-data-oe-id="object.id" style="background-color:#875A7B; padding: 10px; text-decoration: none; color: #fff; border-radius: 5px;">
|
|
View <t t-esc="model_description or 'document'"/>
|
|
</a>
|
|
</p>
|
|
</template>
|
|
|
|
<template id="message_activity_done">
|
|
<div>
|
|
<p>
|
|
<span t-attf-class="fa #{activity.activity_type_id.icon} fa-fw"/><span t-field="activity.activity_type_id.name"/> done
|
|
<t t-if="display_assignee"> (originally assigned to <span t-field="activity.user_id.name"/>)</t>
|
|
<span t-if="activity.summary">: </span><span t-if="activity.summary" t-field="activity.summary"/>
|
|
</p>
|
|
<div t-if="feedback">
|
|
<t t-foreach="feedback.split('\n')" t-as="feedback_line">
|
|
<t t-esc="feedback_line"/>
|
|
<br t-if="not feedback_line_last"/>
|
|
</t>
|
|
</div>
|
|
<t t-if="activity.note and activity.note != '<p><br></p>'"><!-- <p></br></p> -->
|
|
<div class="o_mail_note_title"><strong>Original note:</strong></div>
|
|
<div t-field="activity.note"/>
|
|
</t>
|
|
</div>
|
|
</template>
|
|
|
|
<template id="message_activity_assigned">
|
|
<div style="margin: 0px; padding: 0px; font-size: 13px;">
|
|
<span t-field="activity.create_uid.name"/> assigned you an activity <span t-field="activity.activity_type_id.name"/>
|
|
<t t-if="activity.summary">(<span t-field="activity.summary"/>)</t>
|
|
on <span t-field="activity.res_name"/>
|
|
to close for <span t-field="activity.date_deadline"/>.<br />
|
|
<p style="padding: 16px 0px 16px 0px;">
|
|
<a t-att-href="access_link" t-att-data-oe-model="activity.res_model" t-att-data-oe-id="activity.res_id"
|
|
style="background-color:#875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px;">
|
|
View <t t-esc="model_description or 'document'"/>
|
|
</a>
|
|
</p>
|
|
<div t-if="activity.note" style="margin-top: 8px;" t-field="activity.note"/>
|
|
</div>
|
|
</template>
|
|
|
|
<template id="message_origin_link">
|
|
<p>
|
|
<t t-if="edit">This <t t-esc="self.env['ir.model']._get(self._name).name.lower()"/> has been modified from:</t>
|
|
<t t-else="">This <t t-esc="self.env['ir.model']._get(self._name).name.lower()"/> has been created from:</t>
|
|
<t t-foreach="origin" t-as="o">
|
|
<a href="#" t-att-data-oe-model="o._name" t-att-data-oe-id="o.id"> <t t-esc="o.display_name"/></a><span t-if="origin.ids[-1:] != o.ids">, </span>
|
|
</t>
|
|
</p>
|
|
</template>
|
|
</data>
|
|
</odoo>
|