Quote detection is now done in the sanitizer itself. It tags nodes that are inside quotes (signature, text quotes, email quotes). The purpose is to remove html_email_clean and have all the html cleaning / sanitizing inside a single function. When a node is tagged, data-o-mail-quote is set on the node. This attribute is added in the whitelist of valid attributes for the sanitizer. [REM] Support of shortening messages. The read more / read less will only display or hide detected quotes and signatures. Shortening messages above a given amount of characters is not supported anymore. Indeed it adds much complexity to the sanitizer without adding much value to the result. The primary purpose of the sanitizer is indeed to remove noise and unnecessary content. [TESTS] a lot of test are not necessary anymore, as read more / read less display will be moved in the front-end and as the shortening has been removed.Tests have therefore been cleaned and simplified. [DEMO] mail: small demo update to include a bit quote detection
297 lines
18 KiB
XML
297 lines
18 KiB
XML
<?xml version="1.0"?>
|
|
<openerp>
|
|
<data noupdate="1">
|
|
|
|
<!-- Update 'Demo user' and partners email preferences to avoid mail bombing -->
|
|
<record id="base.partner_demo" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_1" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_2" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_3" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_4" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_3" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_1" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_4" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_12" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_12" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_10" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_3" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_12" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_2" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_4" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_3" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_1" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_12" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_18" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_2" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_4" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_1" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
<record id="base.res_partner_12" model="res.partner">
|
|
<field name="notify_email">none</field>
|
|
</record>
|
|
|
|
<!-- Thread: 1 incoming email -->
|
|
<record id="msg_discus5" model="mail.message">
|
|
<field name="subject">Plan to install backup servers</field>
|
|
<field name="body" type="xml"><p>Hello,</p>
|
|
<p>We need to deploy new backup servers, with the following requirements:</p>
|
|
<ul>
|
|
<li>daily incremental backups, with an history of 15 days,</li>
|
|
<li>45 servers should be backuped between 1am and 3am when our offices are closed,</li>
|
|
<li>two redundant servers,</li>
|
|
<li>total capacity of 200Gb.</li>
|
|
</ul>
|
|
<p>
|
|
Do you have a simple solution with servers running on Redhat Linux?
|
|
</p>
|
|
<p>Best regards,</p>
|
|
<pre>--
|
|
Virginie Agrolait
|
|
virginie@agrolait.fr</pre></field>
|
|
<field name="message_type">email</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="email_from">virginie@agrolait.fr</field>
|
|
<field name="author_id" eval="False"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<!-- Short thread: Admin ask, Agrolait answer [DEMO: mark thread as done] -->
|
|
<record id="msg_discus1" model="mail.message">
|
|
<field name="subject">Feedback about our On Site Assistance</field>
|
|
<field name="body"><![CDATA[<p>Hi Virginie,</p><p>I wrote to you about our <i>On Site Assistance Service</i> that we delivered to Agrolait last week. Do you have any feedback or remark about our service? I noticed you requested new IP phones. Will it be used for new employees, or did you have any issue with the ones we provided?<br />Best regards,</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_root"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.res_partner_2')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<!-- Admin and Demo with attachments -->
|
|
<record id="msg_discus4_attach1" model="ir.attachment">
|
|
<field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
|
|
<field name="datas_fname">catalog.doc</field>
|
|
<field name="name">catalog.doc</field>
|
|
</record>
|
|
<record id="msg_discus4_attach2" model="ir.attachment">
|
|
<field name="datas_fname">activity_graph_2012.jpg</field>
|
|
<field name="name">activity_graph_2012</field>
|
|
<field name="datas" type="base64" file="mail/static/img/msg_discus4_attach2-datas.jpg"/>
|
|
</record>
|
|
<record id="msg_discus4" model="mail.message">
|
|
<field name="body"><![CDATA[<p>Hi Demo,</p>
|
|
<p>The next version of our products catalog is scheduled for next month. Our product team send me their updated document holding the prices and costs, and I updated our catalog.</p>
|
|
<p>You will find it in attachment, as well as a comparative benchmark of the different solutions currently existing on the market.<br />Have a nice reading!<br />
|
|
Sincerely,</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_root"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo')])]"/>
|
|
<field name="attachment_ids" eval="[(6, 0, [ref('msg_discus4_attach1'), ref('msg_discus4_attach2')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<!-- Thread: Epic Technologies and Admin as salesman discuss about a meeting [DEMO: see context, mark thread as done] -->
|
|
<record id="msg_discus2" model="mail.message">
|
|
<field name="subject">Information meeting</field>
|
|
<field name="body"><![CDATA[<p>Hello,</p><p>Epic Technologies is a small company specialized in software managing huge volume of data. Having an efficient and reliable backup system is very important for us, and critical for our customers. I eared you have some interesting solutions to manage our backups. Could we meet each other as soon as possible to discuss our need? Here is a first list of requirements:</p>
|
|
<ul>
|
|
<li>about 25 backup servers, running on Redhat Linux</li>
|
|
<li>minimum 200Gb of storage per server</li>
|
|
<li>setup a VPN between all our servers in New York and Chicago</li>
|
|
</ul>
|
|
<p>Thanks,</p>
|
|
]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.res_partner_3"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<!-- Discussion: attachments and spec [DEMO: search on has_attachments -->
|
|
<record id="msg_discus6_attach1" model="ir.attachment">
|
|
<field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
|
|
<field name="datas_fname">RedHat_spec.doc</field>
|
|
<field name="name">RedHat_spec.doc</field>
|
|
</record>
|
|
<record id="msg_discus6_attach2" model="ir.attachment">
|
|
<field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
|
|
<field name="datas_fname">RedHat_spec_draft_v3.doc</field>
|
|
<field name="name">RedHat_spec_draft_v3.doc</field>
|
|
</record>
|
|
<record id="msg_discus6" model="mail.message">
|
|
<field name="subject">RedHat server updated spec</field>
|
|
<field name="body"><![CDATA[<p>Hello Demo,</p>
|
|
<p>We have a lot of inquiries about our now solution based on RedHat servers. However I do not have the updated specification ready at hand.</p>
|
|
<p>Could you please send me the last version of the file asap?</p>
|
|
<p>Thanks,</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_root"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<record id="msg_discus6_1" model="mail.message">
|
|
<field name="body" type="xml">
|
|
<p>Sure, here it is. Have a nice day!</p>
|
|
<p class="gmail_extra"><p>Hello Demo,</p>
|
|
<p>-- Original mail stripped --</p></p></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="parent_id" ref="msg_discus6"/>
|
|
<field name="author_id" ref="base.partner_demo"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="attachment_ids" eval="[(6, 0, [ref('msg_discus6_attach1')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<record id="msg_discus6_2" model="mail.message">
|
|
<field name="body"><![CDATA[<p>I just found a more recent draft of the spec. Jon did some cleaning in the specifications. Could you merge the two documents to have an updated one?</p><p>When it's done, put it on the internal document management system.</p><p>Thanks,</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="parent_id" ref="msg_discus6"/>
|
|
<field name="author_id" ref="base.partner_demo"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="attachment_ids" eval="[(6, 0, [ref('msg_discus6_attach2')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<!-- Thread: Demo (network admin) and Admin -->
|
|
<record id="msg_discus3" model="mail.message">
|
|
<field name="body"><![CDATA[<p>Hello,</p><p>I have a friend working at Epic Technologies. He told me they plan to upgrade their backup servers within the next 3 months.</p><p>I think that someone should contact them and check if there is an opportunity.</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_demo"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<record id="msg_discuss4_1" model="mail.message">
|
|
<field name="body"><![CDATA[<p>Thank you!<br/>Could you send me the updated pricelists as negotiated at the beginning of this year?</p>
|
|
<p>Sincerely,</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="parent_id" ref="msg_discus4"/>
|
|
<field name="author_id" ref="base.partner_demo"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root'), ref('base.partner_demo')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(hours=1, minutes=30)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<record id="msg_discus3_1" model="mail.message">
|
|
<field name="body"><![CDATA[Contact Chris: +1 (650) 307-6736.]]></field>
|
|
<field name="parent_id" ref="msg_discus3"/>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_demo"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<record id="msg_discus2_1" model="mail.message">
|
|
<field name="subject">RE: Information meeting</field>
|
|
<field name="body"><![CDATA[<p>Hello Epic!</p>
|
|
<p>I am glad you are interested in our products. Indeed, we are have several backup solutions that should meet your requirements. In order to prepare a detailed offer, we will have to discuss several technical points about your needs and the context of your data management.</p>
|
|
<p>I propose to have a meeting tomorrow at 2 PM. Does it seem suitable for you ?<br />Best regards,</p>]]></field>
|
|
<field name="parent_id" ref="msg_discus2"/>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_root"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.res_partner_3')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<record id="msg_discus2_2" model="mail.message">
|
|
<field name="subject">RE: Information meeting</field>
|
|
<field name="body"><![CDATA[<p>It is not possible for me to come tomorrow at 2 PM. Maybe at 4 PM?</p>]]></field>
|
|
<field name="parent_id" ref="msg_discus2"/>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.res_partner_3"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(minutes=35)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<record id="msg_discus2_3" model="mail.message">
|
|
<field name="subject">RE: Information meeting</field>
|
|
<field name="body"><![CDATA[<p>4 PM is fine! See you tomorrow!<br />Best regards,</p>]]></field>
|
|
<field name="parent_id" ref="msg_discus2"/>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.partner_root"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.res_partner_3')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(minutes=30)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
<record id="msg_discus2_4" model="mail.message">
|
|
<field name="subject">RE: Information meeting</field>
|
|
<field name="body"><![CDATA[<p>Ok! See you tomorrow.</p>]]></field>
|
|
<field name="parent_id" ref="msg_discus2"/>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.res_partner_3"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(minutes=10)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<record id="msg_discus1_1" model="mail.message">
|
|
<field name="subject">RE: Feedback about our On Site Assistance</field>
|
|
<field name="body"><![CDATA[<p>Hello Administrator,</p><p>Glad to hear from you! Everything is perfect, thanks for asking. Concerning the order of 2 IP phones, I ordered them for new employees. We are satisfied with the products of <i>YourCompany</i>, and we plan to fit out each new employee with one of your phone this year.<br />Regards,</p>]]></field>
|
|
<field name="parent_id" ref="msg_discus1"/>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.res_partner_2"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
<!-- Header only: message from res_partner_1 [DEMO: mark as done] -->
|
|
<record id="msg_discus0" model="mail.message">
|
|
<field name="subject">FWD: Meeting with Demo </field>
|
|
<field name="body"><![CDATA[<p>Hello Administrator,</p><p>A small email to inform you that we will have a meeting with Mr Demo next Tuesday. Everything is under control!<br />Regards,</p>]]></field>
|
|
<field name="message_type">comment</field>
|
|
<field name="subtype_id" ref="mt_comment"/>
|
|
<field name="author_id" ref="base.res_partner_1"/>
|
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
|
<field name="date" eval="(DateTime.today() - timedelta(minutes=1)).strftime('%Y-%m-%d %H:%M')"/>
|
|
</record>
|
|
|
|
</data>
|
|
</openerp>
|