diff options
Diffstat (limited to 'geoengine_partner/models')
| -rw-r--r-- | geoengine_partner/models/__pycache__/partner.cpython-36.pyc | bin | 1732 -> 2019 bytes | |||
| -rw-r--r-- | geoengine_partner/models/partner.py | 30 |
2 files changed, 25 insertions, 5 deletions
diff --git a/geoengine_partner/models/__pycache__/partner.cpython-36.pyc b/geoengine_partner/models/__pycache__/partner.cpython-36.pyc Binary files differindex 5364b33..b83462c 100644 --- a/geoengine_partner/models/__pycache__/partner.cpython-36.pyc +++ b/geoengine_partner/models/__pycache__/partner.cpython-36.pyc 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() |
