From b8ae1528a187672e69f39e3f73e6f427bf71661e Mon Sep 17 00:00:00 2001 From: Cedric Paradis Date: Thu, 24 Jul 2025 18:19:34 +0000 Subject: [PATCH 1/5] [MIG] website_geoengine: Migration to 17.0 --- website_geoengine/README.rst | 90 ++++ website_geoengine/__init__.py | 2 + website_geoengine/__manifest__.py | 14 + website_geoengine/controllers/__init__.py | 1 + website_geoengine/controllers/res_partner.py | 19 + website_geoengine/i18n/it.po | 35 ++ website_geoengine/i18n/website_geoengine.pot | 32 ++ website_geoengine/models/__init__.py | 1 + website_geoengine/models/res_partner.py | 123 +++++ website_geoengine/pyproject.toml | 3 + website_geoengine/readme/CONFIGURE.md | 2 + website_geoengine/readme/CONTRIBUTORS.md | 3 + website_geoengine/readme/DESCRIPTION.md | 2 + website_geoengine/readme/USAGE.md | 1 + website_geoengine/static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 436 ++++++++++++++++++ 16 files changed, 764 insertions(+) create mode 100644 website_geoengine/README.rst create mode 100644 website_geoengine/__init__.py create mode 100644 website_geoengine/__manifest__.py create mode 100644 website_geoengine/controllers/__init__.py create mode 100644 website_geoengine/controllers/res_partner.py create mode 100644 website_geoengine/i18n/it.po create mode 100644 website_geoengine/i18n/website_geoengine.pot create mode 100644 website_geoengine/models/__init__.py create mode 100644 website_geoengine/models/res_partner.py create mode 100644 website_geoengine/pyproject.toml create mode 100644 website_geoengine/readme/CONFIGURE.md create mode 100644 website_geoengine/readme/CONTRIBUTORS.md create mode 100644 website_geoengine/readme/DESCRIPTION.md create mode 100644 website_geoengine/readme/USAGE.md create mode 100644 website_geoengine/static/description/icon.png create mode 100644 website_geoengine/static/description/index.html diff --git a/website_geoengine/README.rst b/website_geoengine/README.rst new file mode 100644 index 000000000..a4395857d --- /dev/null +++ b/website_geoengine/README.rst @@ -0,0 +1,90 @@ +================== +Geospatial Website +================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:c50ec63ee1157d56ef50a5eec4e8f755a6845da87e67cbeea8b64fe36db8f6c3 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fgeospatial-lightgray.png?logo=github + :target: https://github.com/OCA/geospatial/tree/17.0/website_geoengine + :alt: OCA/geospatial +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/geospatial-17-0/geospatial-17-0-website_geoengine + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/geospatial&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the ``website`` odoo module, to allow add endpoints +in order to exchange geospatial data with the frontend. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +No configuration needed. Just install the module and you are ready to +go. + +Usage +===== + + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Camptocamp + +Contributors +------------ + +- Stéphane Brunner +- Hadrien Huvelle +- Cédric Paradis + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/geospatial `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/website_geoengine/__init__.py b/website_geoengine/__init__.py new file mode 100644 index 000000000..91c5580fe --- /dev/null +++ b/website_geoengine/__init__.py @@ -0,0 +1,2 @@ +from . import controllers +from . import models diff --git a/website_geoengine/__manifest__.py b/website_geoengine/__manifest__.py new file mode 100644 index 000000000..add8bb355 --- /dev/null +++ b/website_geoengine/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2011-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) +{ + "name": "Geospatial Website", + "version": "17.0.1.0.0", + "category": "GeoBI", + "author": "Camptocamp, Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "https://github.com/OCA/geospatial", + "depends": ["base_geoengine", "website", "partner_store"], + "data": [], + "installable": True, + "application": True, +} diff --git a/website_geoengine/controllers/__init__.py b/website_geoengine/controllers/__init__.py new file mode 100644 index 000000000..91fed54d4 --- /dev/null +++ b/website_geoengine/controllers/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/website_geoengine/controllers/res_partner.py b/website_geoengine/controllers/res_partner.py new file mode 100644 index 000000000..a6ab76849 --- /dev/null +++ b/website_geoengine/controllers/res_partner.py @@ -0,0 +1,19 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import http + + +class ResPartner(http.Controller): + @http.route("/website-geoengine/tags", type="json", auth="public", cors="*") + def tags(self, **kw): + tags = kw.get("tags", {}) + lang = kw.get("lang", "en_US") + return http.request.env["res.partner"].get_search_tags(tags, lang) + + @http.route("/website-geoengine/partners", type="json", auth="public", cors="*") + def partners(self, **kw): + tags = kw.get("tags", {}) + lang = kw.get("lang", "en_US") + maxResults = kw.get("maxResults", "200") + return http.request.env["res.partner"].fetch_partner_geoengine( + tags, lang, maxResults + ) diff --git a/website_geoengine/i18n/it.po b/website_geoengine/i18n/it.po new file mode 100644 index 000000000..c589ffa42 --- /dev/null +++ b/website_geoengine/i18n/it.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_geoengine +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-11-03 17:06+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: website_geoengine +#: model:ir.model,name:website_geoengine.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: website_geoengine +#: model:ir.model.fields,field_description:website_geoengine.field_res_partner__opening_hours +#: model:ir.model.fields,field_description:website_geoengine.field_res_users__opening_hours +msgid "Opening hours" +msgstr "Ore apertura" + +#. module: website_geoengine +#. odoo-python +#: code:addons/website_geoengine/models/res_partner.py:0 +#, python-format +msgid "Unauthorized field" +msgstr "Campo non autorizzato" diff --git a/website_geoengine/i18n/website_geoengine.pot b/website_geoengine/i18n/website_geoengine.pot new file mode 100644 index 000000000..a016651fa --- /dev/null +++ b/website_geoengine/i18n/website_geoengine.pot @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_geoengine +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: website_geoengine +#: model:ir.model,name:website_geoengine.model_res_partner +msgid "Contact" +msgstr "" + +#. module: website_geoengine +#: model:ir.model.fields,field_description:website_geoengine.field_res_partner__opening_hours +#: model:ir.model.fields,field_description:website_geoengine.field_res_users__opening_hours +msgid "Opening hours" +msgstr "" + +#. module: website_geoengine +#. odoo-python +#: code:addons/website_geoengine/models/res_partner.py:0 +#, python-format +msgid "Unauthorized field" +msgstr "" diff --git a/website_geoengine/models/__init__.py b/website_geoengine/models/__init__.py new file mode 100644 index 000000000..91fed54d4 --- /dev/null +++ b/website_geoengine/models/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/website_geoengine/models/res_partner.py b/website_geoengine/models/res_partner.py new file mode 100644 index 000000000..6f9d96835 --- /dev/null +++ b/website_geoengine/models/res_partner.py @@ -0,0 +1,123 @@ +# Copyright 2011-2024 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class ResPartner(models.Model): + _inherit = "res.partner" + + opening_hours = fields.Char(string="Opening hours") + + AUTHORIZED_FIELDS = ["name", "city", "zip", "street", "street2", "tag"] + + @api.model + def get_search_tags(self, search, lang): + sql = """ + WITH + names as ( + SELECT + DISTINCT 'name' as column, + name as value + FROM + res_partner + WHERE + type='store'), + cities as ( + SELECT + DISTINCT 'city' as column, + city as value + FROM + res_partner + WHERE + type='store'), + zips as ( + SELECT + DISTINCT 'zip' as column, + zip as value + FROM + res_partner + WHERE + type='store'), + streets as ( + SELECT + DISTINCT 'street' as column, + concat(street, street2) as value + FROM + res_partner + WHERE + type='store'), + tags as ( + SELECT + DISTINCT 'tag' as column, + res_partner_category.name->>%s as value + FROM + res_partner_category, + res_partner_res_partner_category_rel, + res_partner + WHERE + res_partner_res_partner_category_rel.partner_id = res_partner.id + AND + res_partner_res_partner_category_rel.category_id + = + res_partner_category.id + AND res_partner.type='store' + ), + all_tags as ( + SELECT * FROM names + UNION SELECT * FROM cities + UNION SELECT * FROM zips + UNION SELECT * FROM streets + UNION SELECT * FROM tags ) + + + SELECT * FROM all_tags WHERE value ILIKE %s; + """ + self._cr.execute(sql, (lang, f"%{search}%")) + results = self._cr.fetchall() + return results + + @api.model + def fetch_partner_geoengine(self, tags, lang, maxResults): + domain = [("type", "=", "store")] + for tag in tags: + field, value = tag.values() + if field not in self.AUTHORIZED_FIELDS: + raise ValidationError(_("Unauthorized field")) + domain.append((field.replace("tag", "category_id.name"), "ilike", value)) + + partners = self.sudo().search(domain) + features = [] + + if len(partners) > int(maxResults): + return { + "error": "Too many results", + "message": f"Too many results: {len(partners)}", + } + + for partner in partners: + features.append( + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + partner.partner_longitude, + partner.partner_latitude, + ], + }, + "properties": { + "id": partner.id or None, + "name": partner.name or "", + "zip": partner.zip or "", + "city": partner.city or "", + "street": partner.street or "", + "street2": partner.street2 or "", + "tags": partner.category_id.mapped("name") or "", + "opening_hours": partner.opening_hours or "", + }, + } + ) + + return features diff --git a/website_geoengine/pyproject.toml b/website_geoengine/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/website_geoengine/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/website_geoengine/readme/CONFIGURE.md b/website_geoengine/readme/CONFIGURE.md new file mode 100644 index 000000000..66c20ecb3 --- /dev/null +++ b/website_geoengine/readme/CONFIGURE.md @@ -0,0 +1,2 @@ +No configuration needed. Just install the module and you are ready to +go. diff --git a/website_geoengine/readme/CONTRIBUTORS.md b/website_geoengine/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..b5e60e851 --- /dev/null +++ b/website_geoengine/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- Stéphane Brunner \ +- Hadrien Huvelle \ +- Cédric Paradis \ diff --git a/website_geoengine/readme/DESCRIPTION.md b/website_geoengine/readme/DESCRIPTION.md new file mode 100644 index 000000000..f8c6923c4 --- /dev/null +++ b/website_geoengine/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module extends the `website` odoo module, to allow add endpoints in +order to exchange geospatial data with the frontend. diff --git a/website_geoengine/readme/USAGE.md b/website_geoengine/readme/USAGE.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/website_geoengine/readme/USAGE.md @@ -0,0 +1 @@ + diff --git a/website_geoengine/static/description/icon.png b/website_geoengine/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/website_geoengine/static/description/index.html b/website_geoengine/static/description/index.html new file mode 100644 index 000000000..a89be04d3 --- /dev/null +++ b/website_geoengine/static/description/index.html @@ -0,0 +1,436 @@ + + + + + +Geospatial Website + + + +
+

