From 9d3eeeb5c7d4055b34bc0768387952850ed78668 Mon Sep 17 00:00:00 2001 From: Richard Sassine Date: Mon, 31 May 2021 19:10:48 +0300 Subject: Added external pathing from NOC and traditional coordinates support. --- geoengine_partner/models/partner.py | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 geoengine_partner/models/partner.py (limited to 'geoengine_partner/models/partner.py') 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', + } -- cgit v1.2.3