[IMP] base: contry specific address format cleanup and improvements
bzr revid: qdp-launchpad@openerp.com-20111201144055-htokze3jly7ent02
This commit is contained in:
parent
f3a9c71a68
commit
b2678acf99
|
@ -31,7 +31,7 @@ class Country(osv.osv):
|
||||||
'code': fields.char('Country Code', size=2,
|
'code': fields.char('Country Code', size=2,
|
||||||
help='The ISO country code in two chars.\n'
|
help='The ISO country code in two chars.\n'
|
||||||
'You can use this field for quick search.', required=True),
|
'You can use this field for quick search.', required=True),
|
||||||
'address_format': fields.text('Address Format')
|
'address_format': fields.text('Address Format'),
|
||||||
}
|
}
|
||||||
_sql_constraints = [
|
_sql_constraints = [
|
||||||
('name_uniq', 'unique (name)',
|
('name_uniq', 'unique (name)',
|
||||||
|
|
|
@ -26,9 +26,7 @@
|
||||||
<form string="Country">
|
<form string="Country">
|
||||||
<field name="name" select="1"/>
|
<field name="name" select="1"/>
|
||||||
<field name="code" select="1"/>
|
<field name="code" select="1"/>
|
||||||
<field name="address_format" nolabel="1" colspan="4"/>
|
<field name="address_format" colspan="4" groups="base.group_extended"/>
|
||||||
<separator colspan="4" string="Note"/>
|
|
||||||
<label align="0.0" colspan="4" width="900" string="" />
|
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -356,24 +356,30 @@ class res_partner_address(osv.osv):
|
||||||
def get_city(self, cr, uid, id):
|
def get_city(self, cr, uid, id):
|
||||||
return self.browse(cr, uid, id).city
|
return self.browse(cr, uid, id).city
|
||||||
|
|
||||||
def display_address(self, cr, uid, context, address_obj): #,field_list=[]):
|
def display_address(self, cr, uid, address):
|
||||||
# if isinstance(address_id, list):
|
'''
|
||||||
# address_id = address_id[0]
|
The purpose of this function is to build and return an address formatted accordingly to the
|
||||||
# address_obj = self.browse(cr, uid, address_id)
|
standards of the country where it belongs.
|
||||||
|
|
||||||
address_field = ['title','street','street2','zip','city']
|
:param address: browse record of the res.partner.address to format
|
||||||
args = {}
|
:returns: the address formatted in a display that fit its country habits (or the default ones
|
||||||
for field in address_field :
|
if not country is specified)
|
||||||
# args[field] = field_list and field in field_list and getattr(address_obj,field) or getattr(address_obj,field) or ''
|
:rtype: string
|
||||||
args[field] = getattr(address_obj,field) and getattr(address_obj,field) or ''
|
'''
|
||||||
#TODO
|
# get the address format
|
||||||
args['state_code'] = address_obj.state_id and address_obj.state_id.code or ''
|
address_format = address.country_id and address.country_id.address_format or \
|
||||||
args['state_name'] = address_obj.state_id and address_obj.state_id.name or ''
|
|
||||||
args['country_code'] = address_obj.country_id and address_obj.country_id.code or ''
|
|
||||||
args['country_name'] = address_obj.country_id and address_obj.country_id.name or ''
|
|
||||||
# If no country is defined - just in case
|
|
||||||
address_format = address_obj.country_id and address_obj.country_id.address_format or \
|
|
||||||
'%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s'
|
'%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s'
|
||||||
|
# get the information that will be injected into the display format
|
||||||
|
args = {
|
||||||
|
'state_code': address.state_id and address.state_id.code or '',
|
||||||
|
'state_name': address.state_id and address.state_id.name or '',
|
||||||
|
'country_code': address.country_id and address.country_id.code or '',
|
||||||
|
'country_name': address.country_id and address.country_id.name or '',
|
||||||
|
}
|
||||||
|
address_field = ['title', 'street', 'street2', 'zip', 'city']
|
||||||
|
for field in address_field :
|
||||||
|
args[field] = getattr(address, field) or ''
|
||||||
|
|
||||||
return address_format % args
|
return address_format % args
|
||||||
|
|
||||||
res_partner_address()
|
res_partner_address()
|
||||||
|
|
|
@ -170,6 +170,7 @@ class rml_parse(object):
|
||||||
'setHtmlImage' : self.set_html_image,
|
'setHtmlImage' : self.set_html_image,
|
||||||
'strip_name' : self._strip_name,
|
'strip_name' : self._strip_name,
|
||||||
'time' : time,
|
'time' : time,
|
||||||
|
'display_address': self.display_address,
|
||||||
# more context members are setup in setCompany() below:
|
# more context members are setup in setCompany() below:
|
||||||
# - company_id
|
# - company_id
|
||||||
# - logo
|
# - logo
|
||||||
|
@ -313,6 +314,9 @@ class rml_parse(object):
|
||||||
res='%s %s'%(currency_obj.symbol, res)
|
res='%s %s'%(currency_obj.symbol, res)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def display_address(self, address_browse_record):
|
||||||
|
return self.pool.get('res.partner.address').display_address(self.cr, self.uid, address_browse_record)
|
||||||
|
|
||||||
def repeatIn(self, lst, name,nodes_parent=False):
|
def repeatIn(self, lst, name,nodes_parent=False):
|
||||||
ret_lst = []
|
ret_lst = []
|
||||||
for id in lst:
|
for id in lst:
|
||||||
|
|
Loading…
Reference in New Issue