From 1240f169a3cae7b931b16c7c1f45fe161757acc2 Mon Sep 17 00:00:00 2001 From: Richard Sassine Date: Wed, 2 Jun 2021 13:55:28 +0300 Subject: Added coordinate fields to Customer Portal --- geoengine_partner/__init__.py | 1 + geoengine_partner/__manifest__.py | 2 +- .../__pycache__/__init__.cpython-36.pyc | Bin 188 -> 222 bytes geoengine_partner/controllers/__init__.py | 1 + .../controllers/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 198 bytes .../controllers/__pycache__/main.cpython-36.pyc | Bin 0 -> 557 bytes geoengine_partner/controllers/main.py | 5 +++++ .../models/__pycache__/partner.cpython-36.pyc | Bin 1542 -> 1732 bytes geoengine_partner/models/partner.py | 17 +++++++++++------ geoengine_partner/requirements.txt | 1 + geoengine_partner/views/portal_templates.xml | 19 +++++++++++++++++++ 11 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 geoengine_partner/controllers/__init__.py create mode 100644 geoengine_partner/controllers/__pycache__/__init__.cpython-36.pyc create mode 100644 geoengine_partner/controllers/__pycache__/main.cpython-36.pyc create mode 100644 geoengine_partner/controllers/main.py create mode 100644 geoengine_partner/requirements.txt create mode 100644 geoengine_partner/views/portal_templates.xml diff --git a/geoengine_partner/__init__.py b/geoengine_partner/__init__.py index 0650744..f7209b1 100644 --- a/geoengine_partner/__init__.py +++ b/geoengine_partner/__init__.py @@ -1 +1,2 @@ from . import models +from . import controllers diff --git a/geoengine_partner/__manifest__.py b/geoengine_partner/__manifest__.py index eadc135..37967de 100644 --- a/geoengine_partner/__manifest__.py +++ b/geoengine_partner/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "website": "https://github.com/OCA/geospatial", "depends": ["base", "base_geoengine", "base_geolocalize"], - "data": ["views/partner.xml"], + "data": ["views/partner.xml", "views/portal_templates.xml"], "installable": True, "application": True, } diff --git a/geoengine_partner/__pycache__/__init__.cpython-36.pyc b/geoengine_partner/__pycache__/__init__.cpython-36.pyc index 2c8c710..b3a9a3d 100644 Binary files a/geoengine_partner/__pycache__/__init__.cpython-36.pyc and b/geoengine_partner/__pycache__/__init__.cpython-36.pyc differ diff --git a/geoengine_partner/controllers/__init__.py b/geoengine_partner/controllers/__init__.py new file mode 100644 index 0000000..12a7e52 --- /dev/null +++ b/geoengine_partner/controllers/__init__.py @@ -0,0 +1 @@ +from . import main diff --git a/geoengine_partner/controllers/__pycache__/__init__.cpython-36.pyc b/geoengine_partner/controllers/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..3f48558 Binary files /dev/null and b/geoengine_partner/controllers/__pycache__/__init__.cpython-36.pyc differ diff --git a/geoengine_partner/controllers/__pycache__/main.cpython-36.pyc b/geoengine_partner/controllers/__pycache__/main.cpython-36.pyc new file mode 100644 index 0000000..f9d571d Binary files /dev/null and b/geoengine_partner/controllers/__pycache__/main.cpython-36.pyc differ diff --git a/geoengine_partner/controllers/main.py b/geoengine_partner/controllers/main.py new file mode 100644 index 0000000..cbeecdf --- /dev/null +++ b/geoengine_partner/controllers/main.py @@ -0,0 +1,5 @@ +from odoo import http +from odoo.addons.portal.controllers.portal import CustomerPortal + +class CustomerPortalExtended(CustomerPortal): + OPTIONAL_BILLING_FIELDS = ["zipcode", "state_id", "vat", "company_name", "partner_longitude", "partner_latitude"] diff --git a/geoengine_partner/models/__pycache__/partner.cpython-36.pyc b/geoengine_partner/models/__pycache__/partner.cpython-36.pyc index 553a19f..5364b33 100644 Binary files a/geoengine_partner/models/__pycache__/partner.cpython-36.pyc and b/geoengine_partner/models/__pycache__/partner.cpython-36.pyc differ diff --git a/geoengine_partner/models/partner.py b/geoengine_partner/models/partner.py index fee43c2..5f2151e 100644 --- a/geoengine_partner/models/partner.py +++ b/geoengine_partner/models/partner.py @@ -13,6 +13,12 @@ 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): + """ + @api.onchange('geo_point') def _onchange_geo_point(self): odoo_proj = 'epsg:3857' @@ -20,19 +26,18 @@ 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]) - self.partner_longitude = float(gps_point[0]) - self.partner_latitude = float(gps_point[1]) + self.partner_longitude = gps_point[0] + self.partner_latitude = gps_point[1] self.date_localization = datetime.today() def navigate_from_noc(self): - noc_longitude = 34.1244 - noc_latitude = 35.6666 + 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"fossgis_osrm_car&route={NOC_LONGITUDE}%2C{NOC_LATITUDE}" + \ f"%3B{longitude}%2C{latitude}" return { 'type': 'ir.actions.act_url', diff --git a/geoengine_partner/requirements.txt b/geoengine_partner/requirements.txt new file mode 100644 index 0000000..89db7aa --- /dev/null +++ b/geoengine_partner/requirements.txt @@ -0,0 +1 @@ +pyproj diff --git a/geoengine_partner/views/portal_templates.xml b/geoengine_partner/views/portal_templates.xml new file mode 100644 index 0000000..a29584f --- /dev/null +++ b/geoengine_partner/views/portal_templates.xml @@ -0,0 +1,19 @@ + + + + + + -- cgit v1.2.3