From ce46116b02a1dab26b2991956306cd22d019e774 Mon Sep 17 00:00:00 2001 From: anusrinps96 Date: Thu, 30 Apr 2026 16:22:30 +0200 Subject: [PATCH] [16.0][IMP] base_geoengine: Display legends for records with coordinates While styling legends, using records which has coordinates details in order to display legend information in the geoengine view. --- .../geoengine_renderer/geoengine_renderer.esm.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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 41e79c9ca..cd9536694 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 @@ -730,7 +730,10 @@ export class GeoengineRenderer extends Component { this.styleVectorLayerAndLegend(vector, data, layer); this.useRelatedModel(vector, layer, data); } else { - const data = this.props.data.records; + // Filter records with coordinates for styling vector layers & legends + const data = this.props.data.records.filter( + (record) => record.data[vector.geo_field_id[1]] !== false + ); this.styleVectorLayerAndLegend(vector, data, layer); this.addSourceToLayer(data, vector, layer); } @@ -823,7 +826,10 @@ export class GeoengineRenderer extends Component { this.styleVectorLayerAndLegend(cfg, data, lv); this.useRelatedModel(cfg, lv, data); } else { - const data = this.props.data.records; + const geo_field_id_name = cfg.geo_field_id[1]; + const data = this.props.data.records.filter( + (record) => record.data[geo_field_id_name] !== false + ); if (!data.length) { return new ol.layer.Vector({ source: new ol.source.Vector(), @@ -850,10 +856,13 @@ export class GeoengineRenderer extends Component { async getModelData(cfg, fields_to_read) { const domain = this.evalModelDomain(cfg); + const geo_field_id_name = cfg.geo_field_id[1]; let data = await this.orm.searchRead(cfg.model, [domain][0], fields_to_read); const modelsRecords = this.models.find((e) => e.model.resModel === cfg.model) .model.records; - data = data.map((data) => modelsRecords.find((rec) => rec.resId === data.id)); + data = data + .map((data) => modelsRecords.find((rec) => rec.resId === data.id)) + .filter((rec) => rec.data[geo_field_id_name] !== false); return data; }