From 029a0bf53f49d45a0e7d8e77032febdec6ca8286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Wallschl=C3=A4ger?= Date: Wed, 23 Aug 2023 11:52:01 +0200 Subject: [PATCH] [Fixes #11316] external pyCSW Service breaks upload of Documents and Datasets (#11319) Co-authored-by: Alessio Fabiani --- geonode/catalogue/backends/generic.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/geonode/catalogue/backends/generic.py b/geonode/catalogue/backends/generic.py index 94eb2198ab2..848fd9758fe 100644 --- a/geonode/catalogue/backends/generic.py +++ b/geonode/catalogue/backends/generic.py @@ -89,9 +89,13 @@ def get_by_uuid(self, uuid): return None record = list(self.records.values())[0] record.keywords = [] - if hasattr(record, "identification") and hasattr(record.identification[0], "keywords"): + if ( + hasattr(record, "identification") + and len(record.identification) > 0 + and hasattr(record.identification[0], "keywords") + ): for kw in record.identification[0].keywords: - record.keywords.extend(kw["keywords"]) + record.keywords.extend(kw.keywords) return record else: return None @@ -111,7 +115,6 @@ def url_for_uuid(self, uuid, outputschema): def urls_for_uuid(self, uuid): """returns list of valid GetRecordById URLs for a given record""" - urls = [] for mformat in self.formats: urls.append(("text/xml", mformat, self.url_for_uuid(uuid, METADATA_FORMATS[mformat][1]))) @@ -124,6 +127,7 @@ def csw_gen_xml(self, layer, template): site_url = settings.SITEURL.rstrip("/") if settings.SITEURL.startswith("http") else settings.SITEURL tpl = get_template(template) ctx = { + "CATALOG_METADATA_TEMPLATE": settings.CATALOG_METADATA_TEMPLATE, "layer": layer, "SITEURL": site_url, "id_pname": id_pname,