summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/crm/report/crm_opportunity_report.py4
-rw-r--r--addons/mass_mailing/models/mass_mailing.py20
-rw-r--r--addons/mass_mailing/models/mass_mailing_report.py9
-rw-r--r--addons/mass_mailing/views/mass_mailing.xml12
-rw-r--r--addons/sale_crm/__init__.py1
-rw-r--r--addons/sale_crm/account_invoice.py8
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']