diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py index 0a3e21b6e94..b98d20adc84 100644 --- a/addons/base_contact/base_contact.py +++ b/addons/base_contact/base_contact.py @@ -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() diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml index 49147fb2112..42f2e51b2ee 100644 --- a/addons/base_contact/base_contact_view.xml +++ b/addons/base_contact/base_contact_view.xml @@ -52,7 +52,7 @@