# 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', }