diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index d0abc98e518..d19a8b61e00 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -44,6 +44,18 @@ AVAILABLE_PRIORITIES = [
('5', 'Lowest'),
]
+class crm_case_channel(osv.osv):
+ _name = "crm.case.channel"
+ _description = "Channels"
+ _order = 'name'
+ _columns = {
+ 'name': fields.char('Channel Name', size=64, required=True),
+ 'active': fields.boolean('Active'),
+ }
+ _defaults = {
+ 'active': lambda *a: 1,
+ }
+
class crm_case_stage(osv.osv):
""" Stage of case """
diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml
index e494db325e5..bab3e4bca5f 100644
--- a/addons/crm/crm_data.xml
+++ b/addons/crm/crm_data.xml
@@ -1,6 +1,18 @@
+
+ website
+
+
+ phone
+
+
+ direct
+
+
+ e-mail
+
Sales Department
Sales
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index b08006578db..fae37ed54a4 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -142,7 +142,7 @@ class crm_lead(crm_case, osv.osv):
domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \
domain="['|',('section_id','=',section_id),('section_id','=',False)]", help="From which campaign (seminar, marketing campaign, mass mailing, ...) did this contact come from?"),
- 'channel_id': fields.many2one('res.partner.canal', 'Channel', help="From which channel (mail, direct, phone, ...) did this contact reach you?"),
+ 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel (mail, direct, phone, ...)"),
'contact_name': fields.char('Contact Name', size=64),
'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner that will be created while converting the into opportunity', select=1),
'optin': fields.boolean('Opt-In', help="If opt-in is checked, this contact has accepted to receive emails."),
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index ecae065beac..06c90417725 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -71,11 +71,6 @@ class crm_phonecall(crm_base, osv.osv):
type="char", string="Contact", size=128),
'partner_mobile': fields.char('Mobile', size=32),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel', \
- help="The channels represent the different communication\
- modes available with the customer." \
- " With each commercial opportunity, you can indicate\
- the canall which is this opportunity source."),
'date_closed': fields.datetime('Closed', readonly=True),
'date': fields.datetime('Date'),
'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'),
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 31105ffcbc8..d5c199087bf 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -7,7 +7,7 @@
-
+
@@ -21,6 +21,39 @@
parent="base.menu_base_partner" sequence="11" />
+
+
+ crm.case.channel.tree
+ crm.case.channel
+ tree
+
+
+
+
+
+
+
+
+ crm.case.channel.form
+ crm.case.channel
+ form
+
+
+
+
+
+ Channels
+ crm.case.channel
+ form
+ tree,form
+ Track from where is coming your leads and opportunities by creating specific channels that will be maintained at the creation of a document in the system. Some examples of channels can be: Website, Phone Call, Reseller, etc.
+
+
+
+
diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py
index 51f1eb5d96e..bd61e1ee80d 100644
--- a/addons/crm/report/crm_lead_report.py
+++ b/addons/crm/report/crm_lead_report.py
@@ -57,7 +57,7 @@ class crm_lead_report(osv.osv):
'user_id':fields.many2one('res.users', 'User', readonly=True),
'country_id':fields.many2one('res.country', 'Country', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Sales Team', readonly=True),
- 'channel_id':fields.many2one('res.partner.canal', 'Channel', readonly=True),
+ 'channel_id':fields.many2one('crm.case.channel', 'Channel', readonly=True),
'type_id':fields.many2one('crm.case.resource.type', 'Campaign', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'creation_month':fields.selection(MONTHS, 'Creation Date', readonly=True),
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index 4aa68a6625c..6f7b3066d7a 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -3,6 +3,8 @@
"access_crm_segmentation_line_user","crm.segmentation.line user","model_crm_segmentation_line","base.group_sale_salesman",1,0,0,0
"access_crm_segmentation","crm.segmentation","model_crm_segmentation","base.group_sale_manager",1,1,1,1
"access_crm_segmentation_line","crm.segmentation.line","model_crm_segmentation_line","base.group_sale_manager",1,1,1,1
+"access_crm_case_channel_user","crm.case.channel user","model_crm_case_channel","base.group_sale_salesman",1,0,0,0
+"access_crm_case_channel_manager","crm.case.channel manager","model_crm_case_channel","base.group_sale_manager",1,1,1,1
"access_crm_case_section","crm.case.section","model_crm_case_section","base.group_sale_salesman",1,1,1,0
"access_crm_case_categ","crm.case.categ","model_crm_case_categ","base.group_sale_salesman",1,1,1,0
"access_crm_meeting_manager","crm.meeting.manager","model_crm_meeting","base.group_sale_manager",1,1,1,1
@@ -41,7 +43,6 @@
"access_crm_lead_report_user","crm.lead.report user","model_crm_lead_report","base.group_sale_salesman",1,1,1,1
"access_res_partner_bank_type_crm_user","res.partner.bank.type.crm.user","base.model_res_partner_bank_type","base.group_sale_salesman",1,0,0,0
"access_res_partner_bank_type_crm_manager","res.partner.bank.type.crm.manager","base.model_res_partner_bank_type","base.group_sale_manager",1,0,0,0
-"access_res_partner_canal_manager","res.partner.canal.manager","base.model_res_partner_canal","base.group_sale_manager",1,1,1,1
"access_crm_lead_partner_manager","crm.lead.partner.manager","model_crm_lead","base.group_partner_manager",1,1,1,1
"access_crm_phonecall_partner_manager","crm.phonecall.partner.manager","model_crm_phonecall","base.group_partner_manager",1,1,1,1
"access_crm_meeting_partner_manager","crm.meeting.partner.manager","model_crm_meeting","base.group_partner_manager",1,1,1,1
diff --git a/addons/crm_fundraising/crm_fundraising.py b/addons/crm_fundraising/crm_fundraising.py
index e2b0bb566fd..01234dbf436 100644
--- a/addons/crm_fundraising/crm_fundraising.py
+++ b/addons/crm_fundraising/crm_fundraising.py
@@ -67,9 +67,6 @@ class crm_fundraising(crm.crm_case, osv.osv):
'duration': fields.float('Duration'),
'ref': fields.reference('Reference', selection=crm._links_get, size=128),
'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel', \
- help="The channels represent the different communication \
- modes available with the customer."),
'state': fields.selection(crm.AVAILABLE_STATES, 'State', size=16, readonly=True,
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml
index 9dddc31bd6c..c98a06eda46 100644
--- a/addons/crm_fundraising/crm_fundraising_view.xml
+++ b/addons/crm_fundraising/crm_fundraising_view.xml
@@ -190,7 +190,6 @@
-
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index 5d02ec12369..b27fa04a2af 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -63,9 +63,7 @@ class crm_helpdesk(crm.crm_case, osv.osv):
'date': fields.datetime('Date'),
'ref' : fields.reference('Reference', selection=crm._links_get, size=128),
'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel', \
- help="The channels represent the different communication \
- modes available with the customer."),
+ 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."),
'planned_revenue': fields.float('Planned Revenue'),
'planned_cost': fields.float('Planned Costs'),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
diff --git a/addons/crm_helpdesk/crm_helpdesk_demo.xml b/addons/crm_helpdesk/crm_helpdesk_demo.xml
index f48af6b5de3..a7f36c931c9 100644
--- a/addons/crm_helpdesk/crm_helpdesk_demo.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_demo.xml
@@ -2,7 +2,6 @@
-
@@ -15,7 +14,6 @@
-
@@ -28,7 +26,6 @@
-
@@ -41,7 +38,6 @@
-
@@ -54,4 +50,4 @@
-
\ No newline at end of file
+
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index e0ca162286f..af893a3f40f 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -62,7 +62,7 @@
-
+
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report.py b/addons/crm_helpdesk/report/crm_helpdesk_report.py
index 0d1d97c6905..7b70b77d5d1 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report.py
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report.py
@@ -56,7 +56,7 @@ class crm_helpdesk_report(osv.osv):
'date_deadline': fields.date('Deadline', select=True),
'priority': fields.selection([('5', 'Lowest'), ('4', 'Low'), \
('3', 'Normal'), ('2', 'High'), ('1', 'Highest')], 'Priority'),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel'),
+ 'channel_id': fields.many2one('crm.case.channel', 'Channel'),
'categ_id': fields.many2one('crm.case.categ', 'Category', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.helpdesk')]"),
@@ -93,7 +93,7 @@ class crm_helpdesk_report(osv.osv):
c.priority,
c.date_deadline,
c.categ_id,
- c.canal_id,
+ c.channel_id,
c.planned_cost,
count(*) as nbr,
extract('epoch' from (c.date_closed-c.create_date))/(3600*24) as delay_close,
@@ -104,7 +104,7 @@ class crm_helpdesk_report(osv.osv):
group by to_char(c.date, 'YYYY'), to_char(c.date, 'MM'),to_char(c.date, 'YYYY-MM-DD'),\
c.state, c.user_id,c.section_id,c.priority,\
c.partner_id,c.company_id,c.date_deadline,c.create_date,c.date,c.date_closed,\
- c.categ_id,c.canal_id,c.planned_cost,c.id
+ c.categ_id,c.channel_id,c.planned_cost,c.id
)""")
crm_helpdesk_report()
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
index d54b719fe2b..e954c790582 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
@@ -25,7 +25,7 @@
-
+
@@ -106,9 +106,7 @@
domain="[]"
context="{'group_by':'partner_id'}" />
-
+
diff --git a/addons/hr_recruitment/hr_recruitment_demo.xml b/addons/hr_recruitment/hr_recruitment_demo.xml
index 20a4fa0e17a..b2d029f74d4 100644
--- a/addons/hr_recruitment/hr_recruitment_demo.xml
+++ b/addons/hr_recruitment/hr_recruitment_demo.xml
@@ -25,7 +25,6 @@
-
@@ -45,7 +44,6 @@
-
@@ -115,7 +113,6 @@
-
@@ -136,7 +133,6 @@
-
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 2217bade5fa..ea974eea7d4 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -206,8 +206,7 @@ class project_issue(crm.crm_case, osv.osv):
# Project Issue fields
'date_closed': fields.datetime('Closed', readonly=True,select=True),
'date': fields.datetime('Date'),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel', help="The channels represent the different communication modes available with the customer." \
- " With each commercial opportunity, you can indicate the canall which is this opportunity source."),
+ 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."),
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'version_id': fields.many2one('project.issue.version', 'Version'),
diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml
index 539cef5579e..12ff265b1e9 100644
--- a/addons/project_issue/project_issue_demo.xml
+++ b/addons/project_issue/project_issue_demo.xml
@@ -198,7 +198,6 @@
-
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index 29542f32912..5eae252f446 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -66,7 +66,7 @@ class project_issue_report(osv.osv):
'version_id': fields.many2one('project.issue.version', 'Version'),
'assigned_to' : fields.many2one('res.users', 'Assigned to',readonly=True),
'partner_id': fields.many2one('res.partner','Partner',domain="[('object_id.model', '=', 'project.issue')]"),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel',readonly=True),
+ 'channel_id': fields.many2one('crm.case.channel', 'Channel',readonly=True),
'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" ),
'email': fields.integer('# Emails', size=128, readonly=True),
}
@@ -97,7 +97,7 @@ class project_issue_report(osv.osv):
1 as nbr,
c.assigned_to,
c.partner_id,
- c.canal_id,
+ c.channel_id,
c.task_id,
date_trunc('day',c.create_date) as create_date,
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open,
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index 015a7750548..4808ff29f81 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 17d2c636e12..2fe965002c6 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -794,7 +794,6 @@ class sale_order(osv.osv):
'document': '',
'partner_id': part,
'date': time.strftime('%Y-%m-%d'),
- 'canal_id': False,
'user_id': uid,
'partner_type': partnertype,
'probability': 1.0,