From dc4e6b6f5ab2d3f8f303bb0cdef5ad3edab7ae79 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 27 Apr 2011 09:53:06 +0200 Subject: [PATCH] [IMP] add user wizard on res.partner bzr revid: rco@openerp.com-20110427075306-ns4tpzooswvuz0ma --- addons/portal/wizard.py | 25 ++++++++++++++++++------- addons/portal/wizard_view.xml | 14 +++++++++++--- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/addons/portal/wizard.py b/addons/portal/wizard.py index 3c5a5983d2d..7d91cf52b45 100644 --- a/addons/portal/wizard.py +++ b/addons/portal/wizard.py @@ -77,20 +77,31 @@ class user_wizard(osv.osv_memory): ] def default_get(self, cr, uid, fields, context=None): - """ define the default name, login, email, address_id from the active - res.partner.address record """ + """ determine default name, email, address_id and lang from the active + record """ # get existing defaults defs = super(user_wizard, self).default_get(cr, uid, fields, context) - # override name, login, email, address_id, and lang - if context and ('active_id' in context): + # determine a res.partner.address depending on current context + address = None + if context.get('active_model') == 'res.partner.address': address_obj = self.pool.get('res.partner.address') - address = address_obj.browse(cr, uid, context['active_id'], context) + address = address_obj.browse(cr, uid, context.get('active_id'), context) + + elif context.get('active_model') == 'res.partner': + partner_obj = self.pool.get('res.partner') + partner = partner_obj.browse(cr, uid, context.get('active_id'), context) + if partner and partner.address: + # take default address if present, or any address otherwise + addresses = filter(lambda a: a.type == 'default', partner.address) + address = addresses[0] if addresses else partner.address[0] + + # override name, email, address_id, and lang + if address: defs['name'] = address.name defs['email'] = address.email defs['address_id'] = address.id - if address.partner_id and address.partner_id.lang: - defs['lang'] = address.partner_id.lang + defs['lang'] = address.partner_id and address.partner_id.lang return defs diff --git a/addons/portal/wizard_view.xml b/addons/portal/wizard_view.xml index f77d55f363f..cefd311ab5e 100644 --- a/addons/portal/wizard_view.xml +++ b/addons/portal/wizard_view.xml @@ -1,8 +1,16 @@ - - + + + + - + Create Portal User res.portal.user_wizard form