From 2be298025749488e25597e97b5e8dce40a0ca8f5 Mon Sep 17 00:00:00 2001 From: sijandh35 Date: Thu, 12 Feb 2026 09:26:43 +0000 Subject: [PATCH 1/2] [Fixes #13892] Keywords sync between geoserver and geonode --- geonode/geoserver/helpers.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/geonode/geoserver/helpers.py b/geonode/geoserver/helpers.py index b3a1ff73fe2..7269249a8ce 100755 --- a/geonode/geoserver/helpers.py +++ b/geonode/geoserver/helpers.py @@ -66,6 +66,7 @@ from geonode.catalogue.models import catalogue_post_save from geonode.layers.models import Dataset, Attribute, Style from geonode.layers.enumerations import LAYER_ATTRIBUTE_NUMERIC_DATA_TYPES +from geonode.resource.utils import KeywordHandler from geonode.resource.utils import is_remote_resource from geonode.utils import ( @@ -104,6 +105,15 @@ DEFAULT_STYLE_NAME = ["generic", "line", "point", "polygon", "raster"] +def _sync_geoserver_keywords_to_instance(instance, keywords): + if not keywords: + return + try: + KeywordHandler(instance=instance, keywords=list(keywords)).set_keywords() + except Exception as e: + logger.warning(f"Error while importing keywords from GeoServer for dataset {instance.name}: {e}") + + if not hasattr(settings, "OGC_SERVER"): msg = ( "Please configure OGC_SERVER when enabling geonode.geoserver." @@ -1969,6 +1979,8 @@ def sync_instance_with_geoserver(instance_id, *args, **kwargs): setattr(instance, key, get_dataset_storetype(values[key])) if updatemetadata: + _sync_geoserver_keywords_to_instance(instance, gs_resource.keywords) + # Get metadata links metadata_links = [] for link in instance.link_set.metadata(): From 9a07f551cc1831a2e54f62f2475d68e4a05028f8 Mon Sep 17 00:00:00 2001 From: sijandh35 Date: Thu, 12 Feb 2026 09:42:11 +0000 Subject: [PATCH 2/2] [Fixes #13892] update code assist suggestion --- geonode/geoserver/helpers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/geonode/geoserver/helpers.py b/geonode/geoserver/helpers.py index 7269249a8ce..0b6a598a929 100755 --- a/geonode/geoserver/helpers.py +++ b/geonode/geoserver/helpers.py @@ -110,8 +110,8 @@ def _sync_geoserver_keywords_to_instance(instance, keywords): return try: KeywordHandler(instance=instance, keywords=list(keywords)).set_keywords() - except Exception as e: - logger.warning(f"Error while importing keywords from GeoServer for dataset {instance.name}: {e}") + except Exception: + logger.exception(f"Error while importing keywords from GeoServer for dataset {instance.name}") if not hasattr(settings, "OGC_SERVER"):