Skip to content

Commit

Permalink
feat: Upgrade to DCAT AP 3
Browse files Browse the repository at this point in the history
- Remove `before index` JSON encoding
- Update Solr
- Update schema and presets according to DCAT AP 3
  • Loading branch information
Hans-Chrstian committed Sep 27, 2024
1 parent bca777f commit f6da891
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 955 deletions.
37 changes: 2 additions & 35 deletions ckanext/gdi_userportal/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0

import json

import logging
import ckan.plugins as plugins
import ckan.plugins.toolkit as toolkit
from ckanext.gdi_userportal.logic.action.get import (
Expand Down Expand Up @@ -105,40 +105,7 @@ def before_dataset_search(self, search_params):
def after_dataset_search(self, search_results, search_params):
return search_results

def _parse_to_array(self, data_dict, field):
extras_field = f"extras_{field}"
if data_dict.get(extras_field):
try:
data_dict[field] = json.loads(data_dict[extras_field])
except json.JSONDecodeError:
data_dict[field] = data_dict[extras_field]
del data_dict[extras_field]
return data_dict

def before_dataset_index(self, data_dict):
for field in self._dcatap_fields_to_normalize:
data_dict = self._parse_to_array(data_dict, field)

context = {"model": model, "session": model.Session}
dataset_dict = {"type": "dataset"}
schema = toolkit.get_action("scheming_dataset_schema_show")(
context, dataset_dict
)

repeating_fields = [
x.get("field_name")
for x in schema.get("dataset_fields", [])
if "repeating_subfields" in x
]
for field in repeating_fields:
try:
data_dict[field] = [json.dumps(x) for x in data_dict[field]]
except (json.JSONDecodeError, KeyError):
pass

if data_dict.get("res_format"):
data_dict["res_format"] = list(dict.fromkeys(data_dict.get("res_format")))

def before_dataset_index(self, data_dict):
return data_dict

def before_dataset_view(self, pkg_dict):
Expand Down
15 changes: 0 additions & 15 deletions ckanext/gdi_userportal/scheming/presets/gdi_presets.json

This file was deleted.

This file was deleted.

13 changes: 13 additions & 0 deletions ckanext/gdi_userportal/scheming/presets/gdi_presets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#SPDX-FileCopyrightText: 2024 Stichting Health-RI
#
#SPDX-License-Identifier: Apache-2.0

scheming_version: 2
about: GDI scheming field presets
about_url: https://github.com/GenomicDataInfrastructure/gdi-userportal-ckanext-gdi-userportal/
presets:
- preset_name: datetime_flex
values:
form_snippet: datetime.html
display_snippet: datetime.html
validators: scheming_isodatetime_flex convert_to_json_if_datetime
Loading

0 comments on commit f6da891

Please sign in to comment.