mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-20 14:02:02 +02:00
19.0 vanilla
This commit is contained in:
parent
5df8c07b59
commit
daa394e8b0
2114 changed files with 564841 additions and 299642 deletions
|
|
@ -7,7 +7,7 @@
|
|||
–
|
||||
<a t-attf-href="/mailing/report/unsubscribe?token=#{mailing_report_token}&user_id=#{user_id}"
|
||||
target="_blank" style="text-decoration: none;">
|
||||
<span style="color: #8f8f8f;">Turn off Mailing Reports</span>
|
||||
<span style="color: #878d97;">Turn off Mailing Reports</span>
|
||||
</a>
|
||||
</t>
|
||||
</xpath>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="0">
|
||||
<data>
|
||||
<!-- Snippets' Default Images -->
|
||||
<record id="mass_mailing.s_cover_default_image" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
|
|
@ -28,27 +28,39 @@
|
|||
</record>
|
||||
<record id="mass_mailing.s_company_team_default_image_1" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_company_team_default_image_1.png</field>
|
||||
<field name="name">s_company_team_default_image_1.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_1.png</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_1.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_company_team_default_image_2" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_company_team_default_image_2.png</field>
|
||||
<field name="name">s_company_team_default_image_2.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_2.png</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_2.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_company_team_default_image_3" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_company_team_default_image_3.png</field>
|
||||
<field name="name">s_company_team_default_image_3.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_3.png</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_3.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_company_team_default_image_4" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_company_team_default_image_4.png</field>
|
||||
<field name="name">s_company_team_default_image_4.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_4.png</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_4.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_company_team_default_image_5" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_company_team_default_image_5.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_5.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_company_team_default_image_6" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_company_team_default_image_6.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_6.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_reference_default_image_1" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
|
|
@ -96,13 +108,13 @@
|
|||
<field name="public" eval="True"/>
|
||||
<field name="name">s_blockquote_default_image.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_2.png</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_team_member_2.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_image_text_default_image" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_image_text_default_image.jpg</field>
|
||||
<field name="name">s_image_text_default_image.webp</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_image_text.jpg</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_image_text.webp</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_event_default_image_1" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
|
|
@ -118,9 +130,9 @@
|
|||
</record>
|
||||
<record id="mass_mailing.s_masonry_block_default_image_1" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_masonry_block_default_image_1.jpg</field>
|
||||
<field name="name">s_masonry_block_default_image_1.webp</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_masonry_block_1.jpg</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_masonry_block_1.webp</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_masonry_block_default_image_2" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
|
|
@ -136,9 +148,9 @@
|
|||
</record>
|
||||
<record id="mass_mailing.s_text_image_default_image" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_text_image_default_image.jpg</field>
|
||||
<field name="name">s_text_image_default_image.webp</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_text_image.jpg</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_text_image_default_image.webp</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_three_columns_default_image_1" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
|
|
@ -158,5 +170,11 @@
|
|||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/theme_default/s_default_image_three_cols_3.jpg</field>
|
||||
</record>
|
||||
<record id="mass_mailing.s_shape_image_default_image" model="ir.attachment">
|
||||
<field name="public" eval="True"/>
|
||||
<field name="name">s_shape_image_default_image.jpg</field>
|
||||
<field name="type">url</field>
|
||||
<field name="url">/mass_mailing/static/src/img/snippets_demo/s_shape_image_default_image.jpg</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -5,5 +5,9 @@
|
|||
<function model="ir.config_parameter"
|
||||
name="set_param"
|
||||
eval="('mass_mailing.mass_mailing_reports', 'True')"/>
|
||||
<!-- Display blacklist button to customers on portal page -->
|
||||
<function model="ir.config_parameter"
|
||||
name="set_param"
|
||||
eval="('mass_mailing.show_blacklist_buttons', True)"/>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@
|
|||
<field name="user_id" ref="base.user_root" />
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall" />
|
||||
<field name="priority">6</field>
|
||||
</record>
|
||||
<!-- Cron that processes the a/b testing -->
|
||||
<record id="ir_cron_mass_mailing_ab_testing" model="ir.cron">
|
||||
|
|
@ -23,8 +22,6 @@
|
|||
<field name="active" eval="False"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field name="doall" eval="True"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="0">
|
||||
<record model="ir.module.category" id="base.module_category_marketing_email_marketing">
|
||||
<field name="sequence">19</field>
|
||||
<field name="description">Helps you manage your mass mailing to design
|
||||
professional emails and reuse templates.</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
|
||||
|
||||
<t t-call="mass_mailing.mass_mailing_mail_style"/>
|
||||
<t t-out="mailing_style"/>
|
||||
|
||||
<!--
|
||||
Prevent Outlook from distorting images with DPI scaling (see
|
||||
|
|
@ -34,150 +34,84 @@
|
|||
</body>
|
||||
</html>
|
||||
</template>
|
||||
|
||||
<template id="mass_mailing_mail_style">
|
||||
<style>
|
||||
.o_layout * {
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
.o_layout :not(.fa) {
|
||||
font-family: Arial,Helvetica Neue,Helvetica,sans-serif;
|
||||
}
|
||||
/* Remove space around the email design. */
|
||||
html,
|
||||
body {
|
||||
margin: 0 auto !important;
|
||||
padding: 0 !important;
|
||||
height: 100% !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Stop Outlook resizing small text. */
|
||||
* {
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
/* Stop Outlook from adding extra spacing to tables. */
|
||||
table,
|
||||
td {
|
||||
mso-table-lspace: 0pt !important;
|
||||
mso-table-rspace: 0pt !important;
|
||||
}
|
||||
|
||||
/* Use a better rendering method when resizing images in Outlook IE. */
|
||||
img {
|
||||
-ms-interpolation-mode:bicubic;
|
||||
}
|
||||
|
||||
/* Prevent Windows 10 Mail from underlining links. Styles for underlined links should be inline. */
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
@media screen and (max-width: 768px) {
|
||||
.o_mail_snippet_general .container {
|
||||
width: 100% !important;
|
||||
}
|
||||
.s_header_social table td, .s_header_text_social table td, .s_header_logo table td,
|
||||
.o_mail_block_footer_social td,
|
||||
.s_showcase td,
|
||||
.s_mail_product_list td,
|
||||
.s_references td {
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1135px) {
|
||||
.o_stacking_wrapper {
|
||||
width: 100% !important;
|
||||
height: unset !important;
|
||||
}
|
||||
td {
|
||||
max-width: inherit !important;
|
||||
}
|
||||
img:only-child:not(.img-fluid) {
|
||||
object-fit: cover;
|
||||
min-width: 100% !important;
|
||||
}
|
||||
.o_desktop_h100 {
|
||||
height: unset !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</template>
|
||||
</data>
|
||||
|
||||
<data noupdate="0">
|
||||
<template id="ab_testing_description" name="Mass Mailing: A/B Test Description">
|
||||
<div name="ab_testing_description" class="mb-2">
|
||||
<t t-if="mailing.state == 'done' and mailing.sent == 0 and mailing.failed == 0 and mailing.canceled == 0">
|
||||
<span>There wasn't enough recipients left for this mailing</span>
|
||||
</t>
|
||||
<t t-if="mailing.ab_testing_completed">
|
||||
<p t-if="mailing.ab_testing_pc == 100">
|
||||
<p t-if="mailing.ab_testing_is_winner_mailing">
|
||||
This <t t-out="mailing.mailing_type_description"/> is the winner of the A/B testing campaign and has been sent to all remaining recipients.
|
||||
</p>
|
||||
<p t-else="">The winner has already been sent. Use <b>Compare Version</b> to get an overview of this A/B testing campaign.</p>
|
||||
</t>
|
||||
<t t-elif="mailing.ab_testing_mailings_count >= 2">
|
||||
<t t-elif="ab_testing_count >= 2">
|
||||
<p>
|
||||
A sample of <b><t t-out="mailing.ab_testing_pc"/>% of recipients</b> will receive this <b><t t-out="mailing.mailing_type_description"/></b>, and <t t-out="other_ab_testing_pc"/>% receive one of the
|
||||
<b><t t-out="mailing.ab_testing_mailings_count - 1"/> other versions</b> from the same campaign.
|
||||
A sample of <b><t t-out="mailing.ab_testing_pc"/>% of recipients</b> will receive this version.<br/>
|
||||
<t t-if="total_ab_testing_pc > 100 and mailing.active">
|
||||
<i class="fa fa-exclamation-triangle text-danger" aria-hidden="true"/>
|
||||
The sum of all percentages for this A/B campaign totals <b class="text-danger"><t t-out="total_ab_testing_pc"/>%</b> of all potential recipients.<br/>
|
||||
<b class="text-danger">Some of the mailings will not be sent</b>, as only 1 email will be sent for each unique recipient in this campaign.
|
||||
</t>
|
||||
</p>
|
||||
<p>
|
||||
<t t-if="mailing.ab_testing_winner_selection == 'manual'">Don't forget to send your preferred version</t>
|
||||
<t t-elif="not mailing.ab_testing_schedule_datetime">Since the date and time for this test has not been scheduled, don't forget to manually send your preferred version.</t>
|
||||
<t t-else="">
|
||||
Then on <b><t t-out="mailing.ab_testing_schedule_datetime.strftime('%b %d, %Y')"/></b> the <t t-out="mailing.mailing_type_description"/> having the <b><t t-out="ab_testing_winner_selection_description"/></b> will be sent
|
||||
</t> to the remaining <t t-out="remaining_ab_testing_pc"/>% of recipients.
|
||||
</t> to the remaining recipients.
|
||||
</p>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<p>
|
||||
A sample of <b><t t-out="mailing.ab_testing_pc"/>% of recipients</b> will receive this <b><t t-out="mailing.mailing_type_description"/></b>.
|
||||
</p>
|
||||
<p>Try different variations in the campaign to compare their <t t-out="ab_testing_winner_selection_description"/>.</p>
|
||||
<p>
|
||||
<t t-if="mailing.ab_testing_winner_selection != 'manual'">Once the best version is identified, we will send the best one to the remaining recipients.</t>
|
||||
<t t-else="">
|
||||
The actual <t t-out="mailing.mailing_type_description"/> will be sent to the remaining recipients.
|
||||
</t>
|
||||
A sample of <b><t t-out="mailing.ab_testing_pc"/>% of recipients</b> will receive this version.
|
||||
</p>
|
||||
<t t-if="mailing.ab_testing_winner_selection != 'manual'">
|
||||
<p>Try different variations in the campaign to compare their <t t-out="ab_testing_winner_selection_description"/>.</p>
|
||||
<p>Once the best version is identified, we will send the best one to the remaining recipients.</p>
|
||||
</t>
|
||||
<p t-else="">Use alternative versions to be able to select the winner.</p>
|
||||
</t>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template id="mass_mailing.mass_mailing_kpi_link_trackers" name="Marketing: mailing link trackers statistic">
|
||||
<div class="global_layout" t-if="link_trackers">
|
||||
<table bgcolor="#ffffff" cellspacing="0" cellpadding="0" width="650" align="center" border="0" style="width: 100%; max-width: 650px;">
|
||||
<tr>
|
||||
<td style="width: 100%;">
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="580" align="center" style="width:100%; max-width:580px;">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<span style="color:#282f33; font-size: 15px; font-weight: bold; line-height: 30px">
|
||||
<t t-esc="'Click Rate Report on %i %s Sent' % (object.expected, mailing_type)"/>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="margin: 0; padding:0;">
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="580" align="center" style="width:100%; max-width:580px;border-collapse: collapse;">
|
||||
<tr style="color: #875a7b; font-size: 16px; font-weight: 500;">
|
||||
<td style="width: 70%;padding: 10px 0; text-align: center; border: 1px solid #e7e7e7;">Button Label</td>
|
||||
<td style="width: 30%;padding: 10px 0; text-align: center; border: 1px solid #e7e7e7;">%Click (Total)</td>
|
||||
</tr>
|
||||
<tr t-foreach="link_trackers" t-as="link_tracker" style="color: #888888; font-size: 15px; font-weight: 300;">
|
||||
<td style="width: 70%;padding: 10px 0; border: 1px solid #e7e7e7;">
|
||||
<a t-att-href="link_tracker.absolute_url" target="_blank" style="color: #56b3b5; text-decoration: none;" t-esc="link_tracker.label or link_tracker.url"/>
|
||||
</td>
|
||||
<td style="width: 30%;padding: 10px 0; text-align: center; border: 1px solid #e7e7e7;">
|
||||
<t t-esc="int(link_tracker.count * 100 / object.sent) if object.sent else 0"/>% (<t t-esc="link_tracker.count"/>)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table t-if="link_trackers" class="global_table_layout" bgcolor="#ffffff" cellspacing="0" cellpadding="0" align="center" border="0" style="width: 100%;">
|
||||
<tr>
|
||||
<td style="width: 100%;">
|
||||
<table cellspacing="0" cellpadding="0" border="0" align="center" style="width:100%;">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<span style="color:#282f33; font-size: 15px; font-weight: bold; line-height: 30px">
|
||||
<t t-esc="'Click Rate Report on %i %s Sent' % (object.expected, mailing_type)"/>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="margin: 0; padding:0;">
|
||||
<table cellspacing="0" cellpadding="0" border="0" align="center" style="width:100%; border-collapse: collapse;">
|
||||
<tr t-att-style="'color: ' + (company.email_secondary_color or '#875a7b') + '; font-size: 16px; font-weight: 500;'">
|
||||
<td style="width: 70%;padding: 10px 0; text-align: center; border: 1px solid #e7e7e7;">Button Label</td>
|
||||
<td style="width: 30%;padding: 10px 0; text-align: center; border: 1px solid #e7e7e7;">%Click (Total)</td>
|
||||
</tr>
|
||||
<tr t-foreach="link_trackers" t-as="link_tracker" style="color: #888888; font-size: 15px; font-weight: 300;">
|
||||
<td style="width: 70%;padding: 10px 0; border: 1px solid #e7e7e7;">
|
||||
<a t-att-href="link_tracker.absolute_url" target="_blank" style="color: #56b3b5; text-decoration: none;" t-esc="link_tracker.label or link_tracker.url"/>
|
||||
</td>
|
||||
<td style="width: 30%;padding: 10px 0; text-align: center; border: 1px solid #e7e7e7;">
|
||||
<t t-esc="int(link_tracker.count * 100 / object.sent) if object.sent else 0"/>% (<t t-esc="link_tracker.count"/>)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</template>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -3,11 +3,12 @@
|
|||
<data noupdate="1">
|
||||
<record id="mailing_list_data" model="mailing.list">
|
||||
<field name="name">Newsletter</field>
|
||||
<field name="is_public">True</field>
|
||||
</record>
|
||||
<record id="mass_mailing_contact_0" model="mailing.contact">
|
||||
<record id="mass_mail_contact_0" model="mailing.contact">
|
||||
<field name="name" model="res.users" eval="obj().env.ref('base.user_admin').name"/>
|
||||
<field name="email" model="res.users" eval="obj().env.ref('base.user_admin').email"/>
|
||||
<field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
|
||||
<field name="list_ids" eval="[(5, 0, 0)]"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="mailing_list_data_sub_contact_0" model="mailing.subscription">
|
||||
<field name="contact_id" ref="mass_mailing.mass_mail_contact_0"/>
|
||||
<field name="list_id" ref="mass_mailing.mailing_list_data"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo><data noupdate="0">
|
||||
<record id="mailing_subscription_optout_data_0" model="mailing.subscription.optout">
|
||||
<field name="name">I never subscribed to this list</field>
|
||||
<field name="sequence">1</field>
|
||||
</record>
|
||||
<record id="mailing_subscription_optout_data_1" model="mailing.subscription.optout">
|
||||
<field name="name">I changed my mind</field>
|
||||
<field name="sequence">2</field>
|
||||
</record>
|
||||
<record id="mailing_subscription_optout_data_2" model="mailing.subscription.optout">
|
||||
<field name="name">I receive too many emails from this list</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
<record id="mailing_subscription_optout_data_3" model="mailing.subscription.optout">
|
||||
<field name="name">The content of these emails is not relevant to me</field>
|
||||
<field name="sequence">4</field>
|
||||
</record>
|
||||
<record id="mailing_subscription_optout_data_4" model="mailing.subscription.optout">
|
||||
<field name="name">Other</field>
|
||||
<field name="sequence">99</field>
|
||||
<field name="is_feedback" eval="True"/>
|
||||
</record>
|
||||
</data></odoo>
|
||||
|
|
@ -1,296 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="mass_mail_attach_1" model="ir.attachment">
|
||||
<field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
|
||||
<field name="name">SampleDoc.doc</field>
|
||||
</record>
|
||||
|
||||
<!-- Create Extra Mailing List for Demo -->
|
||||
<record id="mailing_list_1" model="mailing.list">
|
||||
<field name="name">Imported Contacts</field>
|
||||
</record>
|
||||
|
||||
<!-- Create Contacts -->
|
||||
<record id="mass_mail_contact_1" model="mailing.contact">
|
||||
<field name="name">Aristide Antario</field>
|
||||
<field name="email">alexandre.antario@example.com</field>
|
||||
<field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
|
||||
</record>
|
||||
<record id="mass_mail_contact_2" model="mailing.contact">
|
||||
<field name="name">Beverly Bridge</field>
|
||||
<field name="email">beverly.bridge@example.com</field>
|
||||
<field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
|
||||
</record>
|
||||
<record id="mass_mail_contact_3" model="mailing.contact">
|
||||
<field name="name">Carol Cartridge</field>
|
||||
<field name="email">carol.cartridge@example.com</field>
|
||||
<field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data'),ref('mass_mailing.mailing_list_1')])]"/>
|
||||
</record>
|
||||
<record id="mass_mail_contact_4" model="mailing.contact">
|
||||
<field name="name">David Dawson</field>
|
||||
<field name="email">david.dawson@example.com</field>
|
||||
</record>
|
||||
<record id="mass_mail_contact_5" model="mailing.contact">
|
||||
<field name="name">Elsa Ericson</field>
|
||||
<field name="email">elsa.ericson@example.com</field>
|
||||
<field name="message_bounce">5</field>
|
||||
<field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
|
||||
</record>
|
||||
<record id="mass_mail_contact_6" model="mailing.contact">
|
||||
<field name="name">Franz Faubourg</field>
|
||||
<field name="email">franz.faubourg@example.com</field>
|
||||
<field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_1')])]"/>
|
||||
</record>
|
||||
|
||||
<!-- Create Opt-out Records -->
|
||||
<record id="mass_mail_contact_list_rel_1" model="mailing.contact.subscription">
|
||||
<field name="list_id" ref="mass_mailing.mailing_list_data"/>
|
||||
<field name="contact_id" ref="mass_mailing.mass_mail_contact_4"/>
|
||||
<field name="opt_out">True</field>
|
||||
</record>
|
||||
<record id="mass_mail_contact_list_rel_2" model="mailing.contact.subscription">
|
||||
<field name="list_id" ref="mass_mailing.mailing_list_data"/>
|
||||
<field name="contact_id" ref="mass_mailing.mass_mail_contact_6"/>
|
||||
<field name="opt_out">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Create Blacklist Records -->
|
||||
<record id="blacklist_1" model="mail.blacklist">
|
||||
<field name="email">elsa.ericson@example.com</field>
|
||||
</record>
|
||||
|
||||
<!-- Create campaign and mailings -->
|
||||
<record id="utm_source_0" model="utm.source">
|
||||
<field name="name">Newsletter 1</field>
|
||||
</record>
|
||||
<record id="mass_mail_campaign_1" model="utm.campaign">
|
||||
<field name="name">Newsletter</field>
|
||||
<field name="stage_id" ref="utm.campaign_stage_1"/>
|
||||
<field name="user_id" ref="base.user_admin"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('utm.utm_tag_1')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="mass_mail_1" model="mailing.mailing">
|
||||
<field name="name">Newsletter 1</field>
|
||||
<field name="subject">Monthly Newsletter</field>
|
||||
<field name="state">done</field>
|
||||
<field name="user_id" ref="base.user_admin"/>
|
||||
<field name="email_from">info@yourcompany.example.com</field>
|
||||
<field name="sent_date" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="campaign_id" ref="mass_mail_campaign_1"/>
|
||||
<field name="source_id" ref="mass_mailing.utm_source_0"/>
|
||||
<field name="mailing_model_id" ref="base.model_res_partner"/>
|
||||
<field name="mailing_domain" eval="[('parent_id', '=', ref('base.res_partner_4'))]"/>
|
||||
<field name="reply_to_mode">new</field>
|
||||
<field name="reply_to">Info <info@yourcompany.example.com></field>
|
||||
<field name="body_arch" type="html">
|
||||
<div class="o_layout o_default_theme oe_unremovable oe_unmovable" data-name="Mailing">
|
||||
<div class="container o_mail_wrapper oe_unremovable oe_unmovable" style="border-collapse:collapse;">
|
||||
<div class="row">
|
||||
<div class="col o_mail_no_options o_mail_wrapper_td bg-white oe_structure o_editable" style="text-align:left;width:100%;">
|
||||
<div class="o_mail_block_header_logo" data-snippet="s_mail_block_header_logo">
|
||||
<div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
|
||||
<div class="container o_mail_h_padding" style="padding:0 20px 0 20px;width:100%;border-collapse:separate;">
|
||||
<div class="row">
|
||||
<div valign="center" width="30%" class="col text-center o_mail_v_padding pb0" style="padding:20px 0 0px 0;vertical-align:middle;text-align:center;">
|
||||
<a href="http://www.example.com" style="text-decoration:none;font-weight:bold;background-color:transparent;color:rgb(100, 89, 116);">
|
||||
<img border="0" src="/mass_mailing/static/src/img/theme_default/s_default_image_header_logo.png" style="border-style:none;height:auto;vertical-align:middle;max-width:400px;width:auto"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_mail_block_footer_separator" data-snippet="s_hr" style="margin:0 20px 0 20px;">
|
||||
<div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
|
||||
<div class="container" style="width:100%;border-collapse:separate;">
|
||||
<div class="row">
|
||||
<div valign="top" style="padding:20px 0 20px 0;text-align:left;vertical-align:top;width:100%;" class="col o_mail_v_padding o_mail_no_colorpicker">
|
||||
<div style="background-color:rgb(245, 245, 245);height:2px;width:100%;" class="separator"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_mail_block_text" data-snippet="s_text_block">
|
||||
<div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
|
||||
<div class="container" style="width:100%;border-collapse:separate;">
|
||||
<div class="row">
|
||||
<div class="col-12 o_mail_h_padding o_mail_v_padding o_mail_no_colorpicker" style="padding:20px;text-align:left;vertical-align:top;">
|
||||
<p style="margin:0px 0 1rem 0;font-size:14px;">
|
||||
Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.
|
||||
<br/>Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_mail_block_footer_social o_mail_footer_social_center" data-snippet="s_mail_block_footer_social">
|
||||
<div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
|
||||
<div align="center" class="container" style="border-style:solid none none none;padding:20px 0 20px 0;border-top-color:rgb(245, 245, 245);border-top-width:2px;width:100%;border-collapse:separate;">
|
||||
<div class="row">
|
||||
<div class="col o_mail_footer_links o_default_snippet_text" style="padding:10px 0 10px 0;text-align:center;vertical-align:middle;">
|
||||
<a href="/unsubscribe_from_list" class="btn btn-link o_default_snippet_text" style="text-decoration:none;border-radius:0.25rem;border-style:solid;padding:0px;cursor:pointer;line-height:1.5;font-size:12px;border-start-color:transparent;border-bottom-color:transparent;border-end-color:transparent;border-top-color:transparent;border-start-width:1px;border-bottom-width:1px;border-end-width:1px;border-top-width:1px;user-select:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:bold;display:inline-block;background-color:transparent;color:rgb(100, 89, 116);">Unsubscribe</a> |
|
||||
|
||||
<a href="/contactus" class="btn btn-link o_default_snippet_text" style="text-decoration:none;border-radius:0.25rem;border-style:solid;padding:0px;cursor:pointer;line-height:1.5;font-size:12px;border-start-color:transparent;border-bottom-color:transparent;border-end-color:transparent;border-top-color:transparent;border-start-width:1px;border-bottom-width:1px;border-end-width:1px;border-top-width:1px;user-select:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:bold;display:inline-block;background-color:transparent;color:rgb(100, 89, 116);">Contact</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" style="text-align:left;vertical-align:middle;">
|
||||
<p class="o_mail_footer_copy" style="margin:0px 0 1rem 0;text-align:center;font-weight:bold;color:rgb(147, 146, 146);font-size:9px;">
|
||||
<img src="/web_editor/font_to_img/61945/rgb(147,146,146)/9" data-class="fa fa-copyright" style="border-style:none;max-width:100%;width:100%;vertical-align:middle;height: auto; width: auto;"/>2018 All Rights Reserved
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div align="center" class="container" style="width:100%;border-collapse:separate;">
|
||||
<div class="row">
|
||||
<div align="center" style="padding:16px 0 16px 0;" class="col pt16 pb16">
|
||||
Powered by <a target="_blank" href="https://www.odoo.com" style="text-decoration:none;background-color:transparent;color:#875A7B;">Odoo</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</field>
|
||||
<field name="attachment_ids" eval="[(4, ref('mass_mail_attach_1'))]"/>
|
||||
</record>
|
||||
<!-- Generate link tracker information from it -->
|
||||
<function model="mailing.mailing" name="convert_links" eval="[ref('mass_mailing.mass_mail_1')]"/>
|
||||
|
||||
<record id="mass_mail_1_stat_0" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111000@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_7"/>
|
||||
<field name="email">billy.fox45@example.com</field>
|
||||
<field name="trace_status">reply</field>
|
||||
<field name="sent_datetime" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="open_datetime" eval="(DateTime.today() - relativedelta(days=4)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="reply_datetime" eval="(DateTime.today() - relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="write_date" eval="(DateTime.today() - relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_1" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111001@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_13"/>
|
||||
<field name="email">kim.snyder96@example.com</field>
|
||||
<field name="trace_status">reply</field>
|
||||
<field name="sent_datetime" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="open_datetime" eval="(DateTime.today() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="reply_datetime" eval="(DateTime.today() - relativedelta(days=0)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="write_date" eval="(DateTime.today() - relativedelta(days=0)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_2" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111002@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_14"/>
|
||||
<field name="email">edith.sanchez68@example.com</field>
|
||||
<field name="trace_status">open</field>
|
||||
<field name="sent_datetime" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="open_datetime" eval="(DateTime.today() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="write_date" eval="(DateTime.today() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_3" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111003@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_24"/>
|
||||
<field name="email">theodore.gardner36@example.com</field>
|
||||
<field name="trace_status">open</field>
|
||||
<field name="sent_datetime" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="open_datetime" eval="(DateTime.today() - relativedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="write_date" eval="(DateTime.today() - relativedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_4" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111004@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_32"/>
|
||||
<field name="email">sandra.neal80@example.com</field>
|
||||
<field name="trace_status">sent</field>
|
||||
<field name="sent_datetime" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="write_date" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_5" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111005@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_33"/>
|
||||
<field name="email">julie.richards84@example.com</field>
|
||||
<field name="trace_status">error</field>
|
||||
<field name="sent_datetime" eval="False"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_6" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111006@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_34"/>
|
||||
<field name="email">travis.mendoza24@example.com</field>
|
||||
<field name="trace_status">bounce</field>
|
||||
<field name="sent_datetime" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="write_date" eval="(DateTime.today() - relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
</record>
|
||||
<record id="mass_mail_1_stat_7" model="mailing.trace">
|
||||
<field name="mass_mailing_id" ref="mass_mail_1"/>
|
||||
<field name="message_id">1111007@odoo.com</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="res_id" ref="base.res_partner_address_34"/>
|
||||
<field name="email">travis.mendoza24@example.com</field>
|
||||
<field name="trace_status">bounce</field>
|
||||
<field name="sent_datetime" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- Generate some clicks -->
|
||||
<function model="link.tracker.click" name="add_click">
|
||||
<value model="link.tracker.code"
|
||||
search="[('link_id.url', '=', 'http://www.example.com')]"
|
||||
use="code"/>
|
||||
<value name="ip">100.01.02.03</value>
|
||||
<value name="country_code">BE</value>
|
||||
<value name="mailing_trace_id" eval="ref('mass_mail_1_stat_0')"/>
|
||||
</function>
|
||||
<function model="link.tracker.click" name="add_click">
|
||||
<value model="link.tracker.code"
|
||||
search="[('link_id.url', '=', 'http://www.example.net/page/contactus')]"
|
||||
use="code"/>
|
||||
<value name="ip">100.01.02.03</value>
|
||||
<value name="country_code">BE</value>
|
||||
<value name="mailing_trace_id" eval="ref('mass_mail_1_stat_0')"/>
|
||||
</function>
|
||||
<function model="link.tracker.click" name="add_click">
|
||||
<value model="link.tracker.code"
|
||||
search="[('link_id.url', '=', 'http://www.example.com')]"
|
||||
use="code"/>
|
||||
<value name="ip">100.01.02.04</value>
|
||||
<value name="country_code">BE</value>
|
||||
<value name="mailing_trace_id" eval="ref('mass_mail_1_stat_1')"/>
|
||||
</function>
|
||||
<function model="link.tracker.click" name="add_click">
|
||||
<value model="link.tracker.code"
|
||||
search="[('link_id.url', '=', 'http://www.example.net/page/contactus')]"
|
||||
use="code"/>
|
||||
<value name="ip">100.01.02.04</value>
|
||||
<value name="country_code">BE</value>
|
||||
<value name="mailing_trace_id" eval="ref('mass_mail_1_stat_0')"/>
|
||||
</function>
|
||||
<function model="link.tracker.click" name="add_click">
|
||||
<value model="link.tracker.code"
|
||||
search="[('link_id.url', '=', 'http://www.example.com')]"
|
||||
use="code"/>
|
||||
<value name="ip">100.01.02.05</value>
|
||||
<value name="country_code">BE</value>
|
||||
<value name="mailing_trace_id" eval="ref('mass_mail_1_stat_2')"/>
|
||||
</function>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="mass_mailing_tour" model="web_tour.tour">
|
||||
<field name="name">mass_mailing_tour</field>
|
||||
<field name="sequence">200</field>
|
||||
<field name="rainbow_man_message"><![CDATA[
|
||||
Congratulations, I love your first mailing. :)
|
||||
]]></field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record model="res.groups.privilege" id="res_groups_privilege_email_marketing">
|
||||
<field name="name">Email Marketing</field>
|
||||
<field name="sequence">19</field>
|
||||
<field name="category_id" ref="base.module_category_marketing"/>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="base.default_user" model="res.users">
|
||||
<field name="groups_id" eval="[(4,ref('mass_mailing.group_mass_mailing_user'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue