[5.0] crm_configuration crashes on partenr's creation with duplicate key
Bug #330171 reported by
Claude Brulé
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Odoo Addons (MOVED TO GITHUB) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When using "Leads" CRM case, first you put prospect name and prospect's contact name.
Then you can convert him to a partner.
If you put the same name twice, it causes IntegrityError: une clé dupliquée rompt la contrainte unique « res_partner_
the create method should be in a try/catch block and raising specific message in that case.
Related branches
To post a comment you must log in.
One solution that works (may be it's not optimistic) :
=== modified file 'crm_configurat ion/wizard/ wizard_ partner_ create. py' on/wizard/ wizard_ partner_ create. py 2009-01-04 22:12:50 +0000 on/wizard/ wizard_ partner_ create. py 2009-02-16 04:37:06 +0000
partner_ obj = pool.get( 'res.partner' )
contact_ obj = pool.get( 'res.partner. address' ) obj.create( cr, uid, { obj.create( cr, uid, { mobile, obj.search( cr, uid, [('name', '=', case.partner_name or case.name)]) except_ wizard( "Warning !", obj.create( cr, uid, { obj.create( cr, uid, { mobile,
--- crm_configurati
+++ crm_configurati
@@ -56,18 +56,26 @@
for case in case_obj.browse(cr, uid, data['ids']):
- partner_id = partner_
- 'name': case.partner_name or case.name,
- 'user_id': case.user_id.id,
- 'comment': case.note,
- })
- contact_id = contact_
- 'partner_id': partner_id,
- 'name': case.partner_name2,
- 'phone': case.partner_phone,
- 'mobile': case.partner_
- 'email': case.email_from
- })
+
+ partner_id = partner_
+ print repr(partner_id)
+
+ if partner_id:
+ raise wizard.
+ _('A partner is already existing with the same name.'))
+ else:
+ partner_id = partner_
+ 'name': case.partner_name or case.name,
+ 'user_id': case.user_id.id,
+ 'comment': case.note,
+ })
+ contact_id = contact_
+ 'partner_id': partner_id,
+ 'name': case.partner_name2,
+ 'phone': case.partner_phone,
+ 'mobile': case.partner_
+ 'email': case.email_from
+ })