diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml
index 7a6d61a0e08..594133d3b12 100644
--- a/addons/base_setup/base_setup_installer.xml
+++ b/addons/base_setup/base_setup_installer.xml
@@ -28,7 +28,7 @@ If you don't think you need any of these right now, you can easily install them
-
+
diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py
index 2c1ba113e47..9a817eaf10e 100644
--- a/addons/base_setup/installer.py
+++ b/addons/base_setup/installer.py
@@ -73,6 +73,7 @@ class base_setup_installer(osv.osv_memory):
'report_designer':fields.boolean('Advanced Reporting',
help="Lets you install various tools to simplify and enhance "
"OpenERP's report creation."),
+ 'thunderbird' :fields.boolean('Thunderbird'),
# Vertical modules
'profile_association':fields.boolean('Associations',
help="Installs a preselected set of OpenERP "
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index b3e45a33978..e4dea534b65 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -109,6 +109,7 @@ between mails and Open ERP.""",
'process/crm_configuration_process.xml',
],
'demo_xml': [
+ 'test/test_crm_meeting.yml',
'crm_demo.xml',
'crm_claims_demo.xml',
'crm_fund_demo.xml',
@@ -118,6 +119,13 @@ between mails and Open ERP.""",
'crm_opportunity_demo.xml',
'crm_phonecall_demo.xml'
],
+ 'test': ['test/test_crm_lead.yml',
+ 'test/test_crm_opportunity.yml',
+ 'test/test_crm_phonecall.yml',
+ 'test/test_crm_fund.yml',
+ 'test/test_crm_claim.yml',
+ 'test/test_crm_helpdesk.yml',
+ ],
'installable': True,
'active': False,
'certificate': '0079056041421',
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index 85a27bb5d55..0c7d2e295ad 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -59,6 +59,7 @@ class crm_case_section(osv.osv):
true, it will allow you to hide the sales team without removing it."),
'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"),
'user_id': fields.many2one('res.users', 'Responsible User'),
+ 'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
'reply_to': fields.char('Reply-To', size=64, help="The email address put \
in the 'Reply-To' of all emails sent by Open ERP about cases in this sales team"),
'parent_id': fields.many2one('crm.case.section', 'Parent Team'),
@@ -66,6 +67,7 @@ class crm_case_section(osv.osv):
'resource_calendar_id': fields.many2one('resource.calendar', "Resource's Calendar"),
'server_id':fields.many2one('email.smtpclient', 'Server ID'),
'note': fields.text('Description'),
+
}
_defaults = {
@@ -79,14 +81,14 @@ class crm_case_section(osv.osv):
def _check_recursion(self, cr, uid, ids):
"""
- Checks for recursion level for sections
+ Checks for recursion level for sales team
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
- @param ids: List of section ids
+ @param ids: List of Sales team ids
"""
level = 100
-
+
while len(ids):
cr.execute('select distinct parent_id from crm_case_section where id =ANY(%s)', (ids,))
ids = filter(None, map(lambda x: x[0], cr.fetchall()))
@@ -97,7 +99,7 @@ class crm_case_section(osv.osv):
return True
_constraints = [
- (_check_recursion, 'Error ! You cannot create recursive sections.', ['parent_id'])
+ (_check_recursion, 'Error ! You cannot create recursive Sales team.', ['parent_id'])
]
def name_get(self, cr, uid, ids, context=None):
@@ -105,7 +107,7 @@ class crm_case_section(osv.osv):
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
- @param ids: List of section ids
+ @param ids: List of sales team ids
"""
if not context:
context = {}
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 31d82cd94fb..5c171236836 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -11,7 +11,7 @@
crm.case.section
form
-