Files
tryton/address.py
T

65 lines
2.5 KiB
Python

from trytond.osv import fields, OSV
STATES = {
'readonly': "active == False",
}
class Address(OSV):
"Partner Address"
_name = 'partner.address'
_description = __doc__
_order = 'partner, sequence, id'
partner = fields.Many2One('partner.partner', 'Partner', required=True,
ondelete='cascade', select=True, states=STATES)
name = fields.Char('Contact Name', size=64, states=STATES)
street = fields.Char('Street', size=128, states=STATES)
streetbis = fields.Char('Street (bis)', size=128, states=STATES)
zip = fields.Char('Zip', change_default=True, size=24,
states=STATES)
city = fields.Char('City', size=128, states=STATES)
country = fields.Many2One('partner.country', 'Country',
states=STATES)
state = fields.Many2One("partner.country.state", 'State',
domain="[('country', '=', country)]", states=STATES)
email = fields.Char('E-Mail', size=64, states=STATES)
phone = fields.Char('Phone', size=64, states=STATES)
fax = fields.Char('Fax', size=64, states=STATES)
mobile = fields.Char('Mobile', size=64, states=STATES)
active = fields.Boolean('Active')
sequence = fields.Integer("Sequence")
def default_active(self, cursor, user, context=None):
return 1
def default_sequence(self, cursor, user, context=None):
return 10
def name_get(self, cursor, user, ids, context=None):
if not len(ids):
return []
res = []
for address in self.browse(cursor, user, ids, context):
res.append((address.id, ", ".join(x for x in [address.name,
address.partner.name, address.zip, address.city] if x)))
return res
def name_search(self, cursor, user, name, args=None, operator='ilike',
context=None, limit=80):
if not args:
args=[]
ids = self.search(cursor, user, [('zip','=',name)] + args,
limit=limit, context=context)
if not ids:
ids = self.search(cursor, user, [('city',operator,name)] + args,
limit=limit, context=context)
if name:
ids += self.search(cursor, user, [('name',operator,name)] + args,
limit=limit, context=context)
ids += self.search(cursor, user, [('partner',operator,name)] + args,
limit=limit, context=context)
return self.name_get(cursor, user, ids, context=context)
Address()