|
|
@ -29,7 +29,14 @@ class MapUrl(models.Model): |
|
|
|
_description = 'Map System' |
|
|
|
|
|
|
|
name = fields.Char(string='Map Provider', required=True) |
|
|
|
url = fields.Char(string='URL', required=True) |
|
|
|
address_url = fields.Char( |
|
|
|
string='URL that uses the address', |
|
|
|
help="Odoo will add the address as string at the end of this URL.") |
|
|
|
lat_lon_url = fields.Char( |
|
|
|
string='URL that uses latitude and longitude', |
|
|
|
help="In this URL, {LATITUDE} will be replaced by the latitude and " |
|
|
|
"{LONGITUDE} will be replaced by the longitude (requires the module " |
|
|
|
"base_geolocalize)") |
|
|
|
|
|
|
|
|
|
|
|
class ResUsers(models.Model): |
|
|
@ -58,17 +65,30 @@ class ResPartner(models.Model): |
|
|
|
raise Warning( |
|
|
|
_('Missing map provider: ' |
|
|
|
'you should set it in your preferences.')) |
|
|
|
url = self.env.user.context_map_url_id.url |
|
|
|
if self.street: |
|
|
|
url += self.street |
|
|
|
if self.street2: |
|
|
|
url += ' ' + self.street2 |
|
|
|
if self.city: |
|
|
|
url += ' ' + self.city |
|
|
|
if self.state_id: |
|
|
|
url += ' ' + self.state_id.name |
|
|
|
if self.country_id: |
|
|
|
url += ' ' + self.country_id.name |
|
|
|
map_url = self.env.user.context_map_url_id |
|
|
|
if ( |
|
|
|
map_url.lat_lon_url and |
|
|
|
hasattr(self, 'partner_latitude') and |
|
|
|
self.partner_latitude and self.partner_longitude): |
|
|
|
url = map_url.lat_lon_url.replace( |
|
|
|
'{LATITUDE}', unicode(self.partner_latitude)) |
|
|
|
url = url.replace('{LONGITUDE}', unicode(self.partner_longitude)) |
|
|
|
else: |
|
|
|
if not map_url.address_url: |
|
|
|
raise Warning( |
|
|
|
_("Missing parameter 'URL that uses the address' " |
|
|
|
"for map provider '%s'.") % map_url.name) |
|
|
|
url = map_url.address_url |
|
|
|
if self.street: |
|
|
|
url += self.street |
|
|
|
if self.street2: |
|
|
|
url += ' ' + self.street2 |
|
|
|
if self.city: |
|
|
|
url += ' ' + self.city |
|
|
|
if self.state_id: |
|
|
|
url += ' ' + self.state_id.name |
|
|
|
if self.country_id: |
|
|
|
url += ' ' + self.country_id.name |
|
|
|
return { |
|
|
|
'type': 'ir.actions.act_url', |
|
|
|
'url': url, |
|
|
|