[FIX] create partner do not open partner view anymore but fill the partner_id field in lead form + view in m2m has only critical information

bzr revid: tfr@openerp.com-20110209164237-xiq0fqysijuqzh5f
This commit is contained in:
Thibault Francois 2011-02-09 17:42:37 +01:00
parent bf5c7f5171
commit dc6edddf75
4 changed files with 29 additions and 23 deletions

View File

@ -17,7 +17,14 @@
<group col="4" colspan="4" attrs="{'invisible': [('name', '=', 'convert')]}" >
<separator string="Select Opportunities" colspan="4" />
</group>
<field name="opportunity_ids" colspan="4" nolabel="1" attrs="{'invisible': [('name', '=', 'convert')]}"/>
<field name="opportunity_ids" colspan="4" nolabel="1" attrs="{'invisible': [('name', '=', 'convert')]}">
<tree>
<field name="name" />
<field name="partner_id" />
<field name="user_id" />
<field name="section_id" />
</tree>
</field>
<separator string="" colspan="4" />
<group col="4" colspan="4">

View File

@ -65,7 +65,7 @@ class crm_lead2partner(osv.osv_memory):
@return : default values of fields.
"""
lead_obj = self.pool.get('crm.lead')
partner_obj = self.pool.get('res.partner')
contact_obj = self.pool.get('res.partner.address')
@ -80,8 +80,8 @@ class crm_lead2partner(osv.osv_memory):
email = re.findall(r'([^ ,<@]+@[^> ,]+)', lead.email_from or '')
email = map(lambda x: "'" + x + "'", email)
if email:
cr.execute("""select id from res_partner_address
where
cr.execute("""select id from res_partner_address
where
substring(email from '([^ ,<@]+@[^> ,]+)') in (%s)""" % (','.join(email)))
address_ids = map(lambda x: x[0], cr.fetchall())
if address_ids:
@ -92,7 +92,7 @@ class crm_lead2partner(osv.osv_memory):
if not partner_ids and lead.partner_name:
partner_ids = partner_obj.search(cr, uid, [('name', '=', lead.partner_name)], context=context)
if not partner_ids:
cr.execute("""SELECT p.id from res_partner p
cr.execute("""SELECT p.id from res_partner p
where regexp_replace(lower(p.name), '[^a-z]*', '', 'g') = regexp_replace(%s, '[^a-z]*', '', 'g')""", (lead.name.lower(), ))
partner_ids = map(lambda x: x[0], cr.fetchall())
partner_id = partner_ids and partner_ids[0] or False
@ -105,7 +105,7 @@ class crm_lead2partner(osv.osv_memory):
res.update({'opportunity_ids': data})
return res
def open_create_partner(self, cr, uid, ids, context=None):
"""
This function Opens form of create partner.
@ -185,10 +185,15 @@ class crm_lead2partner(osv.osv_memory):
if data.partner_id:
partner_id = data.partner_id.id
contact_id = partner_obj.address_get(cr, uid, [partner_id])['default']
self.assign_partner(cr, uid, lead.id, partner_id)
partner_ids.append(partner_id)
return partner_ids
def assign_partner(self, cr, uid, lead_id, partner_id):
self.pool.get("crm.lead").write(cr, uid, [lead_id], {'partner_id' : partner_id})
def make_partner(self, cr, uid, ids, context=None):
"""
This function Makes partner based on action.
@ -207,19 +212,8 @@ class crm_lead2partner(osv.osv_memory):
mod_obj = self.pool.get('ir.model.data')
result = mod_obj._get_id(cr, uid, 'base', 'view_res_partner_filter')
res = mod_obj.read(cr, uid, result, ['res_id'])
value = {
'domain': "[]",
'view_type': 'form',
'view_mode': 'form,tree',
'res_model': 'res.partner',
'res_id': partner_ids and int(partner_ids[0]) or False,
'view_id': False,
'context': context,
'type': 'ir.actions.act_window',
'search_view_id': res['res_id']
}
return value
print partner_ids
return {'type': 'ir.actions.act_window_close'}
crm_lead2partner()

View File

@ -10,8 +10,6 @@
<field name="arch" type="xml">
<form string="Create a Partner">
<separator string="Create a Partner" colspan="4" />
<label string="Are you sure you want to create a partner based on this lead ?" colspan="4"/>
<label string="You may have to verify that this partner does not exist already." colspan="4"/>
<field name="action"/>
<group attrs="{'invisible':[('action','!=','exist')]}">
<field name="partner_id" attrs="{'required': [('action', '=', 'exist')]}"/>

View File

@ -11,7 +11,14 @@
<field name="arch" type="xml">
<form string="Merge Opportunities">
<separator string="Select Opportunities" colspan="4"/>
<field name="opportunity_ids" nolabel="1" colspan="4" width="550" height="300"/>
<field name="opportunity_ids" nolabel="1" colspan="4" width="550" height="300" >
<tree>
<field name="name" />
<field name="partner_id" />
<field name="user_id" />
<field name="section_id" />
</tree>
</field>
<separator colspan="4"/>
<group col="4" colspan="4">
<button string="_Cancel" icon="gtk-cancel" special="cancel" />