[IMP] add user wizard on res.partner

bzr revid: rco@openerp.com-20110427075306-ns4tpzooswvuz0ma
This commit is contained in:
Raphael Collet 2011-04-27 09:53:06 +02:00
parent 9e514bb887
commit dc4e6b6f5a
2 changed files with 29 additions and 10 deletions

View File

@ -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

View File

@ -1,8 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- User Wizard on res.partner.address -->
<act_window id="portal_user_wizard_action"
<!-- wizard action on res.partner -->
<act_window id="partner_user_wizard_action"
name="Create Portal User"
src_model="res.partner"
res_model="res.portal.user_wizard"
view_type="form" view_mode="form"
key2="client_action_multi" target="new"/>
<!-- wizard action on res.partner.address -->
<act_window id="address_user_wizard_action"
name="Create Portal User"
src_model="res.partner.address"
res_model="res.portal.user_wizard"
@ -10,7 +18,7 @@
key2="client_action_multi" target="new"/>
<!-- user_wizard view -->
<record id="portal_user_wizard_view" model="ir.ui.view">
<record id="user_wizard_view" model="ir.ui.view">
<field name="name">Create Portal User</field>
<field name="model">res.portal.user_wizard</field>
<field name="type">form</field>