'sequence_contact' : lambda *a: 0,
'state': lambda *a: 'current',
}
-
- def onchange_name(self, cr, uid, ids, address_id='', name='', context=None):
- return {'value': {'address_id': address_id}, 'domain':{'partner_id':'name'}}
-
+
+ def onchange_name(self, cr, uid, ids, partner_id='', address_id='', context=None):
+ address_id = False
+ if partner_id:
+ partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
+ addresses = [a.id for a in partner.address if a.type == 'contact'] or [a.id for a in partner.address]
+ address_id = addresses and addresses[0] or False
+
+ domain = partner_id and [('partner_id', '=', partner_id)] or []
+
+ return {'value': {'address_id': address_id}, 'domain': {'address_id': domain}}
+
def onchange_partner(self, cr, uid, _, partner_id, context=None):
"""
@param self: The object pointer
"""
return {'value': {'address_id': False}}
- def onchange_address(self, cr, uid, _, address_id, context=None):
+ def onchange_address(self, cr, uid, _, name, address_id, context=None):
"""
@@param self: The object pointer
@param cr: the current row, from the database cursor,
"""
partner_id = False
if address_id:
- address = self.pool.get('res.partner.address')\
- .browse(cr, uid, address_id, context=context)
+ address = self.pool.get('res.partner.address').browse(cr, uid, address_id, context=context)
partner_id = address.partner_id.id
- return {'value': {'name': partner_id}}
-
+
+ domain = name and [('partner_id', '=', name)] or []
+
+ return {'value': {'name': partner_id}, 'domain': {'address_id': domain}}
+
res_partner_job()
<group colspan="4" col="4">
<field name="sequence_contact" />
<field name="function"/>
- <field name="name" on_change="onchange_name(name,address_id)"/>
- <field name="address_id"/>
+ <field name="name" on_change="onchange_name(name, address_id)"/>
+ <field name="address_id" on_change="onchange_address(name, address_id)" />
<field name="date_start" />
<field name="date_stop" />
<field name="state" />
<field name="sequence_contact" string="Seq."/>
<field name="function"/>
<field name="name" on_change="onchange_partner(name)"/>
- <field name="address_id" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(address_id)"/>
+ <field name="address_id" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(name, address_id)"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="arch" type="xml">
<form string="Contact Functions">
<field name="name" select="1" on_change="onchange_partner(name)"/>
- <field name="address_id" select="1" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(address_id)"/>
+ <field name="address_id" select="1" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(name, address_id)"/>
<field name="contact_id" select="1"/>
<field name="function" select="1"/>
<field name="email" widget="email"/>