Geospatial Website

+ + +

Beta License: AGPL-3 OCA/geospatial Translate me on Weblate Try me on Runboat

+

This module extends the website odoo module, to allow add endpoints +in order to exchange geospatial data with the frontend.

+

Table of contents

+ +
+

Configuration

+

No configuration needed. Just install the module and you are ready to +go.

+
+
+

Usage

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/geospatial project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + From 9846d5447a08d61669337a84a530556198732db9 Mon Sep 17 00:00:00 2001 From: Hadrien Huvelle Date: Tue, 6 Feb 2024 07:26:33 +0100 Subject: [PATCH 2/5] [16.0][Feature] add website_geoengine_store_locator --- website_geoengine/README.rst | 84 ++++ website_geoengine/__init__.py | 2 + website_geoengine/__manifest__.py | 14 + website_geoengine/controllers/__init__.py | 1 + website_geoengine/controllers/res_partner.py | 19 + website_geoengine/i18n/website_geoengine.pot | 32 ++ website_geoengine/models/__init__.py | 1 + website_geoengine/models/res_partner.py | 120 +++++ website_geoengine/readme/CONFIGURE.rst | 1 + website_geoengine/readme/CONTRIBUTORS.rst | 2 + website_geoengine/readme/DESCRIPTION.rst | 3 + website_geoengine/readme/USAGE.rst | 0 website_geoengine/static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 430 ++++++++++++++++++ 14 files changed, 709 insertions(+) create mode 100644 website_geoengine/README.rst create mode 100644 website_geoengine/__init__.py create mode 100644 website_geoengine/__manifest__.py create mode 100644 website_geoengine/controllers/__init__.py create mode 100644 website_geoengine/controllers/res_partner.py create mode 100644 website_geoengine/i18n/website_geoengine.pot create mode 100644 website_geoengine/models/__init__.py create mode 100644 website_geoengine/models/res_partner.py create mode 100644 website_geoengine/readme/CONFIGURE.rst create mode 100644 website_geoengine/readme/CONTRIBUTORS.rst create mode 100644 website_geoengine/readme/DESCRIPTION.rst create mode 100644 website_geoengine/readme/USAGE.rst create mode 100644 website_geoengine/static/description/icon.png create mode 100644 website_geoengine/static/description/index.html diff --git a/website_geoengine/README.rst b/website_geoengine/README.rst new file mode 100644 index 000000000..3933766e4 --- /dev/null +++ b/website_geoengine/README.rst @@ -0,0 +1,84 @@ +================== +Geospatial Website +================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:c50ec63ee1157d56ef50a5eec4e8f755a6845da87e67cbeea8b64fe36db8f6c3 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fgeospatial-lightgray.png?logo=github + :target: https://github.com/OCA/geospatial/tree/16.0/website_geoengine + :alt: OCA/geospatial +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/geospatial-16-0/geospatial-16-0-website_geoengine + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/geospatial&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the ``website`` odoo module, to allow +add endpoints in order to exchange geospatial data with the frontend. + + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +No configuration needed. Just install the module and you are ready to go. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* Stéphane Brunner +* Hadrien Huvelle + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/geospatial `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/website_geoengine/__init__.py b/website_geoengine/__init__.py new file mode 100644 index 000000000..91c5580fe --- /dev/null +++ b/website_geoengine/__init__.py @@ -0,0 +1,2 @@ +from . import controllers +from . import models diff --git a/website_geoengine/__manifest__.py b/website_geoengine/__manifest__.py new file mode 100644 index 000000000..b6854453d --- /dev/null +++ b/website_geoengine/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2011-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) +{ + "name": "Geospatial Website", + "version": "16.0.1.0.0", + "category": "GeoBI", + "author": "Camptocamp, Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "https://github.com/OCA/geospatial", + "depends": ["base_geoengine", "website", "partner_store"], + "data": [], + "installable": True, + "application": True, +} diff --git a/website_geoengine/controllers/__init__.py b/website_geoengine/controllers/__init__.py new file mode 100644 index 000000000..91fed54d4 --- /dev/null +++ b/website_geoengine/controllers/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/website_geoengine/controllers/res_partner.py b/website_geoengine/controllers/res_partner.py new file mode 100644 index 000000000..a6ab76849 --- /dev/null +++ b/website_geoengine/controllers/res_partner.py @@ -0,0 +1,19 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import http + + +class ResPartner(http.Controller): + @http.route("/website-geoengine/tags", type="json", auth="public", cors="*") + def tags(self, **kw): + tags = kw.get("tags", {}) + lang = kw.get("lang", "en_US") + return http.request.env["res.partner"].get_search_tags(tags, lang) + + @http.route("/website-geoengine/partners", type="json", auth="public", cors="*") + def partners(self, **kw): + tags = kw.get("tags", {}) + lang = kw.get("lang", "en_US") + maxResults = kw.get("maxResults", "200") + return http.request.env["res.partner"].fetch_partner_geoengine( + tags, lang, maxResults + ) diff --git a/website_geoengine/i18n/website_geoengine.pot b/website_geoengine/i18n/website_geoengine.pot new file mode 100644 index 000000000..a016651fa --- /dev/null +++ b/website_geoengine/i18n/website_geoengine.pot @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_geoengine +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: website_geoengine +#: model:ir.model,name:website_geoengine.model_res_partner +msgid "Contact" +msgstr "" + +#. module: website_geoengine +#: model:ir.model.fields,field_description:website_geoengine.field_res_partner__opening_hours +#: model:ir.model.fields,field_description:website_geoengine.field_res_users__opening_hours +msgid "Opening hours" +msgstr "" + +#. module: website_geoengine +#. odoo-python +#: code:addons/website_geoengine/models/res_partner.py:0 +#, python-format +msgid "Unauthorized field" +msgstr "" diff --git a/website_geoengine/models/__init__.py b/website_geoengine/models/__init__.py new file mode 100644 index 000000000..91fed54d4 --- /dev/null +++ b/website_geoengine/models/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/website_geoengine/models/res_partner.py b/website_geoengine/models/res_partner.py new file mode 100644 index 000000000..3e5c1621f --- /dev/null +++ b/website_geoengine/models/res_partner.py @@ -0,0 +1,120 @@ +# Copyright 2011-2024 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class ResPartner(models.Model): + _inherit = "res.partner" + + opening_hours = fields.Char(string="Opening hours") + + AUTHORIZED_FIELDS = ["name", "city", "zip", "street", "street2", "tag"] + + @api.model + def get_search_tags(self, search, lang): + sql = """ + WITH + names as ( + SELECT + DISTINCT 'name' as column, + name as value + FROM + res_partner + WHERE + type='store'), + cities as ( + SELECT + DISTINCT 'city' as column, + city as value + FROM + res_partner + WHERE + type='store'), + zips as ( + SELECT + DISTINCT 'zip' as column, + zip as value + FROM + res_partner + WHERE + type='store'), + streets as ( + SELECT + DISTINCT 'street' as column, + concat(street, street2) as value + FROM + res_partner + WHERE + type='store'), + tags as ( + SELECT + DISTINCT 'tag' as column, + res_partner_category.name->>%s as value + FROM + res_partner_category, + res_partner_res_partner_category_rel, + res_partner + WHERE + res_partner_res_partner_category_rel.partner_id = res_partner.id + AND + res_partner_res_partner_category_rel.category_id = res_partner_category.id + AND res_partner.type='store' + ), + all_tags as ( + SELECT * FROM names + UNION SELECT * FROM cities + UNION SELECT * FROM zips + UNION SELECT * FROM streets + UNION SELECT * FROM tags ) + + + SELECT * FROM all_tags WHERE value ILIKE %s; + """ + self._cr.execute(sql, (lang, f"%{search}%")) + results = self._cr.fetchall() + return results + + @api.model + def fetch_partner_geoengine(self, tags, lang, maxResults): + domain = [("type", "=", "store")] + for tag in tags: + field, value = tag.values() + if field not in self.AUTHORIZED_FIELDS: + raise ValidationError(_("Unauthorized field")) + domain.append((field.replace("tag", "category_id.name"), "ilike", value)) + + partners = self.sudo().search(domain) + features = [] + + if len(partners) > int(maxResults): + return { + "error": "Too many results", + "message": f"Too many results: {len(partners)}", + } + + for partner in partners: + features.append( + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + partner.partner_longitude, + partner.partner_latitude, + ], + }, + "properties": { + "id": partner.id or None, + "name": partner.name or "", + "zip": partner.zip or "", + "city": partner.city or "", + "street": partner.street or "", + "street2": partner.street2 or "", + "tags": partner.category_id.mapped("name") or "", + "opening_hours": partner.opening_hours or "", + }, + } + ) + return features diff --git a/website_geoengine/readme/CONFIGURE.rst b/website_geoengine/readme/CONFIGURE.rst new file mode 100644 index 000000000..48bc18bdb --- /dev/null +++ b/website_geoengine/readme/CONFIGURE.rst @@ -0,0 +1 @@ +No configuration needed. Just install the module and you are ready to go. \ No newline at end of file diff --git a/website_geoengine/readme/CONTRIBUTORS.rst b/website_geoengine/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..adeb2822c --- /dev/null +++ b/website_geoengine/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Stéphane Brunner +* Hadrien Huvelle \ No newline at end of file diff --git a/website_geoengine/readme/DESCRIPTION.rst b/website_geoengine/readme/DESCRIPTION.rst new file mode 100644 index 000000000..29557c9ea --- /dev/null +++ b/website_geoengine/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module extends the ``website`` odoo module, to allow +add endpoints in order to exchange geospatial data with the frontend. + diff --git a/website_geoengine/readme/USAGE.rst b/website_geoengine/readme/USAGE.rst new file mode 100644 index 000000000..e69de29bb diff --git a/website_geoengine/static/description/icon.png b/website_geoengine/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/website_geoengine/static/description/index.html b/website_geoengine/static/description/index.html new file mode 100644 index 000000000..80f3b71ce --- /dev/null +++ b/website_geoengine/static/description/index.html @@ -0,0 +1,430 @@ + + + + + +Geospatial Website + + + +
+

