From a55f86723ab040211181dfa864f24c7cac3a1da8 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Thu, 22 Apr 2010 13:42:55 +0200 Subject: [PATCH 01/10] [FIX] crm: Avoid to return a None value in the rpc call back bzr revid: stephane@openerp.com-20100422114255-2kou1i145ou4pl3m --- addons/crm/crm_mailgate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/crm/crm_mailgate.py b/addons/crm/crm_mailgate.py index 7ffc6c26ec5..fdb3c397f7b 100644 --- a/addons/crm/crm_mailgate.py +++ b/addons/crm/crm_mailgate.py @@ -144,7 +144,7 @@ class crm_cases(osv.osv): select = ids for case in self.browse(cr, uid, select): user_email = (case.user_id and case.user_id.address_id and case.user_id.address_id.email) or False - res += [(user_email, case.email_from, case.email_cc, getattr(case,'priority') and case.priority or False)] + res += [(user_email, case.email_from, case.email_cc or False, getattr(case,'priority') and case.priority or False)] if isinstance(ids, (str, int, long)): return len(res) and res[0] or False return res From 464fa73f7a300faafdfd00cd578c70ce54d587c9 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Thu, 22 Apr 2010 13:44:19 +0200 Subject: [PATCH 02/10] [FIX] base_action_rule: Add the deadline option in the selection for the date fields to handle bzr revid: stephane@openerp.com-20100422114419-wvrkppr72hj7wi7b --- addons/base_action_rule/base_action_rule.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index f4129998bcc..df2d43d3a53 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -310,6 +310,7 @@ class base_action_rule_line(osv.osv): ('create','Creation Date'), ('action_last','Last Action Date'), ('date','Date'), + ('deadline', 'Deadline'), ], 'Trigger Date', size=16), 'trg_date_range': fields.integer('Delay after trigger date',help="Delay After Trigger Date,\ specifies you can put a negative number " \ From 9fb8e1684b4bf5c55aed095358b6e1510d6a195c Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Thu, 22 Apr 2010 13:46:41 +0200 Subject: [PATCH 03/10] [FIX] crm: Add the history and the logs when we convert a lead to an opportunity bzr revid: stephane@openerp.com-20100422114641-c75fmwcgtb31hmcv --- addons/crm/wizard/crm_lead_to_opportunity.py | 128 ++++++++++--------- 1 file changed, 68 insertions(+), 60 deletions(-) diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py index f4b97ad2f14..c8cce059f09 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity.py +++ b/addons/crm/wizard/crm_lead_to_opportunity.py @@ -51,74 +51,82 @@ class crm_lead2opportunity(osv.osv_memory): @return : Dictionary value for created Opportunity form """ - value = {} record_id = context and context.get('active_id', False) or False - if record_id: - lead_obj = self.pool.get('crm.lead') - opp_obj = self. pool.get('crm.opportunity') - data_obj = self.pool.get('ir.model.data') - history_obj = self.pool.get('crm.case.history') - model_obj = self.pool.get('ir.model') + if not record_id: + return {} - # Get Opportunity views - result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter') - res = data_obj.read(cr, uid, result, ['res_id']) - id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_oppor') - id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_oppor') - if id2: - id2 = data_obj.browse(cr, uid, id2, context=context).res_id - if id3: - id3 = data_obj.browse(cr, uid, id3, context=context).res_id + lead_obj = self.pool.get('crm.lead') + opp_obj = self. pool.get('crm.opportunity') + data_obj = self.pool.get('ir.model.data') + history_obj = self.pool.get('crm.case.history') + model_obj = self.pool.get('ir.model') - lead = lead_obj.browse(cr, uid, record_id, context=context) - model_ids = model_obj.search(cr, uid, [('model', '=', 'crm.opportunity')]) + # Get Opportunity views + result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter') + res = data_obj.read(cr, uid, result, ['res_id']) + id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_oppor') + id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_oppor') + if id2: + id2 = data_obj.browse(cr, uid, id2, context=context).res_id + if id3: + id3 = data_obj.browse(cr, uid, id3, context=context).res_id + + lead = lead_obj.browse(cr, uid, record_id, context=context) + model_ids = model_obj.search(cr, uid, [('model', '=', 'crm.opportunity')]) - for this in self.browse(cr, uid, ids, context=context): - new_opportunity_id = opp_obj.create(cr, uid, { - 'name': this.name, - 'referred': this.referred, - 'planned_revenue': this.planned_revenue, - 'probability': this.probability, - 'partner_id': lead.partner_id and lead.partner_id.id or False , - 'section_id': lead.section_id and lead.section_id.id or False, - 'description': lead.description or False, - 'date_deadline': lead.date_deadline or False, - 'partner_address_id': lead.partner_address_id and \ - lead.partner_address_id.id or False , - 'priority': lead.priority, - 'phone': lead.phone, - 'email_from': lead.email_from - }) - new_opportunity = opp_obj.browse(cr, uid, new_opportunity_id) - vals = { - 'partner_id': this.partner_id and this.partner_id.id or False, - } - if not lead.opportunity_id: - vals.update({'opportunity_id' : new_opportunity.id}) + for this in self.browse(cr, uid, ids, context=context): + new_opportunity_id = opp_obj.create(cr, uid, { + 'name': this.name, + 'referred': lead.referred, + 'planned_revenue': this.planned_revenue, + 'probability': this.probability, + 'partner_id': lead.partner_id and lead.partner_id.id or False, + 'section_id': lead.section_id and lead.section_id.id or False, + 'description': lead.description or False, + 'date_deadline': lead.date_deadline or False, + 'partner_address_id': lead.partner_address_id and lead.partner_address_id.id or False , + 'priority': lead.priority, + 'phone': lead.phone, + 'email_from': lead.email_from + }) + new_opportunity = opp_obj.browse(cr, uid, new_opportunity_id) + vals = { + 'partner_id': this.partner_id and this.partner_id.id or False, + } + if not lead.opportunity_id: + vals.update({'opportunity_id' : new_opportunity.id}) - lead_obj.write(cr, uid, [lead.id], vals) - lead_obj.case_close(cr, uid, [lead.id]) - - # Copy lead history to opportunity - for his_id in lead.history_line: - history_ids = history_obj.copy(cr, uid, his_id.id, \ - {'model_id': model_ids[0], \ - 'res_id': new_opportunity_id}) + model_opportunity_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'crm.opportunity')], context=context)[0] - opp_obj.case_open(cr, uid, [new_opportunity_id]) + for model in ('crm.case.log', 'crm.case.history'): + log_proxy = self.pool.get(model) + log_ids = log_proxy.search(cr, uid, [('model_id.model', '=', 'crm.lead'),('res_id', '=', lead.id)], context=context) + for log_id in log_ids: + log_proxy.copy(cr, uid, log_id, {'model_id':model_opportunity_id}, context=context) - value = { - 'name': _('Opportunity'), - 'view_type': 'form', - 'view_mode': 'form,tree', - 'res_model': 'crm.opportunity', - 'res_id': int(new_opportunity_id), - 'view_id': False, - 'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')], - 'type': 'ir.actions.act_window', - 'search_view_id': res['res_id'] - } + lead_obj.write(cr, uid, [lead.id], vals) + lead_obj.case_close(cr, uid, [lead.id]) + + # Copy lead history to opportunity + for his_id in lead.history_line: + history_ids = history_obj.copy(cr, uid, his_id.id, \ + {'model_id': model_ids[0], \ + 'res_id': new_opportunity_id}) + + #opp_obj.case_open(cr, uid, [new_opportunity_id]) + + value = { + 'name': _('Opportunity'), + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'crm.opportunity', + 'res_id': int(new_opportunity_id), + 'view_id': False, + 'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')], + 'type': 'ir.actions.act_window', + 'search_view_id': res['res_id'] + } return value _columns = { From 730f332a80c814d589176b6c2b27137cf564b561 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Thu, 22 Apr 2010 13:47:30 +0200 Subject: [PATCH 04/10] [REF] crm: Review the layout of the 'Send Email' wizard bzr revid: stephane@openerp.com-20100422114730-6ykdeckr44sjq4rg --- addons/crm/wizard/crm_send_email_view.xml | 41 +++++++++++------------ 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/addons/crm/wizard/crm_send_email_view.xml b/addons/crm/wizard/crm_send_email_view.xml index 976e0578d05..4db670de61f 100644 --- a/addons/crm/wizard/crm_send_email_view.xml +++ b/addons/crm/wizard/crm_send_email_view.xml @@ -9,27 +9,26 @@ crm.send.mail form -
- - - - - - - - - - - - - - - - - - - -