[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:
committed by
Thibault Delavallée
parent
af601da9be
commit
b16ce3f89e
@@ -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
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user