From f273f356501ebc951492707b751326cfb99c6c0f Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Fri, 20 Dec 2013 16:30:45 +0530 Subject: [PATCH 1/8] [ADD] added default alias for leads bzr revid: tpa@tinyerp.com-20131220110045-kpny4indr16ais8n --- addons/crm/crm_data.xml | 9 +++++++- addons/crm/crm_lead.py | 5 +++++ addons/crm/res_config.py | 41 ++++++++++++++++++++++++++++++++++ addons/crm/res_config_view.xml | 8 +++++++ addons/mail/mail_thread.py | 4 ++-- 5 files changed, 64 insertions(+), 3 deletions(-) diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml index 1f1bd74391a..688a3f00738 100644 --- a/addons/crm/crm_data.xml +++ b/addons/crm/crm_data.xml @@ -30,7 +30,7 @@ Direct Sales DM True - info + salesinfo @@ -56,6 +56,13 @@ + + + info + + + + mail.group diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index eaf51293355..9a08b0d8d43 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -965,6 +965,11 @@ class crm_lead(format_address, osv.osv): default['stage_id'] = self._get_default_stage_id(cr, uid, local_context) return super(crm_lead, self).copy(cr, uid, id, default, context=context) + def get_empty_list_help(self, cr, uid, help, context=None): + context['empty_list_help_model'] = 'crm.case.section' + context['empty_list_help_id'] = context.get('default_section_id', None) + return super(crm_lead, self).get_empty_list_help(cr, uid, help, context=context) + # ---------------------------------------- # Mail Gateway # ---------------------------------------- diff --git a/addons/crm/res_config.py b/addons/crm/res_config.py index 5f3ffe272e7..1fda9ed41d4 100644 --- a/addons/crm/res_config.py +++ b/addons/crm/res_config.py @@ -66,7 +66,48 @@ class crm_configuration(osv.TransientModel): 'group_multi_salesteams': fields.boolean("Organize Sales activities into multiple Sales Teams", implied_group='base.group_multi_salesteams', help="""Allows you to use Sales Teams to manage your leads and opportunities."""), + 'alias_prefix': fields.char('Default Alias Name for Leads'), + 'alias_domain' : fields.char('Alias Domain'), } + def get_default_alias_prefix(self, cr, uid, ids, context=None): + alias_name = '' + mail_alias = self.pool.get('mail.alias') + try: + alias_name = self.pool.get('ir.model.data').get_object(cr, uid, 'crm', 'mail_alias_lead_info').alias_name + except Exception: + model_ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'crm.lead')], context=context) + alias_ids = mail_alias.search(cr, uid, [('alias_model_id', '=', model_ids[0]),('alias_defaults', '=', '{}')], context=context) + if alias_ids: + alias_name = mail_alias.browse(cr, uid, alias_ids[0], context=context).alias_name + return {'alias_prefix': alias_name} + + def set_default_alias_prefix(self, cr, uid, ids, context=None): + mail_alias = self.pool.get('mail.alias') + record = self.browse(cr, uid, ids[0], context=context) + default_alias_prefix = self.get_default_alias_prefix(cr, uid, ids, context=context)['alias_prefix'] + if record.alias_prefix != default_alias_prefix: + try: + alias = self.pool.get('ir.model.data').get_object(cr, uid, 'crm', 'mail_alias_lead_info') + if alias: + alias.write({'alias_name': record.alias_prefix}) + except Exception: + model_ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'crm.lead')], context=context) + alias_ids = mail_alias.search(cr, uid, [('alias_model_id', '=', model_ids[0]),('alias_defaults', '=', '{}')], context=context) + if alias_ids: + mail_alias.write(cr, uid, alias_ids[0], {'alias_name': record.alias_prefix}, context=context) + else: + mail_alias.create_unique_alias(cr, uid, {'alias_name': record.alias_prefix}, model_name="crm.lead", context=context) + return True + + def get_default_alias_domain(self, cr, uid, ids, context=None): + alias_domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not alias_domain: + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "web.base.url", context=context) + try: + alias_domain = urlparse.urlsplit(domain).netloc.split(':')[0] + except Exception: + pass + return {'alias_domain': alias_domain} # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml index 9fd542c9dbd..ef1da644a6a 100644 --- a/addons/crm/res_config_view.xml +++ b/addons/crm/res_config_view.xml @@ -25,10 +25,18 @@ diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 57950376beb..e12bb85c631 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -113,10 +113,10 @@ class mail_thread(osv.AbstractModel): object_id.alias_id.alias_model_id.model == self._name and \ object_id.alias_id.alias_force_thread_id == 0: alias = object_id.alias_id - elif catchall_domain and model: # no specific res_id given -> generic help message, take an example alias (i.e. alias of some section_id) + if catchall_domain and model and not alias: #check for example alias if res_id not given or given res_id dose not contain alias-> generic help message, take an example alias (i.e. alias of some section_id) model_id = self.pool.get('ir.model').search(cr, uid, [("model", "=", self._name)], context=context)[0] alias_obj = self.pool.get('mail.alias') - alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id), ("alias_name", "!=", False), ('alias_force_thread_id', '=', 0)], context=context, order='id ASC') + alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id), ("alias_name", "!=", False), ('alias_force_thread_id', '=', False), ('alias_parent_thread_id', '=', False)], context=context, order='id ASC') if alias_ids and len(alias_ids) == 1: # if several aliases -> incoherent to propose one guessed from nowhere, therefore avoid if several aliases alias = alias_obj.browse(cr, uid, alias_ids[0], context=context) From 70925457cd07981f3147cd4ff494e11c606ff8fa Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Mon, 23 Dec 2013 15:35:10 +0530 Subject: [PATCH 2/8] [IMP] improved salesteam alias name bzr revid: tpa@tinyerp.com-20131223100510-5nivgxs54em9ztve --- addons/crm/crm_data.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml index 688a3f00738..f822d70f0ec 100644 --- a/addons/crm/crm_data.xml +++ b/addons/crm/crm_data.xml @@ -30,7 +30,7 @@ Direct Sales DM True - salesinfo + sales From 99c65811565ef9a41eb504edf4659d7450e1f155 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Fri, 27 Dec 2013 14:55:06 +0530 Subject: [PATCH 3/8] [IMP] improved code bzr revid: tpa@tinyerp.com-20131227092506-ux2owmkzbg2jz8b2 --- addons/crm/res_config.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/addons/crm/res_config.py b/addons/crm/res_config.py index 1fda9ed41d4..23ae817a4ce 100644 --- a/addons/crm/res_config.py +++ b/addons/crm/res_config.py @@ -70,6 +70,10 @@ class crm_configuration(osv.TransientModel): 'alias_domain' : fields.char('Alias Domain'), } + _defaults = { + 'alias_domain': lambda self, cr, uid, context:self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context), + } + def get_default_alias_prefix(self, cr, uid, ids, context=None): alias_name = '' mail_alias = self.pool.get('mail.alias') @@ -100,14 +104,4 @@ class crm_configuration(osv.TransientModel): mail_alias.create_unique_alias(cr, uid, {'alias_name': record.alias_prefix}, model_name="crm.lead", context=context) return True - def get_default_alias_domain(self, cr, uid, ids, context=None): - alias_domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) - if not alias_domain: - domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "web.base.url", context=context) - try: - alias_domain = urlparse.urlsplit(domain).netloc.split(':')[0] - except Exception: - pass - return {'alias_domain': alias_domain} - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From d08269b31c0ce2b1d559cae729c7f2ad3fc03257 Mon Sep 17 00:00:00 2001 From: "Sunil Sharma (OpenERP)" Date: Fri, 27 Dec 2013 16:20:14 +0530 Subject: [PATCH 4/8] [imp]:crm:improve res_config view bzr revid: sunilsharma.sharma07@gmail.com-20131227105014-cqn3zjwi2ewwx64w --- addons/crm/res_config_view.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml index ef1da644a6a..48e8de1ce63 100644 --- a/addons/crm/res_config_view.xml +++ b/addons/crm/res_config_view.xml @@ -30,11 +30,14 @@