diff options
| author | Yannick Tivisse <yti@odoo.com> | 2015-11-25 13:10:15 +0100 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2015-11-26 12:59:28 +0100 |
| commit | 731356a1558f49a0f1cca285cf73364dc9b56ebb (patch) | |
| tree | fc268f0996ae7685ba20d64df183aaaddaac9313 | |
| parent | 3560cf04eee4dde7683218428fc8211bb1365633 (diff) | |
[FIX] crm,mass_mailing: remove some utm.mixin, clean mass_mailing model
- Remove _inherit = ['utm.mixin'] on some reports and models. It make no sense
to set campaign_id, source_id or medium_id on reports according to the
cookies.
- Add an inheritS on the source_id in the mass_mailing model. Naturally, the
source_id name is the mass_mailing name.
- The medium is hardcoded as beeing 'Email', which is rather easy to understand
- Remove the 'Tracking' tab on the mass_mailing view.
We do not want to set the medium,campaign or the source automatically
from the cookies on reports, or on mass_mailing creation.
| -rw-r--r-- | addons/crm/report/crm_opportunity_report.py | 4 | ||||
| -rw-r--r-- | addons/mass_mailing/models/mass_mailing.py | 20 | ||||
| -rw-r--r-- | addons/mass_mailing/models/mass_mailing_report.py | 9 | ||||
| -rw-r--r-- | addons/mass_mailing/views/mass_mailing.xml | 12 | ||||
| -rw-r--r-- | addons/sale_crm/__init__.py | 1 | ||||
| -rw-r--r-- | addons/sale_crm/account_invoice.py | 8 |
6 files changed, 36 insertions, 18 deletions
diff --git a/addons/crm/report/crm_opportunity_report.py b/addons/crm/report/crm_opportunity_report.py index c690e79799d..e0c758cba16 100644 --- a/addons/crm/report/crm_opportunity_report.py +++ b/addons/crm/report/crm_opportunity_report.py @@ -12,7 +12,6 @@ class crm_opportunity_report(osv.Model): _auto = False _description = "CRM Opportunity Analysis" _rec_name = 'date_deadline' - _inherit = ["utm.mixin"] _columns = { 'date_deadline': fields.date('Expected Closing', readonly=True), @@ -46,6 +45,9 @@ class crm_opportunity_report(osv.Model): ],'Type', help="Type is used to separate Leads and Opportunities"), 'lost_reason': fields.many2one('crm.lost.reason', 'Lost Reason', readonly=True), 'date_conversion': fields.datetime('Conversion Date', readonly=True), + 'campaign_id': fields.many2one('utm.campaign', 'Campaign', readonly=True), + 'source_id':fields.many2one('utm.source', 'Source', readonly=True), + 'medium_id': fields.many2one('utm.medium', 'Medium', readonly=True), } def init(self, cr): diff --git a/addons/mass_mailing/models/mass_mailing.py b/addons/mass_mailing/models/mass_mailing.py index 4d63676719f..f19b98da6cf 100644 --- a/addons/mass_mailing/models/mass_mailing.py +++ b/addons/mass_mailing/models/mass_mailing.py @@ -170,7 +170,6 @@ class MassMailingCampaign(osv.Model): _name = "mail.mass_mailing.campaign" _description = 'Mass Mailing Campaign' _rec_name = "campaign_id" - _inherit = ['utm.mixin'] _inherits = {'utm.campaign': 'campaign_id'} def _get_statistics(self, cr, uid, ids, name, arg, context=None): @@ -235,7 +234,12 @@ class MassMailingCampaign(osv.Model): required=True, ), 'campaign_id': fields.many2one('utm.campaign', 'campaign_id', - required=True, ondelete='cascade'), + required=True, ondelete='cascade', + help="This name helps you tracking your different campaign efforts, e.g. Fall_Drive, Christmas_Special"), + 'source_id':fields.many2one('utm.source', 'Source', + help="This is the link source, e.g. Search Engine, another domain,or name of email list"), + 'medium_id': fields.many2one('utm.medium', 'Medium', + help="This is the delivery method, e.g. Postcard, Email, or Banner Ad"), 'tag_ids': fields.many2many( 'mail.mass_mailing.tag', 'mail_mass_mailing_tag_rel', 'tag_id', 'campaign_id', string='Tags'), @@ -377,8 +381,8 @@ class MassMailing(osv.Model): _period_number = 6 _order = 'sent_date DESC' # _send_trigger = 5 # Number under which mails are send directly - - _inherit = ['utm.mixin'] + _inherits = {'utm.source': 'source_id'} + _rec_name = "source_id" def _get_statistics(self, cr, uid, ids, name, arg, context=None): """ Compute statistics of the mass mailing """ @@ -466,7 +470,6 @@ class MassMailing(osv.Model): _mailing_model = lambda self, *args, **kwargs: self._get_mailing_model(*args, **kwargs) _columns = { - 'name': fields.char('Subject', required=True), 'active': fields.boolean('Active'), 'email_from': fields.char('From', required=True), 'create_date': fields.datetime('Creation Date'), @@ -482,6 +485,12 @@ class MassMailing(osv.Model): 'mail.mass_mailing.campaign', 'Mass Mailing Campaign', ondelete='set null', ), + 'campaign_id': fields.many2one('utm.campaign', 'Campaign', + help="This name helps you tracking your different campaign efforts, e.g. Fall_Drive, Christmas_Special"), + 'source_id':fields.many2one('utm.source', 'Subject', required=True, ondelete='cascade', + help="This is the link source, e.g. Search Engine, another domain, or name of email list"), + 'medium_id': fields.many2one('utm.medium', 'Medium', + help="This is the delivery method, e.g. Postcard, Email, or Banner Ad"), 'clicks_ratio': fields.function( _get_clicks_ratio, string="Number of Clicks", type="integer", @@ -597,6 +606,7 @@ class MassMailing(osv.Model): 'mailing_model': 'mail.mass_mailing.contact', 'contact_ab_pc': 100, 'mailing_domain': [], + 'medium_id': lambda self,cr,uid,ctx=None: self.pool['ir.model.data'].xmlid_to_res_id(cr, SUPERUSER_ID, 'utm.utm_medium_email'), } def onchange_mass_mailing_campaign_id(self, cr, uid, id, mass_mailing_campaign_ids, context=None): diff --git a/addons/mass_mailing/models/mass_mailing_report.py b/addons/mass_mailing/models/mass_mailing_report.py index 6c259913de6..fa38cf65390 100644 --- a/addons/mass_mailing/models/mass_mailing_report.py +++ b/addons/mass_mailing/models/mass_mailing_report.py @@ -35,8 +35,8 @@ class MassMailingReport(osv.Model): SELECT min(ms.id) as id, ms.scheduled as scheduled_date, - mm.name as name, - utm.name as campaign, + utm_source.name as name, + utm_campaign.name as campaign, count(ms.bounced) as bounced, count(ms.sent) as sent, (count(ms.sent) - count(ms.bounced)) as delivered, @@ -48,6 +48,7 @@ class MassMailingReport(osv.Model): mail_mail_statistics as ms left join mail_mass_mailing as mm ON (ms.mass_mailing_id=mm.id) left join mail_mass_mailing_campaign as mc ON (ms.mass_mailing_campaign_id=mc.id) - left join utm_campaign as utm ON (mc.campaign_id = utm.id) - GROUP BY ms.scheduled, mm.name, utm.name, mm.state, mm.email_from + left join utm_campaign as utm_campaign ON (mc.campaign_id = utm_campaign.id) + left join utm_source as utm_source ON (mm.source_id = utm_source.id) + GROUP BY ms.scheduled, utm_source.name, utm_campaign.name, mm.state, mm.email_from )""") diff --git a/addons/mass_mailing/views/mass_mailing.xml b/addons/mass_mailing/views/mass_mailing.xml index 43bf53b2e76..ee60f36b079 100644 --- a/addons/mass_mailing/views/mass_mailing.xml +++ b/addons/mass_mailing/views/mass_mailing.xml @@ -448,7 +448,10 @@ <group> <field name="email_from"/> - <field name="name"/> + <label for="name" string="Subject"/> + <div> + <field name="name" nolabel="1"/> + </div> <label for="mailing_model" string="Recipients"/> <div> <field name="mailing_model" widget="radio" style="margin-bottom: 8px" @@ -500,13 +503,6 @@ </group> </group> </page> - <page string="Tracking" groups="base.group_no_one"> - <group> - <field name="campaign_id" attrs="{'invisible': True}" /> - <field name="medium_id" /> - <field name="source_id" /> - </group> - </page> </notebook> </sheet> </form> diff --git a/addons/sale_crm/__init__.py b/addons/sale_crm/__init__.py index 0f8f154c60f..66786208331 100644 --- a/addons/sale_crm/__init__.py +++ b/addons/sale_crm/__init__.py @@ -4,3 +4,4 @@ import res_users import sale_crm import crm_lead +import account_invoice
\ No newline at end of file diff --git a/addons/sale_crm/account_invoice.py b/addons/sale_crm/account_invoice.py new file mode 100644 index 00000000000..1b4ede1f16a --- /dev/null +++ b/addons/sale_crm/account_invoice.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from openerp.osv import osv, fields + +class AccountInvoice(osv.osv): + _name = "account.invoice" + _inherit = ['account.invoice', 'utm.mixin'] |
