diff options
| -rw-r--r-- | geoengine_partner/__init__.py | 1 | ||||
| -rw-r--r-- | geoengine_partner/__manifest__.py | 2 | ||||
| -rw-r--r-- | geoengine_partner/__pycache__/__init__.cpython-36.pyc | bin | 188 -> 222 bytes | |||
| -rw-r--r-- | geoengine_partner/controllers/__init__.py | 1 | ||||
| -rw-r--r-- | geoengine_partner/controllers/__pycache__/__init__.cpython-36.pyc | bin | 0 -> 198 bytes | |||
| -rw-r--r-- | geoengine_partner/controllers/__pycache__/main.cpython-36.pyc | bin | 0 -> 557 bytes | |||
| -rw-r--r-- | geoengine_partner/controllers/main.py | 5 | ||||
| -rw-r--r-- | geoengine_partner/models/__pycache__/partner.cpython-36.pyc | bin | 1542 -> 1732 bytes | |||
| -rw-r--r-- | geoengine_partner/models/partner.py | 17 | ||||
| -rw-r--r-- | geoengine_partner/requirements.txt | 1 | ||||
| -rw-r--r-- | geoengine_partner/views/portal_templates.xml | 19 |
11 files changed, 39 insertions, 7 deletions
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 Binary files differindex 2c8c710..b3a9a3d 100644 --- a/geoengine_partner/__pycache__/__init__.cpython-36.pyc +++ b/geoengine_partner/__pycache__/__init__.cpython-36.pyc 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 Binary files differnew file mode 100644 index 0000000..3f48558 --- /dev/null +++ b/geoengine_partner/controllers/__pycache__/__init__.cpython-36.pyc diff --git a/geoengine_partner/controllers/__pycache__/main.cpython-36.pyc b/geoengine_partner/controllers/__pycache__/main.cpython-36.pyc Binary files differnew file mode 100644 index 0000000..f9d571d --- /dev/null +++ b/geoengine_partner/controllers/__pycache__/main.cpython-36.pyc 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 Binary files differindex 553a19f..5364b33 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 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + <template id="portal_geo_fields" inherit_id="portal.portal_my_details"> + <xpath expr="//div[hasclass('col-lg-8')]//div[hasclass('row')]" position="inside"> + <div class="clearfix"/> + <div t-attf-class="form-group #{error.get('partner_longitude') and 'o_has_error' or ''} col-xl-6"> + <label class="col-form-label label-optional" for="partner_longitude">Longitude</label> + <input type="text" name="partner_longitude" t-attf-class="form-control #{error.get('partner_longitude') and 'is-invalid' or ''}" t-att-value="partner_longitude or partner.partner_longitude" /> + </div> + <div t-attf-class="form-group #{error.get('partner_latitude') and 'o_has_error' or ''} col-xl-6"> + <label class="col-form-label label-optional" for="partner_latitude">Longitude</label> + <input type="text" name="partner_latitude" t-attf-class="form-control #{error.get('partner_latitude') and 'is-invalid' or ''}" t-att-value="partner_latitude or partner.partner_latitude" /> + </div> + <a role="button" href='https://www.openstreetmap.org/#map=9/33.7620/35.8827' class="btn btn-sm btn-link"><i class="fa fa-map"/> Get Longitude/Latitude Manually</a> + </xpath> + </template> + </data> +</odoo> |
