summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/mass_mailing/report/mailing_trace_report_views.xml11
-rw-r--r--addons/mass_mailing_sms/report/mailing_trace_report_views.xml42
-rw-r--r--addons/mass_mailing_sms/views/mailing_mailing_views.xml3
-rw-r--r--addons/sms/i18n/sms.pot12
-rw-r--r--addons/sms/static/src/js/fields_sms_widget.js13
-rw-r--r--addons/sms/wizard/sms_composer_views.xml2
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js9
7 files changed, 86 insertions, 6 deletions
diff --git a/addons/mass_mailing/report/mailing_trace_report_views.xml b/addons/mass_mailing/report/mailing_trace_report_views.xml
index 8b309b7936e..51c70d9baee 100644
--- a/addons/mass_mailing/report/mailing_trace_report_views.xml
+++ b/addons/mass_mailing/report/mailing_trace_report_views.xml
@@ -5,12 +5,12 @@
<field name="model">mailing.trace.report</field>
<field name="arch" type="xml">
<pivot string="Mass Mailing Statistics" disable_linking="True" sample="1">
- <field name="campaign" type="row"/>
+ <field name="name" type="row"/>
<field name="sent" type="measure"/>
<field name="delivered" type="measure"/>
<field name="opened" type="measure"/>
<field name="bounced" type="measure"/>
- <field name="replied" type="measure"/>
+ <field name="replied" type="measure" invisible="0"/>
<field name="clicked" type="measure"/>
</pivot>
</field>
@@ -21,8 +21,9 @@
<field name="model">mailing.trace.report</field>
<field name="arch" type="xml">
<graph string="Mass Mailing Statistics" sample="1" disable_linking="1">
- <field name="campaign"/>
+ <field name="name"/>
<field name="sent" type="measure"/>
+ <field name="replied" invisible="0"/>
</graph>
</field>
</record>
@@ -39,8 +40,8 @@
<field name="scheduled_date"/>
</group>
<group expand="1" string="Group By...">
- <filter string="Mass Mailing Campaign" name="mass_mailing_campaign"
- domain="[]" context="{'group_by':'campaign'}"/>
+ <filter string="Mass Mailing Campaign" domain="[]" name="mass_mailing_campaign"
+ context="{'group_by':'campaign'}" groups="mass_mailing.group_mass_mailing_campaign"/>
<filter string="State" domain="[]" name="state"
context="{'group_by':'state'}"/>
<filter string="Sent By" domain="[]" name="sent_by"
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 a3a56aa25e2..84684aca456 100644
--- a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml
+++ b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml
@@ -1,5 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
+ <record id="mailing_trace_report_sms_view_pivot" model="ir.ui.view">
+ <field name="name">mailing.sms.trace.report.view.pivot</field>
+ <field name="model">mailing.trace.report</field>
+ <field name="inherit_id" ref="mass_mailing.mailing_trace_report_view_pivot"/>
+ <field name="priority" eval="50"/>
+ <field name="mode">primary</field>
+ <field name="type">pivot</field>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='replied']" position="attributes">
+ <attribute name="invisible">1</attribute>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="mailing_trace_report_sms_view_graph" model="ir.ui.view">
+ <field name="name">mailing.sms.trace.report.view.graph</field>
+ <field name="model">mailing.trace.report</field>
+ <field name="inherit_id" ref="mass_mailing.mailing_trace_report_view_graph"/>
+ <field name="priority" eval="50"/>
+ <field name="mode">primary</field>
+ <field name="type">graph</field>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='replied']" position="attributes">
+ <attribute name="invisible">1</attribute>
+ </xpath>
+ </field>
+ </record>
+
<!-- Actions and Menuitems -->
<record id="mailing_trace_report_action_sms" model="ir.actions.act_window">
<field name="name">SMS Marketing Analysis</field>
@@ -14,6 +42,20 @@
</field>
</record>
+ <record id="mailing_trace_report_action_sms_view_graph" model="ir.actions.act_window.view">
+ <field name="sequence">0</field>
+ <field name="view_mode">graph</field>
+ <field name="act_window_id" ref="mailing_trace_report_action_sms"/>
+ <field name="view_id" ref="mailing_trace_report_sms_view_graph"/>
+ </record>
+
+ <record id="mailing_trace_report_action_sms_view_pivot" model="ir.actions.act_window.view">
+ <field name="sequence">1</field>
+ <field name="view_mode">pivot</field>
+ <field name="act_window_id" ref="mailing_trace_report_action_sms"/>
+ <field name="view_id" ref="mailing_trace_report_sms_view_pivot"/>
+ </record>
+
<!-- SMS Marketing / Reporting -->
<record id="mass_mailing_sms_menu_reporting" model="ir.ui.menu">
<field name="action" ref="mailing_trace_report_action_sms"/>
diff --git a/addons/mass_mailing_sms/views/mailing_mailing_views.xml b/addons/mass_mailing_sms/views/mailing_mailing_views.xml
index 570198797b9..c919400d1db 100644
--- a/addons/mass_mailing_sms/views/mailing_mailing_views.xml
+++ b/addons/mass_mailing_sms/views/mailing_mailing_views.xml
@@ -102,6 +102,9 @@
<xpath expr="//field[@name='subject']" position="after">
<field name="sms_subject" string="Title" attrs="{'invisible': [('mailing_type', '!=', 'sms')], 'readonly': [('state', 'in', ('sending', 'done'))], 'required': [('mailing_type', '=', 'sms')]}"/>
</xpath>
+ <xpath expr="//field[@name='preview']" position="attributes">
+ <attribute name="attrs">{'readonly': [('state', 'in', ('sending', 'done'))], 'invisible': [('mailing_type', '!=', 'mail')]}</attribute>
+ </xpath>
<xpath expr="//page[@name='mail_body']" position="attributes">
<attribute name="attrs">{'invisible': [('mailing_type', '!=', 'mail')]}</attribute>
</xpath>
diff --git a/addons/sms/i18n/sms.pot b/addons/sms/i18n/sms.pot
index 1277631618f..0ce2c1f3c62 100644
--- a/addons/sms/i18n/sms.pot
+++ b/addons/sms/i18n/sms.pot
@@ -1246,11 +1246,23 @@ msgid "You do not have access to the message and/or related document."
msgstr ""
#. module: sms
+#. openerp-web
+#: code:addons/sms/static/src/js/fields_sms_widget.js:0
+#, python-format
+msgid "Your SMS Text Message must include at least one non-whitespace character"
+msgstr ""
+
+#. module: sms
#: model_terms:ir.ui.view,arch_db:sms.sms_composer_view_form
msgid "are invalid."
msgstr ""
#. module: sms
+#: model_terms:ir.ui.view,arch_db:sms.sms_composer_view_form
+msgid "e.g. +1 415 555 0100"
+msgstr ""
+
+#. module: sms
#: model_terms:ir.ui.view,arch_db:sms.sms_template_view_form
msgid "e.g. en_US or ${object.partner_id.lang}"
msgstr ""
diff --git a/addons/sms/static/src/js/fields_sms_widget.js b/addons/sms/static/src/js/fields_sms_widget.js
index d438f6c90bc..5a52d68e4ba 100644
--- a/addons/sms/static/src/js/fields_sms_widget.js
+++ b/addons/sms/static/src/js/fields_sms_widget.js
@@ -151,6 +151,19 @@ var SmsWidget = FieldTextEmojis.extend({
* @override
* @private
*/
+ _onBlur: function () {
+ var content = this._getValue();
+ if( !content.trim().length && content.length > 0) {
+ this.do_warn(_t("Your SMS Text Message must include at least one non-whitespace character"));
+ this.$input.val(content.trim());
+ this._updateSMSInfo();
+ }
+ },
+
+ /**
+ * @override
+ * @private
+ */
_onChange: function () {
this._super.apply(this, arguments);
this._updateSMSInfo();
diff --git a/addons/sms/wizard/sms_composer_views.xml b/addons/sms/wizard/sms_composer_views.xml
index b1be27ca32b..3ef5820bb8a 100644
--- a/addons/sms/wizard/sms_composer_views.xml
+++ b/addons/sms/wizard/sms_composer_views.xml
@@ -45,7 +45,7 @@
attrs="{'invisible': [('comment_single_recipient', '=', False)]}"/>
<div attrs="{'invisible': [('comment_single_recipient', '=', False)]}">
<field name="recipient_single_description" class="oe_inline"/>
- <field name="recipient_single_number_itf" class="oe_inline" nolabel="1" options="{'onchange_on_keydown': True}"/>
+ <field name="recipient_single_number_itf" class="oe_inline" nolabel="1" options="{'onchange_on_keydown': True}" placeholder="e.g. +1 415 555 0100"/>
</div>
<field name="body" widget="sms_widget"/>
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index 181e4b1efd8..0ca1e27de4e 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -160,6 +160,14 @@ var DebouncedField = AbstractField.extend({
* @returns {*}
*/
_getValue: function () {},
+ /**
+ * Should make an action on lost focus.
+ *
+ * @abstract
+ * @private
+ * @returns {*}
+ */
+ _onBlur: function () {},
});
var InputField = DebouncedField.extend({
@@ -169,6 +177,7 @@ var InputField = DebouncedField.extend({
events: _.extend({}, DebouncedField.prototype.events, {
'input': '_onInput',
'change': '_onChange',
+ 'blur' : '_onBlur',
}),
/**