Geospatial Website

+ + +

Beta License: AGPL-3 OCA/geospatial Translate me on Weblate Try me on Runboat

+

This module extends the website odoo module, to allow +add endpoints in order to exchange geospatial data with the frontend.

+

Table of contents

+ +
+

Configuration

+

No configuration needed. Just install the module and you are ready to go.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/geospatial project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + From 6ff33264d53f4c07a306d2e7ab387878cc45ead7 Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 31 Oct 2024 07:23:54 +0000 Subject: [PATCH 3/5] Added translation using Weblate (Italian) --- website_geoengine/i18n/it.po | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 website_geoengine/i18n/it.po diff --git a/website_geoengine/i18n/it.po b/website_geoengine/i18n/it.po new file mode 100644 index 000000000..c589ffa42 --- /dev/null +++ b/website_geoengine/i18n/it.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_geoengine +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-11-03 17:06+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: website_geoengine +#: model:ir.model,name:website_geoengine.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: website_geoengine +#: model:ir.model.fields,field_description:website_geoengine.field_res_partner__opening_hours +#: model:ir.model.fields,field_description:website_geoengine.field_res_users__opening_hours +msgid "Opening hours" +msgstr "Ore apertura" + +#. module: website_geoengine +#. odoo-python +#: code:addons/website_geoengine/models/res_partner.py:0 +#, python-format +msgid "Unauthorized field" +msgstr "Campo non autorizzato" From fea7e0771e863760e9d07c016f80ca34ea282699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Paradis?= Date: Tue, 10 Mar 2026 14:29:11 +0000 Subject: [PATCH 4/5] [IMP] website_geoengine: pre-commit auto fixes --- website_geoengine/README.rst | 33 ++++++++++------- website_geoengine/pyproject.toml | 3 ++ .../readme/{CONFIGURE.rst => CONFIGURE.md} | 3 +- website_geoengine/readme/CONTRIBUTORS.md | 2 + website_geoengine/readme/CONTRIBUTORS.rst | 2 - website_geoengine/readme/DESCRIPTION.md | 2 + website_geoengine/readme/DESCRIPTION.rst | 3 -- website_geoengine/readme/USAGE.md | 1 + website_geoengine/readme/USAGE.rst | 0 .../static/description/index.html | 37 +++++++++++-------- 10 files changed, 50 insertions(+), 36 deletions(-) create mode 100644 website_geoengine/pyproject.toml rename website_geoengine/readme/{CONFIGURE.rst => CONFIGURE.md} (86%) create mode 100644 website_geoengine/readme/CONTRIBUTORS.md delete mode 100644 website_geoengine/readme/CONTRIBUTORS.rst create mode 100644 website_geoengine/readme/DESCRIPTION.md delete mode 100644 website_geoengine/readme/DESCRIPTION.rst create mode 100644 website_geoengine/readme/USAGE.md delete mode 100644 website_geoengine/readme/USAGE.rst diff --git a/website_geoengine/README.rst b/website_geoengine/README.rst index 3933766e4..70fd31e2f 100644 --- a/website_geoengine/README.rst +++ b/website_geoengine/README.rst @@ -17,20 +17,19 @@ Geospatial Website :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fgeospatial-lightgray.png?logo=github - :target: https://github.com/OCA/geospatial/tree/16.0/website_geoengine + :target: https://github.com/OCA/geospatial/tree/17.0/website_geoengine :alt: OCA/geospatial .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/geospatial-16-0/geospatial-16-0-website_geoengine + :target: https://translation.odoo-community.org/projects/geospatial-17-0/geospatial-17-0-website_geoengine :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/geospatial&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/geospatial&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module extends the ``website`` odoo module, to allow -add endpoints in order to exchange geospatial data with the frontend. - +This module extends the ``website`` odoo module, to allow add endpoints +in order to exchange geospatial data with the frontend. **Table of contents** @@ -40,7 +39,13 @@ add endpoints in order to exchange geospatial data with the frontend. Configuration ============= -No configuration needed. Just install the module and you are ready to go. +No configuration needed. Just install the module and you are ready to +go. + +Usage +===== + + Bug Tracker =========== @@ -48,7 +53,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -56,18 +61,18 @@ Credits ======= Authors -~~~~~~~ +------- * Camptocamp Contributors -~~~~~~~~~~~~ +------------ -* Stéphane Brunner -* Hadrien Huvelle +- Stéphane Brunner +- Hadrien Huvelle Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -79,6 +84,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/geospatial `_ project on GitHub. +This module is part of the `OCA/geospatial `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/website_geoengine/pyproject.toml b/website_geoengine/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/website_geoengine/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/website_geoengine/readme/CONFIGURE.rst b/website_geoengine/readme/CONFIGURE.md similarity index 86% rename from website_geoengine/readme/CONFIGURE.rst rename to website_geoengine/readme/CONFIGURE.md index 48bc18bdb..66c20ecb3 100644 --- a/website_geoengine/readme/CONFIGURE.rst +++ b/website_geoengine/readme/CONFIGURE.md @@ -1 +1,2 @@ -No configuration needed. Just install the module and you are ready to go. \ No newline at end of file +No configuration needed. Just install the module and you are ready to +go. diff --git a/website_geoengine/readme/CONTRIBUTORS.md b/website_geoengine/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..626972ad6 --- /dev/null +++ b/website_geoengine/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Stéphane Brunner \ +- Hadrien Huvelle \ diff --git a/website_geoengine/readme/CONTRIBUTORS.rst b/website_geoengine/readme/CONTRIBUTORS.rst deleted file mode 100644 index adeb2822c..000000000 --- a/website_geoengine/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Stéphane Brunner -* Hadrien Huvelle \ No newline at end of file diff --git a/website_geoengine/readme/DESCRIPTION.md b/website_geoengine/readme/DESCRIPTION.md new file mode 100644 index 000000000..f8c6923c4 --- /dev/null +++ b/website_geoengine/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module extends the `website` odoo module, to allow add endpoints in +order to exchange geospatial data with the frontend. diff --git a/website_geoengine/readme/DESCRIPTION.rst b/website_geoengine/readme/DESCRIPTION.rst deleted file mode 100644 index 29557c9ea..000000000 --- a/website_geoengine/readme/DESCRIPTION.rst +++ /dev/null @@ -1,3 +0,0 @@ -This module extends the ``website`` odoo module, to allow -add endpoints in order to exchange geospatial data with the frontend. - diff --git a/website_geoengine/readme/USAGE.md b/website_geoengine/readme/USAGE.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/website_geoengine/readme/USAGE.md @@ -0,0 +1 @@ + diff --git a/website_geoengine/readme/USAGE.rst b/website_geoengine/readme/USAGE.rst deleted file mode 100644 index e69de29bb..000000000 diff --git a/website_geoengine/static/description/index.html b/website_geoengine/static/description/index.html index 80f3b71ce..b08dc362f 100644 --- a/website_geoengine/static/description/index.html +++ b/website_geoengine/static/description/index.html @@ -369,51 +369,56 @@

