Mercurial > hgweb > health
changeset 5063:ffc27c3ecc25
Fix bug #62021, DU: 5e not possible
[x] update from int to varchar street number to meet openstreetmap requirements
[x] Include the Unit parameter to be use in the form and in the OSM queries as a valid address subunit
[x] Use "Unit" label for address_street_bis field
[x] Use f-string in the address representation
[x] Fix parent subdivsion
| author | Luis Falcon <falcon@gnuhealth.org> |
|---|---|
| date | Wed, 16 Feb 2022 17:43:12 +0000 |
| parents | 5c5c827c0305 |
| children | c84902693efd |
| files | tryton/health/health.py tryton/health/view/gnuhealth_du.xml tryton/scripts/upgrade/4.0/before.sql |
| diffstat | 3 files changed, 28 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/tryton/health/health.py +++ b/tryton/health/health.py @@ -110,37 +110,40 @@ du_addr = '' # Street if (self.address_street): - du_addr = str(self.address_street) + ' ' + \ - str(self.address_street_number) + "\n" + du_addr = f"{self.address_street} {self.address_street_number} " \ + f"{self.address_street_bis}\n" + + if (self.address_city): + du_addr = f"{du_addr}{self.address_city}\n" # Grab the parent subdivisions if (self.address_subdivision): - du_addr = du_addr + \ - str(self.get_parent(subdivision=self.address_subdivision)) + du_addr = f"{du_addr}\n" \ + f"{self.get_parent(subdivision=self.address_subdivision)}" # Zip Code if (self.address_zip): - du_addr = du_addr + " - " + self.address_zip + du_addr = f"{du_addr} - {self.address_zip}" # Country if (self.address_country): - du_addr = du_addr + "\n" + self.address_country.rec_name + du_addr = f"{du_addr}\n {self.address_country.rec_name}" return du_addr name = fields.Char('Code', required=True) desc = fields.Char('Desc') address_street = fields.Char('Street') - address_street_number = fields.Integer('Number') - address_street_bis = fields.Char('Apartment') + address_street_number = fields.Char('Number') + address_street_bis = fields.Char('Unit') address_district = fields.Char( 'District', help="Neighborhood, Village, Barrio....") address_municipality = fields.Char( 'Municipality', help="Municipality, Township, county ..") - address_city = fields.Char('City') - address_zip = fields.Char('Zip Code') + address_city = fields.Char('City', help="City / Municipality") + address_zip = fields.Char('Zip') address_country = fields.Many2One( 'country.country', 'Country', help='Country') @@ -223,8 +226,8 @@ members = fields.One2Many('party.party', 'du', 'Members', readonly=True) @fields.depends('latitude', 'longitude', 'address_street', - 'address_street_number', 'address_district', - 'address_municipality', 'address_city', + 'address_street_bis', 'address_street_number', + 'address_district', 'address_municipality', 'address_city', 'address_zip', 'address_subdivision', 'address_country') def on_change_with_urladdr(self): # Generates the URL to be used in OpenStreetMap @@ -247,11 +250,13 @@ else: state = country = postalcode = city = municipality = \ - street = number = '' + street = number = unit = '' if self.address_street_number is not None: - number = str(self.address_street_number) + number = self.address_street_number if self.address_street: street = self.address_street + if self.address_street_bis: + unit = self.address_street_bis if self.address_municipality: municipality = self.address_municipality if self.address_city: @@ -266,7 +271,9 @@ parts['netloc'] = 'nominatim.openstreetmap.org' parts['path'] = 'search' parts['query'] = urlencode( - {'street': ' '.join([number, street]).strip(), + {'street': ' '.join( + [number, street]).strip(), + 'unit': unit, 'county': municipality, 'city': city, 'state': state,
--- a/tryton/health/view/gnuhealth_du.xml +++ b/tryton/health/view/gnuhealth_du.xml @@ -13,6 +13,9 @@ <field name="address_street_number"/> <label name="address_street_bis"/> <field name="address_street_bis"/> + <newline/> + <label name="address_city"/> + <field name="address_city"/> <label name="address_zip"/> <field name="address_zip"/> <label name="address_country"/>
--- a/tryton/scripts/upgrade/4.0/before.sql +++ b/tryton/scripts/upgrade/4.0/before.sql @@ -45,5 +45,7 @@ UPDATE account_invoice_line SET party = (SELECT party FROM account_invoice WHERE id = account_invoice_line.invoice) WHERE party IS NOT NULL; -- [SQL] before update, add access on field -ALTER TABLE ir_model_field ADD COLUMN "access" BOOLEAN +ALTER TABLE ir_model_field ADD COLUMN "access" BOOLEAN; +-- Update / cast Domiciliary Unit field from INT to VARCHAR to meet openstreetmap requirements +alter table gnuhealth_du alter column "address_street_number" SET DATA type varchar using address_street_number::varchar;
