diff options
Diffstat (limited to 'geoengine_partner/models/partner.py')
| -rw-r--r-- | geoengine_partner/models/partner.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/geoengine_partner/models/partner.py b/geoengine_partner/models/partner.py new file mode 100644 index 0000000..fee43c2 --- /dev/null +++ b/geoengine_partner/models/partner.py @@ -0,0 +1,42 @@ +# Copyright 2011-2020 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields, models, api +from pyproj import Transformer +from datetime import datetime + + +class ResPartner(models.Model): + """Add geo_point to partner using a function filed""" + + _inherit = "res.partner" + + geo_point = fields.GeoPoint("Geopoint") + + @api.onchange('geo_point') + def _onchange_geo_point(self): + odoo_proj = 'epsg:3857' + gps_proj = 'epsg:4326' + transformer = Transformer.from_crs(odoo_proj, gps_proj) + gps_point = transformer.transform( + self.geo_point.context[0], self.geo_point.context[1]) + self.partner_longitude = float(gps_point[0]) + self.partner_latitude = float(gps_point[1]) + self.date_localization = datetime.today() + + def navigate_from_noc(self): + noc_longitude = 34.1244 + noc_latitude = 35.6666 + longitude = self.partner_longitude + latitude = self.partner_latitude + zoom_level = 17 + + url = "https://www.openstreetmap.org/directions?engine=" + \ + f"fossgis_osrm_car&route={noc_longitude}%2C{noc_latitude}" + \ + f"%3B{longitude}%2C{latitude}" + return { + 'type': 'ir.actions.act_url', + 'name': 'Navigate From NOC', + "url" : url, + 'target': 'new', + } |
