summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorryv-odoo <ryv@odoo.com>2019-09-05 15:21:33 +0000
committerryv-odoo <ryv@odoo.com>2019-09-12 14:53:44 +0000
commit8e2da3b4d6f88160041526676fd77a97256cd6e7 (patch)
tree3501a0838626c07a2c27ee7ba4d2ee831032ffb1 /addons
parente4afa5d6d0e97cfb1395407b0c0bd8388d81f544 (diff)
[IMP] (sms_)mass_mailing: improve interface
- Change the name of "Mass SMS" by "SMS Marketing" - Improve the Mass Mailing views (kanban, form) - Improve the Mass SMS views (kanban, search, form) - Hide the sanitized numbers from views (sometime replace by mobile) - Fix demo data of sms - Explain the language field of sms template - Improve the render of the sms composer wizard TASK_ID : 2053631
Diffstat (limited to 'addons')
-rw-r--r--addons/mass_mailing/views/mailing_mailing_views.xml96
-rw-r--r--addons/mass_mailing_sms/controllers/main.py2
-rw-r--r--addons/mass_mailing_sms/models/mailing_mailing.py2
-rw-r--r--addons/mass_mailing_sms/report/mailing_trace_report_views.xml6
-rw-r--r--addons/mass_mailing_sms/views/mailing_contact_views.xml26
-rw-r--r--addons/mass_mailing_sms/views/mailing_list_views.xml2
-rw-r--r--addons/mass_mailing_sms/views/mailing_mailing_views.xml64
-rw-r--r--addons/mass_mailing_sms/views/mailing_sms_menus.xml22
-rw-r--r--addons/mass_mailing_sms/wizard/mailing_sms_test.py2
-rw-r--r--addons/mass_mailing_sms/wizard/mailing_sms_test_views.xml8
-rw-r--r--addons/phone_validation/views/phone_blacklist_views.xml2
-rw-r--r--addons/sms/data/mail_demo.xml46
-rw-r--r--addons/sms/models/sms_template.py5
-rw-r--r--addons/sms/views/res_partner_views.xml2
-rw-r--r--addons/sms/views/sms_template_views.xml5
-rw-r--r--addons/sms/wizard/sms_composer_views.xml11
16 files changed, 157 insertions, 144 deletions
diff --git a/addons/mass_mailing/views/mailing_mailing_views.xml b/addons/mass_mailing/views/mailing_mailing_views.xml
index 96456cf2afa..6f5ac26adde 100644
--- a/addons/mass_mailing/views/mailing_mailing_views.xml
+++ b/addons/mass_mailing/views/mailing_mailing_views.xml
@@ -57,46 +57,40 @@
<field name="state" readonly="1" widget="statusbar"/>
</header>
<div class="alert alert-info text-center" attrs="{'invisible': [('ignored', '=', 0)]}" role="alert">
- <p>
- <button class="btn-link"
- name="action_view_traces_ignored"
- type="object">
- <strong>
- <field name="ignored" class="oe_inline mr-2"/>
- <span name="ignored_text">emails have been ignored and will not be sent.</span>
- </strong>
- </button>
- </p>
+ <button class="btn-link py-0"
+ name="action_view_traces_ignored"
+ type="object">
+ <strong>
+ <field name="ignored" class="oe_inline mr-2"/>
+ <span name="ignored_text">emails have been ignored and will not be sent.</span>
+ </strong>
+ </button>
</div>
<div class="alert alert-info text-center" attrs="{'invisible': [('scheduled', '=', 0)]}" role="alert">
- <p>
- <button class="btn-link"
- name="action_view_traces_scheduled"
- type="object">
- <strong>
- <field name="scheduled" class="oe_inline mr-2"/>
- <span name="scheduled_text">emails are in queue and will be sent soon.</span>
- </strong>
- </button>
- </p>
+ <button class="btn-link py-0"
+ name="action_view_traces_scheduled"
+ type="object">
+ <strong>
+ <field name="scheduled" class="oe_inline mr-2"/>
+ <span name="scheduled_text">emails are in queue and will be sent soon.</span>
+ </strong>
+ </button>
</div>
<div class="alert alert-info text-center" attrs="{'invisible': ['|', ('state', '!=', 'done'), ('failed', '=', 0)]}" role="alert">
- <p>
- <button class="btn-link"
- name="action_view_traces_failed"
- type="object">
- <strong>
- <field name="failed" class="oe_inline mr-2"/>
- <span name="failed_text">emails could not be sent.</span>
- </strong>
- </button>
- </p>
+ <button class="btn-link py-0"
+ name="action_view_traces_failed"
+ type="object">
+ <strong>
+ <field name="failed" class="oe_inline mr-2"/>
+ <span name="failed_text">emails could not be sent.</span>
+ </strong>
+ </button>
</div>
<div class="alert alert-info text-center" attrs="{'invisible': [('state', '!=', 'in_queue')]}" role="alert">
- <p><strong>
- This mailing is scheduled for
+ <strong>
+ <span name="next_departure_text">This mailing is scheduled for</span>
<field name="next_departure" class="oe_inline"/>.
- </strong></p>
+ </strong>
</div>
<sheet>
<div class="oe_button_box" name="button_box">
@@ -140,7 +134,7 @@
<widget name="web_ribbon" text="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<group>
<field name="active" invisible="1"/>
- <field name="name" required="1" string="Mailing Name"/>
+ <field name="name" required="1" string="Name"/>
<field name="mailing_type" widget="radio" options="{'horizontal': true}" invisible="1"
attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
<field name="subject" string="Subject" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
@@ -261,8 +255,11 @@
<field name='state' readonly="1"/>
<field name='email_from' readonly="1"/>
<field name='color'/>
+ <field name='user_id'/>
<field name='expected'/>
<field name='failed'/>
+ <field name='total'/>
+ <field name='mailing_model_id'/>
<field name='sent_date'/>
<field name='active'/>
<templates>
@@ -286,11 +283,14 @@
<div class="oe_kanban_content">
<div class="o_kanban_record_top">
<div class="o_kanban_record_headings">
- <h3 class="mt4 mb4"><field name="name"/></h3>
+ <h3 class="mt4 mb4">
+ <field name="name"/>
+ </h3>
<field name="mailing_type" invisible="1"/>
<div class="o_kanban_record_subtitle" attrs="{'invisible': [('sent_date', '=', False)]}">
- <h5 style="display: inline;"><field name="campaign_id" groups="mass_mailing.group_mass_mailing_campaign"/></h5>
- <t t-if="record.campaign_id.raw_value" groups="mass_mailing.group_mass_mailing_campaign"> - </t><field name="sent_date"/>
+ <h5 style="display: inline;">
+ <field name="campaign_id" groups="mass_mailing.group_mass_mailing_campaign"/>
+ </h5>
</div>
</div>
</div>
@@ -298,9 +298,7 @@
<t t-if="record.sent_date">
<div class="row" name="stat_opened">
<div class="col-8">
- <a name="%(action_view_mail_mail_statistics_mailing)d"
- context="{'search_default_filter_opened': True}"
- type="action">Opened</a>
+ Opened
</div>
<div class="col-4 text-right">
<field name="opened_ratio"/> %
@@ -308,9 +306,7 @@
</div>
<div class="row" name="stat_replied">
<div class="col-8">
- <a name="%(action_view_mail_mail_statistics_mailing)d"
- context="{'search_default_filter_replied': True}"
- type="action">Replied</a>
+ Replied
</div>
<div class="col-4 text-right">
<field name="replied_ratio"/> %
@@ -318,20 +314,26 @@
</div>
<div class="row" name="stat_clicks">
<div class="col-8">
- <a name="%(link_tracker_action_mass_mailing)d"
- type="action">Clicks</a>
+ Clicks
</div>
<div class="col-4 text-right">
<field name="clicks_ratio"/> %
</div>
</div>
- <div class='o_kanban_primary_bottom' name="stat_delivered">
+ <div class='mt-1' name="stat_delivered">
<field name="delivered" widget="progressbar" title="Delivered" options="{'current_value': 'delivered', 'max_value': 'expected', 'editable': false}"/>
</div>
</t>
</div>
</div>
- <div class="oe_clear"></div>
+ <div>
+ <span class="fa fa-clock-o text-muted mr-2" attrs="{'invisible': [('sent_date', '=', False)]}"/><field name="sent_date"/>
+ <img t-att-src="kanban_image('res.users', 'image_64', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" width="24" height="24" class="oe_kanban_avatar float-right"/>
+ </div>
+ <div name="div_total_model" class="oe_clear text-muted" style="display: inline;">
+ <field name='total'/>
+ <field name='mailing_model_id'/>
+ </div>
</div>
</t>
</templates>
diff --git a/addons/mass_mailing_sms/controllers/main.py b/addons/mass_mailing_sms/controllers/main.py
index 9f03af5c6d2..0fc9569641f 100644
--- a/addons/mass_mailing_sms/controllers/main.py
+++ b/addons/mass_mailing_sms/controllers/main.py
@@ -65,7 +65,7 @@ class MailingSMSController(http.Controller):
else:
blacklist_rec = request.env['phone.blacklist'].sudo().add(tocheck_number)
blacklist_rec._message_log(
- body=_('Blacklist through mass sms unsubscribe (mailing ID: %s - model: %s)') %
+ body=_('Blacklist through SMS Marketing unsubscribe (mailing ID: %s - model: %s)') %
(trace.mass_mailing_id.id, trace.mass_mailing_id.mailing_model_id.display_name))
lists_optin = request.env['mailing.contact.subscription'].sudo().search([
('contact_id.phone_sanitized', '=', tocheck_number),
diff --git a/addons/mass_mailing_sms/models/mailing_mailing.py b/addons/mass_mailing_sms/models/mailing_mailing.py
index 96e3eb4c8d1..374fac93c77 100644
--- a/addons/mass_mailing_sms/models/mailing_mailing.py
+++ b/addons/mass_mailing_sms/models/mailing_mailing.py
@@ -69,7 +69,7 @@ class Mailing(models.Model):
if self.mailing_type == 'sms':
ctx = dict(self.env.context, default_mailing_id=self.id)
return {
- 'name': _('Test Mailing'),
+ 'name': _('Test SMS marketing'),
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'mailing.sms.test',
diff --git a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml
index 2adf5953faf..565ccfc79e0 100644
--- a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml
+++ b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml
@@ -52,19 +52,19 @@
<!-- Actions and Menuitems -->
<record id="mailing_trace_report_action_sms" model="ir.actions.act_window">
- <field name="name">Mass SMS Analysis</field>
+ <field name="name">SMS Marketing Analysis</field>
<field name="res_model">mailing.trace.report</field>
<field name="view_mode">graph,pivot</field>
<field name="domain">[('mailing_type', '=', 'sms')]</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
- Mass SMS Statistics allows you to check different mailing related information like number of sent SMS or bounced SMS.
+ SMS Marketing Statistics allows you to check different mailing related information like number of sent SMS or bounced SMS.
You can sort out your analysis by different groups to get accurate grained analysis.
</p>
</field>
</record>
- <!-- Mass SMS / Reporting -->
+ <!-- SMS Marketing / Reporting -->
<record id="mass_mailing_sms_menu_reporting" model="ir.ui.menu">
<field name="action" ref="mailing_trace_report_action_sms"/>
</record>
diff --git a/addons/mass_mailing_sms/views/mailing_contact_views.xml b/addons/mass_mailing_sms/views/mailing_contact_views.xml
index 374191ec91f..eb2d7e57384 100644
--- a/addons/mass_mailing_sms/views/mailing_contact_views.xml
+++ b/addons/mass_mailing_sms/views/mailing_contact_views.xml
@@ -6,7 +6,8 @@
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_contact_search"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
- <field name="phone_sanitized"/>
+ <field name="mobile"/>
+ <field name="phone_sanitized" invisible="1"/>
</xpath>
<xpath expr="//filter[@name='filter_not_optout']" position="after">
<separator/>
@@ -31,7 +32,8 @@
<field name="create_date"/>
<field name="name"/>
<field name="company_name"/>
- <field name="phone_sanitized"/>
+ <field name="mobile"/>
+ <field name="phone_sanitized" invisible="1"/>
<field name="phone_blacklisted"/>
<field name="opt_out" invisible="'default_list_ids' not in context"/>
</tree>
@@ -43,18 +45,13 @@
<field name="model">mailing.contact</field>
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_contact_form"/>
<field name="arch" type="xml">
- <xpath expr="//label[@for='email']" position="attributes">
- <attribute name="invisible">context.get('mailing_sms') == True</attribute>
- </xpath>
- <xpath expr="//div[@name='email_details']" position="attributes">
- <attribute name="invisible">context.get('mailing_sms') == True</attribute>
- </xpath>
<xpath expr="//div[@name='email_details']" position="after">
- <label for="phone_sanitized" class="oe_inline"/>
+ <label for="mobile" class="oe_inline"/>
<div class="o_row o_row_readonly" name="phone_details">
- <i class="fa fa-ban" style="color: red;" role="img" title="This number is blacklisted for mass SMS"
+ <i class="fa fa-ban" style="color: red;" role="img" title="This number is blacklisted for SMS Marketing"
aria-label="Phone Blacklisted" attrs="{'invisible': [('phone_blacklisted', '=', False)]}" groups="base.group_user"></i>
- <field name="phone_sanitized" widget="phone"/>
+ <field name="mobile" widget="phone"/>
+ <field name="phone_sanitized" invisible="1"/>
<field name="phone_blacklisted" invisible="1"/>
</div>
</xpath>
@@ -67,10 +64,11 @@
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_contact_kanban"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='email']" position="after">
- <field name="phone_sanitized"/>
+ <field name="mobile"/>
+ <field name="phone_sanitized" invisible="1"/>
</xpath>
<xpath expr="//t[@t-esc='record.email.value']" position="after">
- <t t-esc="record.phone_sanitized.value"/>
+ <t t-esc="record.mobile.value"/>
</xpath>
</field>
</record>
@@ -88,7 +86,7 @@
</field>
</record>
- <!-- Mass SMS / Contacts Lists / Contacts Lists -->
+ <!-- SMS Marketing / Contacts Lists / Contacts Lists -->
<record id="mass_mailing_sms.mailing_contact_menu_sms" model="ir.ui.menu">
<field name="action" ref="mailing_contact_action_sms"/>
</record>
diff --git a/addons/mass_mailing_sms/views/mailing_list_views.xml b/addons/mass_mailing_sms/views/mailing_list_views.xml
index d1b88669078..de57e354b01 100644
--- a/addons/mass_mailing_sms/views/mailing_list_views.xml
+++ b/addons/mass_mailing_sms/views/mailing_list_views.xml
@@ -15,7 +15,7 @@
</field>
</record>
- <!-- Mass SMS / Contacts Lists / Contacts Lists -->
+ <!-- SMS Marketing / Contacts Lists / Contacts Lists -->
<record id="mass_mailing_sms.mailing_list_menu_sms" model="ir.ui.menu">
<field name="action" ref="mailing_list_action_sms"/>
</record>
diff --git a/addons/mass_mailing_sms/views/mailing_mailing_views.xml b/addons/mass_mailing_sms/views/mailing_mailing_views.xml
index 964af78e5f6..0b8d47637f1 100644
--- a/addons/mass_mailing_sms/views/mailing_mailing_views.xml
+++ b/addons/mass_mailing_sms/views/mailing_mailing_views.xml
@@ -1,6 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo><data>
- <record id="mailing_mailing_view_form" model="ir.ui.view">
+
+ <record model="ir.ui.view" id="mailing_mailing_view_search_sms">
+ <field name="name">mailing.mailing.search</field>
+ <field name="model">mailing.mailing</field>
+ <field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_search"/>
+ <field name="mode">primary</field>
+ <field name="arch" type="xml">
+ <xpath expr="//filter[@name='assigned_to_me']" position="attributes">
+ <attribute name="string">My SMS Marketing</attribute>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="mailing_mailing_view_form_sms" model="ir.ui.view">
<field name="name">mailing.mailing.view.form.inherit.sms</field>
<field name="model">mailing.mailing</field>
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_form"/>
@@ -19,15 +32,13 @@
<xpath expr="//header" position="after">
<field name="sms_has_insufficient_credit" invisible="1"/>
<div class="alert alert-warning text-center" attrs="{'invisible': [('sms_has_insufficient_credit', '=', False)]}" role="alert">
- <p>
- <button class="btn-link"
- name="action_buy_sms_credits"
- type="object">
- <strong>
- It appears you don't have enough IAP credits. Click here to buy credits.
- </strong>
- </button>
- </p>
+ <button class="btn-link py-0"
+ name="action_buy_sms_credits"
+ type="object">
+ <strong>
+ It appears you don't have enough IAP credits. Click here to buy credits.
+ </strong>
+ </button>
</div>
</xpath>
<xpath expr="//span[@name='ignored_text']" position="attributes">
@@ -48,6 +59,12 @@
<xpath expr="//span[@name='failed_text']" position="after">
<span name="failed_text_sms" attrs="{'invisible': [('mailing_type', '!=', 'sms')]}">SMS Text Message could not be sent.</span>
</xpath>
+ <xpath expr="//span[@name='next_departure_text']" position='attributes'>
+ <attribute name="attrs">{'invisible': [('mailing_type', '!=', 'mail')]}</attribute>
+ </xpath>
+ <xpath expr="//span[@name='next_departure_text']" position='after'>
+ <span name="next_departure_text" attrs="{'invisible': [('mailing_type', '!=', 'sms')]}">This SMS marketing is scheduled for</span>
+ </xpath>
<!-- Stat Buttons -->
<xpath expr="//button[@id='button_view_sent']" position="attributes">
<attribute name="attrs">{'invisible': ['|', '&amp;', ('sent', '=', 0), ('state', 'in', ('draft', 'test')), ('mailing_type', '!=', 'mail')]}</attribute>
@@ -81,7 +98,6 @@
<page string="SMS Content" name="sms_body" attrs="{'invisible': [('mailing_type', '!=', 'sms')]}">
<field name="body_plaintext" widget="sms_widget"/>
<group>
- <field name="sms_template_id" domain="[('model', '=', mailing_model_real)]"/>
<field name="sms_allow_unsubscribe"/>
</group>
</page>
@@ -114,7 +130,7 @@
</field>
</record>
- <record id="mailing_mailing_view_kanban" model="ir.ui.view">
+ <record id="mailing_mailing_view_kanban_sms" model="ir.ui.view">
<field name="name">mailing.mailing.view.kanban.inherit.sms</field>
<field name="model">mailing.mailing</field>
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_kanban"/>
@@ -122,18 +138,17 @@
<xpath expr="//field[@name='active']" position="after">
<field name="sms_has_insufficient_credit"/>
</xpath>
- <xpath expr="//h3" position="after">
- <div class="alert alert-warning" role="alert" attrs="{'invisible': [('sms_has_insufficient_credit', '=', False)]}">
- <a name="action_buy_sms_credits"
- type="object">Insufficient credits</a>
- </div>
- </xpath>
<xpath expr="//div[@name='stat_opened']" position="attributes">
<attribute name="attrs">{'invisible': [('mailing_type', '!=', 'mail')]}</attribute>
</xpath>
<xpath expr="//div[@name='stat_replied']" position="attributes">
<attribute name="attrs">{'invisible': [('mailing_type', '!=', 'mail')]}</attribute>
- </xpath>
+ </xpath>
+ <xpath expr="//div[@name='div_total_model']" position="after">
+ <div class="alert alert-warning" role="alert" attrs="{'invisible': ['&amp;',('sms_has_insufficient_credit', '=', False), ('mailing_type', '!=', 'mail')]}">
+ <a name="action_buy_sms_credits" type="object">Insufficient credits</a>
+ </div>
+ </xpath>
</field>
</record>
@@ -142,7 +157,7 @@
<field name="model">mailing.mailing</field>
<field name="priority">20</field>
<field name="arch" type="xml">
- <tree string="Mass SMS">
+ <tree string="SMS Marketing">
<field name="name"/>
<field name="mailing_type" invisible="1"/>
<field name="sent"/>
@@ -154,9 +169,10 @@
</record>
<record id="mailing_mailing_action_sms" model="ir.actions.act_window">
- <field name="name">Mass SMS</field>
+ <field name="name">SMS Marketing</field>
<field name="res_model">mailing.mailing</field>
<field name="view_mode">kanban,tree,form,graph</field>
+ <field name="search_view_id" ref="mailing_mailing_view_search_sms"/>
<field name="domain">[('mailing_type', '=', 'sms')]</field>
<field name="context">{
'search_default_assigned_to_me': 1,
@@ -165,7 +181,7 @@
}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
- Create a new mass SMS
+ Create a new SMS Marketing
</p><p>
You can easily send SMS to any contact saved in other Odoo apps.
</p>
@@ -174,7 +190,7 @@
<record id="mailing_mailing_action_sms_view_kanban" model="ir.actions.act_window.view">
<field name="sequence">1</field>
<field name="view_mode">kanban</field>
- <field name="view_id" ref="mass_mailing.view_mail_mass_mailing_kanban"/>
+ <field name="view_id" ref="mailing_mailing_view_kanban_sms"/>
<field name="act_window_id" ref="mailing_mailing_action_sms"/>
</record>
<record id="mailing_mailing_action_sms_view_tree" model="ir.actions.act_window.view">
@@ -184,7 +200,7 @@
<field name="act_window_id" ref="mailing_mailing_action_sms"/>
</record>
- <!-- Mass SMS / Mass SMS -->
+ <!-- SMS Marketing / SMS Marketing -->
<record id="mass_mailing_sms_menu_mass_sms" model="ir.ui.menu">
<field name="action" ref="mailing_mailing_action_sms"/>
</record>
diff --git a/addons/mass_mailing_sms/views/mailing_sms_menus.xml b/addons/mass_mailing_sms/views/mailing_sms_menus.xml
index f7cc0f05edb..f009c9df330 100644
--- a/addons/mass_mailing_sms/views/mailing_sms_menus.xml
+++ b/addons/mass_mailing_sms/views/mailing_sms_menus.xml
@@ -1,59 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
- <!-- Mass SMS -->
+ <!-- SMS Marketing -->
<menuitem id="mass_mailing_sms_menu_root"
- name="Mass SMS"
+ name="SMS Marketing"
sequence="60"
web_icon="mass_mailing_sms,static/description/icon.png"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Mass SMS -->
+ <!-- SMS Marketing / SMS Marketing -->
<menuitem id="mass_mailing_sms_menu_mass_sms"
- name="Mass SMS"
+ name="SMS Marketing"
parent="mass_mailing_sms_menu_root"
sequence="1"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Contacts Lists -->
+ <!-- SMS Marketing / Contacts Lists -->
<menuitem id="mass_mailing_sms_menu_contacts"
name="Contacts Lists"
parent="mass_mailing_sms_menu_root"
sequence="2"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Contacts Lists / Contacts Lists -->
+ <!-- SMS Marketing / Contacts Lists / Contacts Lists -->
<menuitem id="mailing_list_menu_sms"
name="Contacts Lists"
parent="mass_mailing_sms_menu_contacts"
sequence="1"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Contacts Lists / Contacts -->
+ <!-- SMS Marketing / Contacts Lists / Contacts -->
<menuitem id="mailing_contact_menu_sms"
name="Contacts"
parent="mass_mailing_sms_menu_contacts"
sequence="2"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Reporting -->
+ <!-- SMS Marketing / Reporting -->
<menuitem id="mass_mailing_sms_menu_reporting"
name="Reporting"
parent="mass_mailing_sms_menu_root"
sequence="80"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Configuration -->
+ <!-- SMS Marketing / Configuration -->
<menuitem id="mass_mailing_sms_menu_configuration"
name="Configuration"
parent="mass_mailing_sms_menu_root"
sequence="100"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Configuration / Blacklist -->
+ <!-- SMS Marketing / Configuration / Blacklist -->
<menuitem id="phone_blacklist_menu"
name="Phone Blacklist"
parent="mass_mailing_sms_menu_configuration"
sequence="1"
action="phone_validation.phone_blacklist_action"
groups="mass_mailing.group_mass_mailing_user"/>
- <!-- Mass SMS / Configuration / Link Tracker -->
+ <!-- SMS Marketing / Configuration / Link Tracker -->
<menuitem id="link_tracker_menu"
name="Link Tracker Blacklist"
parent="mass_mailing_sms_menu_configuration"
diff --git a/addons/mass_mailing_sms/wizard/mailing_sms_test.py b/addons/mass_mailing_sms/wizard/mailing_sms_test.py
index 72552715b59..bfdc3c02a70 100644
--- a/addons/mass_mailing_sms/wizard/mailing_sms_test.py
+++ b/addons/mass_mailing_sms/wizard/mailing_sms_test.py
@@ -25,7 +25,7 @@ class MassSMSTest(models.TransientModel):
sanitized_numbers = [info['sanitized'] for info in sanitize_res.values() if info['sanitized']]
invalid_numbers = [number for number, info in sanitize_res.items() if info['code']]
if invalid_numbers:
- raise exceptions.UserError(_('Following numbers are not correctly encoded: %s') % repr(invalid_numbers))
+ raise exceptions.UserError(_('Following numbers are not correctly encoded: %s, example : "+32 495 85 85 77, +33 545 55 55 55"') % repr(invalid_numbers))
self.sanitized_numbers = ','.join(sanitized_numbers)
else:
self.sanitized_numbers = False
diff --git a/addons/mass_mailing_sms/wizard/mailing_sms_test_views.xml b/addons/mass_mailing_sms/wizard/mailing_sms_test_views.xml
index 97ed90df4e5..8224f8ae1fb 100644
--- a/addons/mass_mailing_sms/wizard/mailing_sms_test_views.xml
+++ b/addons/mass_mailing_sms/wizard/mailing_sms_test_views.xml
@@ -6,11 +6,11 @@
<field name="arch" type="xml">
<form string="Send a Sample SMS">
<p class="text-muted">
- Send a sample SMS for testing purpose to the numbers below.
+ Send a sample SMS for testing purpose to the numbers below (comma-separated list).
</p>
<group>
- <field name="numbers"/>
- <field name="sanitized_numbers" invisible="0"/>
+ <field name="numbers" placeholder="+32 495 85 85 77, +33 545 55 55 55"/>
+ <field name="sanitized_numbers" invisible="1"/>
<field name="mailing_id" invisible="1"/>
</group>
<footer>
@@ -22,7 +22,7 @@
</record>
<record id="mailing_sms_test_action" model="ir.actions.act_window">
- <field name="name">Test SMS Mailing</field>
+ <field name="name">Test SMS Marketing</field>
<field name="res_model">mailing.sms.test</field>
<field name="view_mode">form</field>
<field name="target">new</field>
diff --git a/addons/phone_validation/views/phone_blacklist_views.xml b/addons/phone_validation/views/phone_blacklist_views.xml
index 4d76576cefa..d0b3b47eb04 100644
--- a/addons/phone_validation/views/phone_blacklist_views.xml
+++ b/addons/phone_validation/views/phone_blacklist_views.xml
@@ -52,7 +52,7 @@
<p class="o_view_nocontent_smiling_face">
Add a phone number in the blacklist
</p><p>
- Blacklisted phone numbers means that the recipient won't receive mass SMS anymore.
+ Blacklisted phone numbers means that the recipient won't receive SMS Marketing anymore.
</p>
</field>
</record>
diff --git a/addons/sms/data/mail_demo.xml b/addons/sms/data/mail_demo.xml
index 103a89fbd8c..8086bef21fe 100644
--- a/addons/sms/data/mail_demo.xml
+++ b/addons/sms/data/mail_demo.xml
@@ -18,20 +18,20 @@
<field name="author_id" ref="base.partner_admin"/>
<field name="date" eval="(DateTime.today() - timedelta(days=4)).strftime('%Y-%m-%d %H:%M:00')"/>
</record>
- <record id="message_demo_partner_1_2_notif_0" model="mail.notification">
- <field name="mail_message_id" ref="message_demo_partner_1_1"/>
- <field name="res_partner_id" ref="base.res_partner_address_28"/>
- <field name="notification_type">email</field>
- <field name="notification_status">exception</field>
- <field name="failure_type">SMTP</field>
- </record>
+ <record id="message_demo_partner_1_2_notif_0" model="mail.notification">
+ <field name="mail_message_id" ref="message_demo_partner_1_1"/>
+ <field name="res_partner_id" ref="base.res_partner_address_28"/>
+ <field name="notification_type">email</field>
+ <field name="notification_status">exception</field>
+ <field name="failure_type">SMTP</field>
+ </record>
<record id="message_demo_partner_1_2" model="mail.message">
<field name="model">res.partner</field>
<field name="res_id" ref="base.res_partner_address_28"/>
<field name="body" type="html"><p>Hello! This is an example of SMS.</p></field>
<field name="message_type">sms</field>
- <field name="subtype_id" ref="mail.mt_comment"/>
+ <field name="subtype_id" ref="mail.mt_note"/>
<field name="author_id" ref="base.partner_demo"/>
<field name="date" eval="(DateTime.today() - timedelta(days=3)).strftime('%Y-%m-%d %H:%M:00')"/>
</record>
@@ -40,23 +40,23 @@
<field name="res_id" ref="base.res_partner_address_28"/>
<field name="body" type="html"><p>Hello! This is an example of another SMS with notifications.</p></field>
<field name="message_type">sms</field>
- <field name="subtype_id" ref="mail.mt_comment"/>
+ <field name="subtype_id" ref="mail.mt_note"/>
<field name="author_id" ref="base.partner_admin"/>
<field name="date" eval="(DateTime.today() - timedelta(days=2)).strftime('%Y-%m-%d %H:%M:00')"/>
</record>
- <record id="message_demo_partner_1_3_notif_0" model="mail.notification">
- <field name="mail_message_id" ref="message_demo_partner_1_3"/>
- <field name="res_partner_id" ref="base.res_partner_address_28"/>
- <field name="notification_type">sms</field>
- <field name="notification_status">exception</field>
- <field name="failure_type">sms_credit</field>
- </record>
- <record id="message_demo_partner_1_3_notif_1" model="mail.notification">
- <field name="mail_message_id" ref="message_demo_partner_1_3"/>
- <field name="res_partner_id" ref="base.res_partner_address_16"/>
- <field name="notification_type">sms</field>
- <field name="notification_status">exception</field>
- <field name="failure_type">sms_credit</field>
- </record>
+ <record id="message_demo_partner_1_3_notif_0" model="mail.notification">
+ <field name="mail_message_id" ref="message_demo_partner_1_3"/>
+ <field name="res_partner_id" ref="base.res_partner_address_28"/>
+ <field name="notification_type">sms</field>
+ <field name="notification_status">exception</field>
+ <field name="failure_type">sms_credit</field>
+ </record>
+ <record id="message_demo_partner_1_3_notif_1" model="mail.notification">
+ <field name="mail_message_id" ref="message_demo_partner_1_3"/>
+ <field name="res_partner_id" ref="base.res_partner_address_16"/>
+ <field name="notification_type">sms</field>
+ <field name="notification_status">exception</field>
+ <field name="failure_type">sms_credit</field>
+ </record>
</data></odoo>
diff --git a/addons/sms/models/sms_template.py b/addons/sms/models/sms_template.py
index 3d5c229458d..e1ba74d3bb1 100644
--- a/addons/sms/models/sms_template.py
+++ b/addons/sms/models/sms_template.py
@@ -23,7 +23,10 @@ class SMSTemplate(models.Model):
help="The type of document this template can be used with")
model = fields.Char('Related Document Model', related='model_id.model', index=True, store=True, readonly=True)
body = fields.Char('Body', translate=True, required=True)
- lang = fields.Char('Language', placeholder="${object.partner_id.lang}")
+ lang = fields.Char('Language', help="Use this field to either force a specific language (ISO code) or dynamically "
+ "detect the language of your recipient by a placeholder expression "
+ "(e.g. ${object.partner_id.lang})")
+ # Use to create contextual action (same as for email template)
sidebar_action_id = fields.Many2one('ir.actions.act_window', 'Sidebar action', readonly=True, copy=False,
help="Sidebar action to make this template available on records "
"of the related document model")
diff --git a/addons/sms/views/res_partner_views.xml b/addons/sms/views/res_partner_views.xml
index 455571be093..91c6b77c9b2 100644
--- a/addons/sms/views/res_partner_views.xml
+++ b/addons/sms/views/res_partner_views.xml
@@ -9,7 +9,7 @@
<field name="priority">10</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='mobile']" position="after">
- <field name="phone_sanitized" groups="base.group_no_one"/>
+ <field name="phone_sanitized" groups="base.group_no_one" invisible="1"/>
</xpath>
<xpath expr="//field[@name='phone']" position="replace">
<label for="phone"/>
diff --git a/addons/sms/views/sms_template_views.xml b/addons/sms/views/sms_template_views.xml
index 5672e37d9c8..28d76d30e13 100644
--- a/addons/sms/views/sms_template_views.xml
+++ b/addons/sms/views/sms_template_views.xml
@@ -36,7 +36,7 @@
<group>
<field name="model_id" required="1" options="{'no_create': True}"/>
<field name="model" invisible="1"/>
- <field name="lang"/>
+ <field name="lang" groups="base.group_no_one" placeholder="e.g. en_US or ${object.partner_id.lang}"/>
</group>
</div>
<notebook>
@@ -97,5 +97,4 @@
sequence="2"
action="sms_template_action"/>
-</data>
-</odoo>
+</data></odoo>
diff --git a/addons/sms/wizard/sms_composer_views.xml b/addons/sms/wizard/sms_composer_views.xml
index abaa3e7af09..1cb59d99dd3 100644
--- a/addons/sms/wizard/sms_composer_views.xml
+++ b/addons/sms/wizard/sms_composer_views.xml
@@ -21,9 +21,9 @@
<!-- Mass mode information (res_ids versus active domain) -->
<div colspan="2" class="alert alert-info text-center mb-3" role="alert"
attrs="{'invisible': [('composition_mode', '=', 'comment')]}">
- <p>
+ <p class="my-0">
<span attrs="{'invisible': [('use_active_domain', '=', 'True')]}">
- <field class="oe_inline font-weight-bold" name="res_ids_count"/> visible records selected.
+ <field class="oe_inline font-weight-bold" name="res_ids_count"/> records selected.
</span>
Check <field class="oe_inline ml-2" name="use_active_domain"/> to send to all
<field class="oe_inline font-weight-bold ml-2" name="active_domain_count"/> records instead. <br/>
@@ -31,16 +31,11 @@
and <field class="oe_inline font-weight-bold" name="recipient_invalid_count"/> are invalid.
</p>
</div>
- <field name="template_id" options="{'no_create': True}" attrs="{'invisible': [('composition_mode', '!=', 'mass')]}"/>
<field name="recipient_description" string="Recipients"
readonly="1"
attrs="{'invisible': [('composition_mode', '!=', 'comment')]}"/>
<field name="body" widget="sms_widget"/>
- </group>
- <group>
- <group>
- <field name="mass_keep_log" invisible="1"/>
- </group>
+ <field name="mass_keep_log" invisible="1"/>
</group>
</sheet>
<footer>