From 0b9f596ce1d1d7c8564cd52d5bb048d41700dd17 Mon Sep 17 00:00:00 2001 From: anusrinps96 Date: Mon, 15 Jul 2024 20:28:48 +0200 Subject: [PATCH 1/3] [IMP] base_geoengine: Updated field label Updated field label from "Params" to "Params WMS" of params_wms --- base_geoengine/models/geo_raster_layer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/base_geoengine/models/geo_raster_layer.py b/base_geoengine/models/geo_raster_layer.py index c7d98662e..80b99a071 100644 --- a/base_geoengine/models/geo_raster_layer.py +++ b/base_geoengine/models/geo_raster_layer.py @@ -49,7 +49,9 @@ class GeoRasterLayer(models.Model): params = fields.Char(help="Dictiorary of values for dimensions as JSON") # wms options - params_wms = fields.Char(help="Need to provide at least a LAYERS param") + params_wms = fields.Char( + "Params WMS", help="Need to provide at least a LAYERS param" + ) server_type = fields.Char( help="The type of the remote WMS server: mapserver, \ geoserver, carmentaserver, or qgis", From 8dfd659f152c72e62fe4eec08df1f845656aa100 Mon Sep 17 00:00:00 2001 From: anusrinps96 Date: Thu, 17 Apr 2025 10:37:36 +0200 Subject: [PATCH 2/3] [IMP][base_geoengine]: Update domain for attribute_field_id attribute_field_id domain is updated to use values based on geo_field_id.model_id --- base_geoengine/models/geo_vector_layer.py | 19 +++++++++++++++++-- .../views/geo_vector_layer_view.xml | 4 ++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/base_geoengine/models/geo_vector_layer.py b/base_geoengine/models/geo_vector_layer.py index f7c90460c..e30c77842 100644 --- a/base_geoengine/models/geo_vector_layer.py +++ b/base_geoengine/models/geo_vector_layer.py @@ -61,9 +61,12 @@ class GeoVectorLayer(models.Model): ondelete="cascade", domain=[("ttype", "ilike", "geo_")], ) - attribute_field_id = fields.Many2one( - "ir.model.fields", "Attribute field", domain=[("ttype", "in", SUPPORTED_ATT)] + + attribute_field_id_domain = fields.Binary( + compute="_compute_attribute_field_id_domain", readonly=True, store=False ) + attribute_field_id = fields.Many2one("ir.model.fields", "Attribute field") + model_id = fields.Many2one( "ir.model", "Model to use", @@ -155,3 +158,15 @@ def _compute_model_id(self): rec.model_id = "" else: rec.model_id = "" + + @api.depends("geo_field_id") + def _compute_attribute_field_id_domain(self): + for rec in self: + rec.attribute_field_id_domain = ( + [ + ("ttype", "in", SUPPORTED_ATT), + ("model", "=", rec.geo_field_id.model_id.model), + ] + if rec.geo_field_id + else [("ttype", "in", SUPPORTED_ATT)] + ) diff --git a/base_geoengine/views/geo_vector_layer_view.xml b/base_geoengine/views/geo_vector_layer_view.xml index 46fba3e42..68b6558e1 100644 --- a/base_geoengine/views/geo_vector_layer_view.xml +++ b/base_geoengine/views/geo_vector_layer_view.xml @@ -10,9 +10,11 @@ + @@ -81,9 +83,11 @@ + From a36a7ef00e49bf6079b40b01488247e54fcf57aa Mon Sep 17 00:00:00 2001 From: anusrinps96 Date: Thu, 7 Aug 2025 08:30:47 +0200 Subject: [PATCH 3/3] [IMP] base_geoengine: Include edit button in Popup Added edit button in popup of record shown in geoengine view which allows user to edit values of record from geoengine view. --- .../geoengine_controller.esm.js | 17 +++++++++++++++++ .../geoengine_controller.xml | 1 + .../geoengine_renderer.esm.js | 9 +++++++++ .../geoengine_renderer/geoengine_renderer.scss | 11 +++++++++++ .../geoengine_renderer/geoengine_renderer.xml | 5 +++++ 5 files changed, 43 insertions(+) diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js index 44a360253..1805e09ea 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js @@ -1,4 +1,5 @@ /** @odoo-module */ +/* globals window */ /** * Copyright 2023 ACSONE SA/NV @@ -129,6 +130,22 @@ export class GeoengineController extends Component { }); } + /** + * Allow you to edit form view for the filled-in model + * from new tab in the browser window. + * @param {*} resModel + * @param {*} resId + */ + async editRecord(resModel, resId) { + const url = window.location.href; + const action_url = url.split("?")[0] + "/" + resId; + this.actionService.doAction({ + type: "ir.actions.act_url", + target: "_blank", + url: action_url, + }); + } + /** * When you finished drawing a new shape, this method is called to open form view and create the record. * @param {*} resModel diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml index a2df97349..2efabfc4e 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml @@ -35,6 +35,7 @@ data="model.root" editable="editable" openRecord.bind="openRecord" + editRecord.bind="editRecord" updateRecord.bind="updateRecord" onClickDiscard.bind="onClickDiscard" createRecord.bind="createRecord" diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js index 9856a49d5..3f10ecf12 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js @@ -648,6 +648,14 @@ export class GeoengineRenderer extends Component { this.props.openRecord(this.record.resModel, this.record.resId, formViewId); } + /** + * When you click on the edit button, it calls the controller's + * editRecord method. + */ + onEditButtonClicked() { + this.props.editRecord(this.record.resModel, this.record.resId); + } + /** * Allows you to change the visibility of layers. This method is called * when the user changes raster layers. @@ -1309,6 +1317,7 @@ GeoengineRenderer.props = { archInfo: {type: Object}, data: {type: Object}, openRecord: {type: Function}, + editRecord: {type: Function}, editable: {type: Boolean, optional: true}, updateRecord: {type: Function}, onClickDiscard: {type: Function}, diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss index 214502b68..74a32cdab 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss @@ -65,3 +65,14 @@ .ol-popup-closer:after { content: "✖"; } +.ol-popup-editor { + text-decoration: none; + position: absolute; + top: 1px; + right: 25px; +} +.ol-popup-editor:after { + font-family: FontAwesome; + content: "\f040"; + cursor: pointer; +} diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml index 7bd1a10fb..e3de4f6b7 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml @@ -17,6 +17,11 @@ />