diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index c81f6040a3d..8bf71d7a031 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -27,17 +27,26 @@ form - + - + - - - + + + + + + @@ -71,20 +80,14 @@ icon="gtk-index" type="action" string="Create" attrs="{'invisible':[('partner_id','!=',False)]}"/> - - + - + @@ -167,6 +170,7 @@ + diff --git a/addons/crm/crm_opportunity_menu.xml b/addons/crm/crm_opportunity_menu.xml index 2fb8658eb69..dc7e100152a 100644 --- a/addons/crm/crm_opportunity_menu.xml +++ b/addons/crm/crm_opportunity_menu.xml @@ -8,9 +8,9 @@ name="Meetings" res_model="crm.meeting" src_model="crm.opportunity" - view_mode="calendar,graph" - context="{'default_partner_id': active_id, 'default_duration': 4.0}" - domain="[('opportunity_id','=',active_id)]" + view_mode="calendar,tree,form" + context="{'default_duration': 4.0}" + domain="[('user_id','=',uid)]" view_type="form"/> diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml index b67fb2b97ee..07554c794b5 100644 --- a/addons/crm/crm_phonecall_menu.xml +++ b/addons/crm/crm_phonecall_menu.xml @@ -50,7 +50,7 @@ tree,calendar - {'set_editable':True} + {'set_editable':True,'default_state':'open'} @@ -79,6 +79,7 @@ tree,calendar + {'default_state':'open'} diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index 2b3438978a3..c6a1e7316c9 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -32,8 +32,7 @@ - - + - + diff --git a/addons/crm/wizard/crm_lead_wizard.py b/addons/crm/wizard/crm_lead_wizard.py index e119134a868..ccbcabbcf28 100644 --- a/addons/crm/wizard/crm_lead_wizard.py +++ b/addons/crm/wizard/crm_lead_wizard.py @@ -57,7 +57,7 @@ class partner_create(wizard.interface): 'string':'Action', 'required':True, 'default': lambda *a:'exist'}, 'partner_id' : {'type':'many2one', 'relation':'res.partner', 'string':'Partner'}, } - + def _selectPartner(self, cr, uid, data, context): pool = pooler.get_pool(cr.dbname) case_obj = pool.get('crm.lead') @@ -75,8 +75,11 @@ class partner_create(wizard.interface): addresses = contact_obj.browse(cr, uid, address_ids) partner_ids = addresses and [addresses[0].partner_id.id] or False - partner_id = partner_ids and partner_ids[0] or False - return {'partner_id': partner_id} + partner_id = partner_ids and partner_ids[0] or False + vals = {'partner_id': partner_id} + if not partner_id: + vals['action'] = 'create' + return vals def _create_partner(self, cr, uid, data, context): pool = pooler.get_pool(cr.dbname) diff --git a/addons/crm/wizard/crm_opportunity_wizard.py b/addons/crm/wizard/crm_opportunity_wizard.py index ec50a41c948..15ecb55001b 100644 --- a/addons/crm/wizard/crm_opportunity_wizard.py +++ b/addons/crm/wizard/crm_opportunity_wizard.py @@ -86,8 +86,7 @@ class opportunity2phonecall(wizard.interface): id3 = data_obj.browse(cr, uid, id3, context=context).res_id opportunites = opportunity_case_obj.browse(cr, uid, data['ids']) - for opportunity in opportunites: - #TODO : Take Other Info from opportunity + for opportunity in opportunites: new_case = phonecall_case_obj.create(cr, uid, { 'name' : opportunity.name, 'case_id' : opportunity.id, @@ -96,9 +95,12 @@ class opportunity2phonecall(wizard.interface): 'description' : form['note'], 'date' : form['deadline'], 'section_id' : form['section_id'], - 'partner_id': opportunity.partner_id.id, - 'partner_address_id':opportunity.partner_address_id.id, + 'partner_id': opportunity.partner_id and opportunity.partner_id.id or False, + 'partner_address_id':opportunity.partner_address_id and opportunity.partner_address_id.id or False, 'description': data['form']['note'] or opportunity.description, + 'partner_phone' : opportunity.phone or (opportunity.partner_address_id and opportunity.partner_address_id.phone or False), + 'partner_mobile' : opportunity.partner_address_id and opportunity.partner_address_id.mobile or False, + 'priority': opportunity.priority, 'opportunity_id':opportunity.id }, context=context) vals = {} diff --git a/addons/crm/wizard/crm_phonecall_wizard.py b/addons/crm/wizard/crm_phonecall_wizard.py index 007ae372975..73a3604fd95 100644 --- a/addons/crm/wizard/crm_phonecall_wizard.py +++ b/addons/crm/wizard/crm_phonecall_wizard.py @@ -165,9 +165,9 @@ class phonecall2opportunity(partner_create): pool = pooler.get_pool(cr.dbname) case_obj = pool.get('crm.phonecall') for case in case_obj.browse(cr, uid, data['ids']): - if case.state != 'open': + if case.state in ['done', 'cancel']: raise wizard.except_wizard(_('Warning !'), - _('Phone Call state should be \'Open\' before converting to Opportunity.')) + _('Closed/Cancelled Phone Call Could not convert into Opportunity.')) return {} def _selectopportunity(self, cr, uid, data, context): @@ -200,8 +200,7 @@ class phonecall2opportunity(partner_create): phonecall_case_obj = pool.get('crm.phonecall') opportunity_case_obj = pool.get('crm.opportunity') - for phonecall in phonecall_case_obj.browse(cr, uid, data['ids']): - #TODO : Take other info from phonecall + for phonecall in phonecall_case_obj.browse(cr, uid, data['ids']): new_opportunity_id = opportunity_case_obj.create(cr, uid, { 'name': data['form']['name'], 'planned_revenue': data['form']['planned_revenue'], @@ -210,7 +209,8 @@ class phonecall2opportunity(partner_create): 'section_id': phonecall.section_id.id, 'description': phonecall.description, 'phonecall_id': phonecall.id, - 'priority': phonecall.priority + 'priority': phonecall.priority, + 'phone': phonecall.partner_phone, }) new_opportunity = opportunity_case_obj.browse(cr, uid, new_opportunity_id) vals = {