summaryrefslogtreecommitdiff
path: root/geoengine_partner/models/partner.py
diff options
context:
space:
mode:
Diffstat (limited to 'geoengine_partner/models/partner.py')
-rw-r--r--geoengine_partner/models/partner.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/geoengine_partner/models/partner.py b/geoengine_partner/models/partner.py
index 5f2151e..415094a 100644
--- a/geoengine_partner/models/partner.py
+++ b/geoengine_partner/models/partner.py
@@ -1,9 +1,10 @@
# 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
+from pyproj import Transformer
+from shapely.geometry import Point
+from odoo import fields, models, api
class ResPartner(models.Model):
@@ -13,10 +14,28 @@ class ResPartner(models.Model):
geo_point = fields.GeoPoint("Geopoint")
- """
- TODO: Implement a call to GeoPoint.from_latlon(...)
@api.onchange('partner_latitude', 'partner_longitude')
- def _onchange_coordinates(self):
+ def _(self):
+ odoo_proj = 'epsg:3857'
+ gps_proj = 'epsg:4326'
+ transformer = Transformer.from_crs(gps_proj, odoo_proj)
+ odoo_coords = transformer.transform(
+ self.partner_longitude,
+ self.partner_latitude
+ )
+
+ if self.partner_longitude and self.partner_latitude:
+ print(vars(self.geo_point))
+ self.geo_point = (
+ '{"type": "Point", "coordinates": [' +
+ f"{odoo_coords[0]},{odoo_coords[1]}" + ']}'
+ )
+ print(vars(self.geo_point))
+ else:
+ return False
+ """
+ TODO: Add a call to redraw the widget on change; Currently you have to
+ cycle between edit and save buttons.
"""
@api.onchange('geo_point')
@@ -26,6 +45,7 @@ class ResPartner(models.Model):
transformer = Transformer.from_crs(odoo_proj, gps_proj)
gps_point = transformer.transform(
self.geo_point.context[0], self.geo_point.context[1])
+ print(vars(self.geo_point))
self.partner_longitude = gps_point[0]
self.partner_latitude = gps_point[1]
self.date_localization = datetime.today()