Use leads if you need a qualification step before creating an
opportunity or a customer. It can be a business card you received,
a contact form filled in your website, or a file of unqualified
@@ -44,7 +45,11 @@
crm.leadkanban,tree,graph,form,calendar[('type','=','opportunity')]
- {'stage_type': 'opportunity', 'default_type': 'opportunity', 'default_user_id': uid}
+ {
+ 'stage_type': 'opportunity',
+ 'default_type': 'opportunity',
+ 'default_user_id': uid
+ }
@@ -82,9 +87,9 @@
+ Use leads if you need a qualification step before creating an
+ opportunity or a customer. It can be a business card you received,
+ a contact form filled in your website, or a file of unqualified
+ prospects you import, etc.
+
+ Once qualified, the lead can be converted into a business
+ opportunity and/or a new customer in your address book.
+
+ OpenERP helps you keep track of your sales pipeline to follow
+ up potential sales and better forecast your future revenues.
+
+ You will be able to plan meetings and phone calls from
+ opportunities, convert them into quotations, attach related
+ documents, track all discussions, and much more.
+
+ Use sales team to organize your different salespersons or
+ departments into separate teams. Each team will work in
+ its own list of opportunities.
+
+ Use sales team to organize your different salespersons or
+ departments into separate teams. Each team will work in
+ its own list of opportunities.
+
- Use sales team to organize your different salespersons or
- departments into separate teams. Each team will work in
- its own list of opportunities.
-
-
-
-
-
-
-
@@ -295,13 +192,6 @@
groups="base.group_no_one"
parent="base.menu_crm_config_lead"/>
-
- Cases by Sales Team
- crm.case.section
- [('parent_id','=',False)]
- tree
-
-
diff --git a/addons/crm/res_config.py b/addons/crm/res_config.py
index 229ad0189ff..dcafecdabba 100644
--- a/addons/crm/res_config.py
+++ b/addons/crm/res_config.py
@@ -26,9 +26,6 @@ class crm_configuration(osv.osv_memory):
_inherit = ['sale.config.settings', 'fetchmail.config.settings']
_columns = {
- 'fetchmail_lead': fields.boolean("Create leads from incoming mails",
- fetchmail_model='crm.lead', fetchmail_name='Incoming Leads',
- help="""Allows you to configure your incoming mail server, and create leads from incoming emails."""),
'group_fund_raising': fields.boolean("Manage Fund Raising",
implied_group='crm.group_fund_raising',
help="""Allows you to trace and manage your activities for fund raising."""),
diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml
index 9534c8620ee..ba0b7e693c7 100644
--- a/addons/crm/res_config_view.xml
+++ b/addons/crm/res_config_view.xml
@@ -23,19 +23,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index 00a071fa954..150c1eeebbe 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -30,8 +30,11 @@
crm.leadkanban,tree,form,graph,calendar[('type','=','opportunity')]
- {'search_default_partner_id': active_id,
- 'stage_type': 'opportunity', 'default_type': 'opportunity'}
+ {
+ 'search_default_partner_id': active_id,
+ 'stage_type': 'opportunity',
+ 'default_type': 'opportunity'
+ }
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index 74394d3c5ce..eaa11433b1b 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -36,4 +36,4 @@ access_res_partner_bank_type_crm_user,res.partner.bank.type.crm.user,base.model_
access_crm_lead_partner_manager,crm.lead.partner.manager,model_crm_lead,base.group_partner_manager,1,0,0,0
access_crm_phonecall_partner_manager,crm.phonecall.partner.manager,model_crm_phonecall,base.group_partner_manager,1,1,1,1
access_crm_payment_mode_user,crm.payment.mode,model_crm_payment_mode,base.group_sale_salesman,1,0,0,0
-access_crm_payment_mode,crm.payment.mode,model_crm_payment_mode,base.group_sale_manager,1,1,1,1
+access_crm_payment_mode,crm.payment.mode,model_crm_payment_mode,base.group_sale_manager,1,1,1,1
\ No newline at end of file
diff --git a/addons/crm/static/src/css/crm.css b/addons/crm/static/src/css/crm.css
new file mode 100644
index 00000000000..25494a761b5
--- /dev/null
+++ b/addons/crm/static/src/css/crm.css
@@ -0,0 +1,41 @@
+.oe_kanban_crm_salesteams {
+ width: 220px;
+ min-height: 160px;
+}
+.oe_kanban_crm_salesteams_avatars {
+ margin-top: 8px;
+}
+
+.oe_kanban_crm_salesteams_avatars img {
+ width: 30px;
+ height: 30px;
+ padding-left: 0px;
+ margin-top: 3px;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+ -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+}
+
+.oe_kanban_crm_salesteams_alias {
+ margin: -8px 0 8px 0;
+}
+
+.oe_kanban_crm_salesteams_alias .oe_e {
+ font-size: 30px;
+ line-height: 6px;
+ vertical-align: top;
+ margin-right: 3px;
+ color: white;
+ text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
+ float: left;
+}
+
+.oe_kanban_crm_salesteams_list a {
+ white-space: nowrap;
+}
+.oe_kanban_crm_salesteams_list a:hover {
+ text-decoration: underline !important;
+}
\ No newline at end of file
diff --git a/addons/crm/static/src/js/crm.js b/addons/crm/static/src/js/crm.js
new file mode 100644
index 00000000000..e027313d6dc
--- /dev/null
+++ b/addons/crm/static/src/js/crm.js
@@ -0,0 +1,11 @@
+openerp.crm = function(openerp) {
+ openerp.web_kanban.KanbanRecord.include({
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'crm.case.section') {
+ this.$('.oe_kanban_crm_salesteams_list a').first().click();
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+ });
+};
diff --git a/addons/crm_claim/__init__.py b/addons/crm_claim/__init__.py
index 2012c227adf..7395ea83fe5 100644
--- a/addons/crm_claim/__init__.py
+++ b/addons/crm_claim/__init__.py
@@ -21,7 +21,6 @@
import crm_claim
import report
-import res_config
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_claim/__openerp__.py b/addons/crm_claim/__openerp__.py
index 78dfba2ed53..61257265f1b 100644
--- a/addons/crm_claim/__openerp__.py
+++ b/addons/crm_claim/__openerp__.py
@@ -41,7 +41,6 @@ automatically new claims based on incoming emails.
'crm_claim_menu.xml',
'security/ir.model.access.csv',
'report/crm_claim_report_view.xml',
- 'res_config_view.xml',
'crm_claim_data.xml',
],
'demo': ['crm_claim_demo.xml'],
diff --git a/addons/crm_claim/res_config.py b/addons/crm_claim/res_config.py
deleted file mode 100644
index aa0cb7ffa20..00000000000
--- a/addons/crm_claim/res_config.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Business Applications
-# Copyright (C) 2004-2012 OpenERP S.A. ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from openerp.osv import fields, osv
-
-class crm_claim_settings(osv.osv_memory):
- _name = 'sale.config.settings'
- _inherit = ['sale.config.settings', 'fetchmail.config.settings']
-
- _columns = {
- 'fetchmail_claim': fields.boolean("Create claims from incoming mails",
- fetchmail_model='crm.claim', fetchmail_name='Incoming Claims',
- help="""Allows you to configure your incoming mail server, and create claims from incoming emails."""),
- }
diff --git a/addons/crm_claim/res_config_view.xml b/addons/crm_claim/res_config_view.xml
deleted file mode 100644
index 79474f1fb00..00000000000
--- a/addons/crm_claim/res_config_view.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- crm_claim settings
- sale.config.settings
-
-
-
-
OpenERP helps you track applicants in the recruitment
process and follow up all operations: meetings, interviews, etc.
- If you setup the email gateway, applicants and their attached
- CV are created automatically when an email is sent to
- jobs@yourcompany.com. If you install the document management
- modules, all resumes are indexed automatically, so that you can
- easily search through their content.
+ Applicants and their attached CV are created automatically when an email is sent.
+ If you install the document management modules, all resumes are indexed automatically,
+ so that you can easily search through their content.
+
diff --git a/addons/mail/doc/mail_alias.rst b/addons/mail/doc/mail_alias.rst
new file mode 100644
index 00000000000..fa5a2fe0fda
--- /dev/null
+++ b/addons/mail/doc/mail_alias.rst
@@ -0,0 +1,37 @@
+.. _mail_alias:
+
+mail.alias
+============
+
+Models
++++++++
+
+``mail.alias`` is a class for mapping of an email address with a given OpenERP Document model. It is used by OpenERP's mail gateway when processing incoming emails sent to the system. If the recipient address (To) of the message matches a Mail Alias, the message will be either processed following the rules of that alias. If the message is a reply it will be attached to the existing discussion on the corresponding record, otherwise a new record of the corresponding model will be created.
+This is meant to be used in combination with a catch-all email configuration on the company's mail server, so that as soon as a new mail.alias is created, it becomes immediately usable and OpenERP will accept email for it.
+
+.. versionchanged:: 7.1
+
+Some Fields
++++++++++++
+
+ - ``alias_name`` :
+ The name of the email alias, e.g. 'jobs'
+ - ``alias_model_id`` :
+ The model (OpenERP Document Kind) to which this alias corresponds. Any incoming email that does not reply to an existing record will cause the creation of a new record of this model (e.g. a Project Task)
+ - ``alias_defaults`` :
+ A Python dictionary that will be evaluated to provide default values when creating new records for this alias.
+ - ``alias_domain`` :
+
+Methods
++++++++
+
+ - ``name_get`` :
+ Return the mail alias display alias_name, inclusing the implicit mail catchall domain from config.
+ e.g. `jobs@openerp.my.openerp.com` or `sales@openerp.my.openerp.com`
+ - ``create_unique_alias`` :
+ Creates an email.alias record according to the values provided in ``vals``, with 2 alterations: the ``alias_name`` value may be suffixed in order to make it unique, and the ``alias_model_id`` value will set to the model ID of the ``model_name`` value, if provided,
+ - ``get_alias`` :
+ Return the mail alias for a document (or the default mail alias of the model).
+ Arguments:
+ model (model OpenERP)
+ alias_defaults (A Python dictionary to provide default values when creating new records for this alias.)
\ No newline at end of file
diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py
index d9c49d833ab..a079448487d 100644
--- a/addons/mail/mail_alias.py
+++ b/addons/mail/mail_alias.py
@@ -22,6 +22,7 @@
import logging
import re
import unicodedata
+import ast
from openerp.osv import fields, osv
from openerp.tools import ustr
@@ -117,8 +118,13 @@ class mail_alias(osv.Model):
mail catchall domain from config.
e.g. `jobs@openerp.my.openerp.com` or `sales@openerp.my.openerp.com`
"""
- return [(record['id'], "%s@%s" % (record['alias_name'], record['alias_domain']))
- for record in self.read(cr, uid, ids, ['alias_name', 'alias_domain'], context=context)]
+ res = []
+ for record in self.browse(cr, uid, ids, context=context):
+ if record.alias_name and record.alias_domain:
+ res.append((record['id'], "%s@%s" % (record.alias_name, record.alias_domain)))
+ else:
+ res.append((record['id'], False))
+ return res
def _find_unique(self, cr, uid, name, context=None):
"""Find a unique alias name similar to ``name``. If ``name`` is
diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml
index 77c0b8f6c86..d103199d567 100644
--- a/addons/mail/mail_group_view.xml
+++ b/addons/mail/mail_group_view.xml
@@ -69,39 +69,39 @@