Geospatial Website

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:c50ec63ee1157d56ef50a5eec4e8f755a6845da87e67cbeea8b64fe36db8f6c3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/geospatial Translate me on Weblate Try me on Runboat

-

This module extends the website odoo module, to allow -add endpoints in order to exchange geospatial data with the frontend.

+

Beta License: AGPL-3 OCA/geospatial Translate me on Weblate Try me on Runboat

+

This module extends the website odoo module, to allow add endpoints +in order to exchange geospatial data with the frontend.

Table of contents

Configuration

-

No configuration needed. Just install the module and you are ready to go.

+

No configuration needed. Just install the module and you are ready to +go.

+
+
-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Camptocamp
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -421,7 +426,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/geospatial project on GitHub.

+

This module is part of the OCA/geospatial project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From cefe347a904edc2dbab4eb37c228207b75adc0c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Paradis?= Date: Tue, 10 Mar 2026 14:39:31 +0000 Subject: [PATCH 5/5] [MIG] website_geoengine: Migration to 17.0 --- website_geoengine/__manifest__.py | 2 +- website_geoengine/models/res_partner.py | 5 ++++- website_geoengine/readme/CONTRIBUTORS.md | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/website_geoengine/__manifest__.py b/website_geoengine/__manifest__.py index b6854453d..add8bb355 100644 --- a/website_geoengine/__manifest__.py +++ b/website_geoengine/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) { "name": "Geospatial Website", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "category": "GeoBI", "author": "Camptocamp, Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/website_geoengine/models/res_partner.py b/website_geoengine/models/res_partner.py index 3e5c1621f..6f9d96835 100644 --- a/website_geoengine/models/res_partner.py +++ b/website_geoengine/models/res_partner.py @@ -59,7 +59,9 @@ def get_search_tags(self, search, lang): WHERE res_partner_res_partner_category_rel.partner_id = res_partner.id AND - res_partner_res_partner_category_rel.category_id = res_partner_category.id + res_partner_res_partner_category_rel.category_id + = + res_partner_category.id AND res_partner.type='store' ), all_tags as ( @@ -117,4 +119,5 @@ def fetch_partner_geoengine(self, tags, lang, maxResults): }, } ) + return features diff --git a/website_geoengine/readme/CONTRIBUTORS.md b/website_geoengine/readme/CONTRIBUTORS.md index 626972ad6..b5e60e851 100644 --- a/website_geoengine/readme/CONTRIBUTORS.md +++ b/website_geoengine/readme/CONTRIBUTORS.md @@ -1,2 +1,3 @@ - Stéphane Brunner \ - Hadrien Huvelle \ +- Cédric Paradis \