[IMP] improved the functionality inorder to take the customer's individual record in add portal access in case when customer has no contacts

bzr revid: bde@tinyerp.com-20120424054400-r18r007yxi1wzydp
This commit is contained in:
Bharat Devnani (OpenERP)
2012-04-24 11:14:00 +05:30
parent ad3c27b77a
commit c93f2203b3
+21 -6
View File
@@ -91,12 +91,25 @@ class wizard(osv.osv_memory):
def _default_user_ids(self, cr, uid, context):
""" determine default user_ids from the active records """
def create_user_from_address(address):
return { # a user config based on a contact (address)
'name': address.name,
'user_email': extract_email(address.email),
'lang': address.parent_id and address.parent_id.lang or 'en_US',
'partner_id': address.parent_id and address.parent_id.id,
}
res = {}
if isinstance(address, int):
res_partner_obj = self.pool.get('res.partner')
address = res_partner_obj.browse(cr, uid, address, context=context)
lang = address.id and address.lang or 'en_US'
partner_id = address.id
else:
lang = address.parent_id and address.parent_id.lang or 'en_US'
partner_id = address.parent_id and address.parent_id.id
res = {
'name': address.name,
'user_email': extract_email(address.email),
'lang': lang,
'partner_id': partner_id,
}
return res
user_ids = []
if context.get('active_model') == 'res.partner':
@@ -107,6 +120,8 @@ class wizard(osv.osv_memory):
# add one user per contact, or one user if no contact
if p.child_ids:
user_ids.extend(map(create_user_from_address, p.child_ids))
elif p.is_company == False and p.customer == True:
user_ids.extend(map(create_user_from_address, [p.id]))
else:
user_ids.append({'lang': p.lang or 'en_US', 'parent_id': p.id})