[IMP] mass_mailing_sms: add missing SMS information to UTM campaigns

This commit adds the concept of sms into the utm.campaign

  * Add "Send new sms" button to the cta
  * Add a SMS stat button
  * Add a sms page in the notebook

LINKS

Task ID 2074813 (FP request UTM refactor)

closes odoo/odoo#37185

Pr: #37185
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
qmo-odoo
2019-09-20 14:22:06 +00:00
committed by Thibault Delavallée
parent af601da9be
commit b16ce3f89e
4 changed files with 104 additions and 0 deletions
+1
View File
@@ -22,6 +22,7 @@
'views/mailing_mailing_views.xml',
'views/link_tracker_views.xml',
'views/mass_mailing_sms_templates_portal.xml',
'views/utm_campaign_views.xml',
'report/mailing_trace_report_views.xml',
'wizard/sms_composer_views.xml',
'wizard/mailing_sms_test_views.xml',
@@ -7,3 +7,4 @@ from . import mailing_list
from . import mailing_mailing
from . import mailing_trace
from . import sms_sms
from . import utm
+42
View File
@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class UtmCampaign(models.Model):
_inherit = 'utm.campaign'
mailing_sms_ids = fields.One2many(
'mailing.mailing', 'campaign_id',
domain=[('mailing_type', '=', 'sms')],
string='Mass SMS')
mailing_sms_count = fields.Integer('Number of Mass SMS', compute="_compute_mailing_sms_count")
@api.depends('mailing_sms_ids')
def _compute_mailing_sms_count(self):
for campaign in self:
campaign.mailing_sms_count = len(campaign.mailing_sms_ids)
def action_create_mass_sms(self):
action = self.env.ref('mass_mailing.action_create_mass_mailings_from_campaign').read()[0]
action['context'] = {
'default_campaign_id': self.id,
'default_mailing_type': 'sms',
'search_default_assigned_to_me': 1,
'search_default_campaign_id': self.id,
'default_user_id': self.env.user.id,
}
return action
def action_redirect_to_mailing_sms(self):
action = self.env.ref('mass_mailing.action_view_mass_mailings_from_campaign').read()[0]
action['context'] = {
'default_campaign_id': self.id,
'default_mailing_type': 'sms',
'search_default_assigned_to_me': 1,
'search_default_campaign_id': self.id,
'default_user_id': self.env.user.id,
}
action['domain'] = [('mailing_type', '=', 'sms')]
return action
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.ui.view" id="utm_campaign_view_form">
<field name="name">utm.campaign.view.form</field>
<field name="model">utm.campaign</field>
<field name="inherit_id" ref="utm.utm_campaign_view_form"/>
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<button name="action_create_mass_sms" type="object" class="oe_highlight" string="Send SMS"/>
</xpath>
<xpath expr="//div[hasclass('oe_button_box')]" position="inside">
<button name="action_redirect_to_mailing_sms"
type="object"
class="oe_stat_button order-11"
attrs="{'invisible': [('mailing_sms_count', '=', 0)]}"
icon="fa-mobile">
<field name="mailing_sms_count" widget="statinfo" string="SMS"/>
</button>
</xpath>
<xpath expr="//notebook" position="inside">
<page string="SMS" attrs="{'invisible': [('mailing_sms_count', '=', 0)]}">
<group>
<field name="mailing_sms_ids" readonly="1" nolabel="1">
<tree>
<field name="name"/>
<field name="sent_date"/>
<field name="state"/>
<field name="bounced"/>
<field name="delivered"/>
<button name="action_duplicate" type="object" string="Duplicate"/>
</tree>
</field>
</group>
</page>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="utm_campaign_view_kanban">
<field name="name">utm.campaign.view.kanban</field>
<field name="model">utm.campaign</field>
<field name="inherit_id" ref="utm.utm_campaign_view_kanban"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='user_id']" position="after">
<field name="mailing_sms_count"/>
</xpath>
<xpath expr="//div[hasclass('o_kanban_record_headings')]">
<a name="action_redirect_to_mailing_sms" type="object"
class="oe_mailings o_kanban_record_subtitle d-inline-block">
<t t-raw="record.mailing_sms_count.raw_value"/> SMS
</a>
</xpath>
</field>
</record>
<menuitem name="Campaigns" id="menu_email_campaigns"
parent="mass_mailing_sms_menu_root" sequence="5"
action="mass_mailing.action_view_utm_campaigns"
groups="mass_mailing.group_mass_mailing_campaign"/>
</odoo>