[FIX] Base_contact:\n JOB :When partner is set, address is required.Added on_change. \n Address:Use domain instead of value in context

bzr revid: jvo@tinyerp.com-20100519095812-m03822hryvyr3hzg
This commit is contained in:
Jay (Open ERP) 2010-05-19 15:28:12 +05:30
parent 27826feaf7
commit e5cc5d6fa2
2 changed files with 43 additions and 38 deletions

View File

@ -19,7 +19,6 @@
#
##############################################################################
import netsvc
from osv import fields, osv
class res_partner_contact(osv.osv):
@ -116,23 +115,6 @@ res_partner_contact()
class res_partner_address(osv.osv):
def search(self, cr, user, args, offset=0, limit=None, order=None,
context=None, count=False):
""" search parnter address
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param user: the current user
@param args: list of tuples of form [(name_of_the_field, operator, value), ...].
@param offset: The Number of Results to Pass
@param limit: The Number of Results to Return
@param context: A standard dictionary for contextual values
"""
if context is None:
context = {}
if context.get('address_partner_id',False):
args.append(('partner_id', '=', context['address_partner_id']))
return super(res_partner_address, self).search(cr, user, args, offset, limit, order, context, count)
#overriding of the name_get defined in base in order to remove the old contact name
def name_get(self, cr, user, ids, context={}):
"""
@ -227,10 +209,10 @@ class res_partner_job(osv.osv):
_order = 'sequence_contact'
_columns = {
'name': fields.related('address_id','partner_id', type='many2one',\
'name': fields.related('address_id', 'partner_id', type='many2one',\
relation='res.partner', string='Partner', help="You may\
enter Address first,Partner will be linked automatically if any."),
'address_id': fields.many2one('res.partner.address','Address', \
'address_id': fields.many2one('res.partner.address', 'Address', domain=[('partner_id', '=', name)], \
help='Address which is linked to the Partner'),
'contact_id': fields.many2one('res.partner.contact','Contact', required=True, ondelete='cascade'),
'function_id': fields.many2one('res.partner.function','Partner Function', \
@ -254,7 +236,34 @@ class res_partner_job(osv.osv):
'sequence_contact' : lambda *a: 0,
'state': lambda *a: 'current',
}
def onchange_partner(self, cr, uid, _, partner_id, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user,
@param _: List of IDs,
@partner_id : ID of the Partner selected,
@param context: A standard dictionary for contextual values
"""
return {'value': {'address_id': False}}
def onchange_address(self, cr, uid, _, address_id, context=None):
"""
@@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user,
@param _: List of IDs,
@address_id : ID of the Address selected,
@param context: A standard dictionary for contextual values
"""
partner_id = False
if address_id:
address = self.pool.get('res.partner.address')\
.browse(cr, uid, address_id, context)
partner_id = address.partner_id.id
return {'value': {'name': partner_id}}
res_partner_job()

View File

@ -52,7 +52,7 @@
<form string="Functions and Addresses">
<group string="Partner" colspan="2" col="4">
<field name="function_id"/>
<field name="address_id" context="{'address_partner_id': name}"/>
<field name="address_id"/>
<field name="name"/>
<field name="date_start" />
<field name="date_stop" />
@ -357,23 +357,19 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Contact Functions">
<notebook>
<page string="General">
<field name="name" select="1"/>
<field name="address_id" select="1" context="{'address_partner_id': name}"/>
<field name="contact_id" select="1"/>
<field name="function_id" select="1"/>
<field name="email" widget="email"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="sequence_contact" groups="base.group_user"/>
<field name="sequence_partner" groups="base.group_user"/>
<field name="date_start" groups="base.group_user"/>
<field name="date_stop" groups="base.group_user"/>
<field name="state" />
</page>
</notebook>
<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="contact_id" select="1"/>
<field name="function_id" select="1"/>
<field name="email" widget="email"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="sequence_contact" groups="base.group_user"/>
<field name="sequence_partner" groups="base.group_user"/>
<field name="date_start" groups="base.group_user"/>
<field name="date_stop" groups="base.group_user"/>
<field name="state" />
</form>
</field>
</record>