From b16ce3f89e50aa8589e878bca8378f2dbac3f3f6 Mon Sep 17 00:00:00 2001 From: qmo-odoo Date: Fri, 20 Sep 2019 09:46:15 +0000 Subject: [PATCH] [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) --- addons/mass_mailing_sms/__manifest__.py | 1 + addons/mass_mailing_sms/models/__init__.py | 1 + addons/mass_mailing_sms/models/utm.py | 42 +++++++++++++ .../views/utm_campaign_views.xml | 60 +++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 addons/mass_mailing_sms/models/utm.py create mode 100644 addons/mass_mailing_sms/views/utm_campaign_views.xml diff --git a/addons/mass_mailing_sms/__manifest__.py b/addons/mass_mailing_sms/__manifest__.py index 865a60a717e..f3c1cb2bc89 100644 --- a/addons/mass_mailing_sms/__manifest__.py +++ b/addons/mass_mailing_sms/__manifest__.py @@ -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', diff --git a/addons/mass_mailing_sms/models/__init__.py b/addons/mass_mailing_sms/models/__init__.py index 5d4407a1729..50564ca912a 100644 --- a/addons/mass_mailing_sms/models/__init__.py +++ b/addons/mass_mailing_sms/models/__init__.py @@ -7,3 +7,4 @@ from . import mailing_list from . import mailing_mailing from . import mailing_trace from . import sms_sms +from . import utm diff --git a/addons/mass_mailing_sms/models/utm.py b/addons/mass_mailing_sms/models/utm.py new file mode 100644 index 00000000000..e75335ea1ea --- /dev/null +++ b/addons/mass_mailing_sms/models/utm.py @@ -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 diff --git a/addons/mass_mailing_sms/views/utm_campaign_views.xml b/addons/mass_mailing_sms/views/utm_campaign_views.xml new file mode 100644 index 00000000000..8657e3f81aa --- /dev/null +++ b/addons/mass_mailing_sms/views/utm_campaign_views.xml @@ -0,0 +1,60 @@ + + + + utm.campaign.view.form + utm.campaign + + + + + + + + + + + + + + + +