trytond-country_zip/address.py

41 lines
1.3 KiB
Python
Raw Normal View History

2012-06-12 10:49:05 +02:00
# -*- encoding: utf-8 -*-
2012-07-18 11:01:45 +02:00
#This file is part country_zip module for Tryton.
#The COPYRIGHT file at the top level of this repository contains
#the full copyright notices and license terms.
2012-06-12 10:49:05 +02:00
from trytond.model import ModelView, ModelSQL, fields
from trytond.pyson import Eval
from trytond.pool import Pool
STATES = {
'readonly': ~Eval('active'),
}
DEPENDS = ['active']
class Address(ModelSQL, ModelView):
"Address"
_name = 'party.address'
zip = fields.Char('Zip', states=STATES, depends=DEPENDS,
on_change=['zip', 'city', 'subdivision', 'country'])
def on_change_zip(self, vals):
pool = Pool()
country_zip_obj = pool.get('country.zip')
subdivision_obj = pool.get('country.subdivision')
res = {}
if vals.get('zip'):
country_zips = country_zip_obj.search_read([('zip', '=', vals['zip'])])
country_zip = country_zips and country_zips[0] or False
if country_zip:
res['city'] = country_zip['city']
if country_zip['subdivision']:
subdivision = subdivision_obj.read(country_zip['subdivision'])
res['subdivision'] = country_zip['subdivision']
res['country'] = subdivision['country']
return res
Address()