From 5c38bd2fcc5fcdfc6ac9d67b630f21a3f0318175 Mon Sep 17 00:00:00 2001
From: Thorge Petersen <petersen@rz.uni-kiel.de>
Date: Fri, 21 Jun 2024 11:44:20 +0200
Subject: [PATCH] Fixed display of dataset properties 'is_replaced_by' and
 'version_notes' in dataset view and RDF

---
 CHANGELOG.md                                             | 1 +
 ckanext/odsh/profiles/odsh_dcat_de_profile.py            | 6 ++----
 ckanext/odsh/templates/package/read.html                 | 9 ++++-----
 .../package/snippets/package_metadata_fields.html        | 4 ++--
 4 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3ebf7f34..64f38fa4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ### Fixed
 
 - Resolved display issues of the resource view and share icons.
+- Fixed display of dataset properties `version_notes` and `is_replaced_by` in view and RDF.
 
 ## [2.4.1] - 2024-05-16
 
diff --git a/ckanext/odsh/profiles/odsh_dcat_de_profile.py b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
index 16b87f3b..351e78d8 100644
--- a/ckanext/odsh/profiles/odsh_dcat_de_profile.py
+++ b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
@@ -239,8 +239,7 @@ class ODSHDCATdeProfile(DCATdeProfile):
         '''
         Adds CKAN isReplacedBy extra field to dublin core isReplacedBy and sets version information.
         '''
-        new_version = helpers_odsh.odsh_extract_value_from_extras(
-            dataset_dict.get('extras'), 'is_replaced_by')
+        new_version = dataset_dict.get('is_replaced_by')
         if new_version:
             self.g.set(
                 (dataset_ref, DCTERMS.isReplacedBy,
@@ -248,8 +247,7 @@ class ODSHDCATdeProfile(DCATdeProfile):
                  )
             )
 
-        version_notes = helpers_odsh.odsh_extract_value_from_extras(
-            dataset_dict.get('extras'), 'version_notes')
+        version_notes = dataset_dict.get('version_notes')
         if version_notes:
             self.g.set(
                 (dataset_ref, ADMS.versionNotes,
diff --git a/ckanext/odsh/templates/package/read.html b/ckanext/odsh/templates/package/read.html
index 11057ec8..17d6f37f 100644
--- a/ckanext/odsh/templates/package/read.html
+++ b/ckanext/odsh/templates/package/read.html
@@ -8,8 +8,6 @@
 {% set predecessor_url = collection['predecessor']['url'] if collection and 'predecessor' in collection else None %}
 {% set latest_collection_member = collection['persistent_link_last_member'] if collection else None %}
 {% set stars = h.odsh_openness_score_dataset_html(pkg) %}
-{% set is_replaced_by = h.odsh_extract_value_from_extras(pkg.extras, 'is_replaced_by') %}
-{% set version_notes = h.odsh_extract_value_from_extras(pkg.extras, 'version_notes') %}
 
 {% block breadcrumb_content %}
   {% if pkg %}
@@ -76,7 +74,8 @@
           {% endtrans %}
         </p>
       {% endif %}
-      {% if is_replaced_by %}
+      {% if pkg.is_replaced_by %}
+        {% set is_replaced_by = pkg.is_replaced_by %}
         <div class="hint-newer-version">
           {% trans %}
             Note: This dataset has been replaced with a <a href="{{ is_replaced_by }}">newer version</a>.
@@ -95,9 +94,9 @@
           </div>
         </div>
       {% endif %}
-      {% if version_notes %}
+      {% if pkg.version_notes %}
         <div class="version-notes">
-          {{ version_notes }}
+          {{ pkg.version_notes }}
         </div>
       {% endif %}
     {% endblock package_notes %}
diff --git a/ckanext/odsh/templates/package/snippets/package_metadata_fields.html b/ckanext/odsh/templates/package/snippets/package_metadata_fields.html
index 55c3124a..9662b448 100644
--- a/ckanext/odsh/templates/package/snippets/package_metadata_fields.html
+++ b/ckanext/odsh/templates/package/snippets/package_metadata_fields.html
@@ -6,12 +6,12 @@
 
   {% set field = 'version_notes' %}
   {% set error = h.odsh_extract_error(field, errors) %}
-  {% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %}
+  {% set value = data[field] or '' %}
   {{ form.textarea(field, label=_('Version notes'), value=value, error=error, classes=['control-full', 'span6']) }}
 
   {% set field = 'is_replaced_by' %}
   {% set error = h.odsh_extract_error(field, errors) %}
-  {% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %}
+  {% set value = data[field] or '' %}
   {{ form.input(field, label=_('Is replaced by'), placeholder=_('https://'), value=value, error=error,
   classes=['control-full']) }}
 
-- 
GitLab