Skip to content
Snippets Groups Projects
Commit 59dade1c authored by Thorge Petersen's avatar Thorge Petersen
Browse files

Wip

parent 7f64ba93
No related branches found
No related tags found
1 merge request!52Added applicableLegislation and hvdCategory support
...@@ -223,6 +223,18 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm ...@@ -223,6 +223,18 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
toolkit.get_converter('convert_from_extras'), toolkit.get_converter('convert_from_extras'),
toolkit.get_validator('ignore_missing') toolkit.get_validator('ignore_missing')
], ],
'reference': [
toolkit.get_converter('convert_from_extras'),
toolkit.get_validator('ignore_missing')
],
'hvdCategory': [
toolkit.get_converter('convert_from_extras'),
toolkit.get_validator('ignore_missing')
],
'applicableLegislation': [
toolkit.get_converter('convert_from_extras'),
toolkit.get_validator('ignore_missing')
],
}) })
return schema return schema
......
...@@ -11,10 +11,11 @@ from ckanext.dcatde.profiles import DCATdeProfile, DCATDE, DCAT, DCATDE_1_0, DCA ...@@ -11,10 +11,11 @@ from ckanext.dcatde.profiles import DCATdeProfile, DCATDE, DCAT, DCATDE_1_0, DCA
import ckanext.odsh.helpers as helpers_odsh import ckanext.odsh.helpers as helpers_odsh
import ckanext.odsh.collection.helpers as helpers_collection import ckanext.odsh.collection.helpers as helpers_collection
import ast
DCT = rdflib.namespace.Namespace("http://purl.org/dc/terms/") DCT = rdflib.namespace.Namespace("http://purl.org/dc/terms/")
DCAT = rdflib.namespace.Namespace("http://www.w3.org/ns/dcat#") DCAT = rdflib.namespace.Namespace("http://www.w3.org/ns/dcat#")
DCATAP = rdflib.namespace.Namespace("http://data.europa.eu/r5r/")
DCATDE_1_0_2 = rdflib.namespace.Namespace("http://dcat-ap.de/def/dcatde/1.0.2/") DCATDE_1_0_2 = rdflib.namespace.Namespace("http://dcat-ap.de/def/dcatde/1.0.2/")
ADMS = rdflib.namespace.Namespace("http://www.w3.org/ns/adms#") ADMS = rdflib.namespace.Namespace("http://www.w3.org/ns/adms#")
...@@ -94,8 +95,8 @@ class ODSHDCATdeProfile(DCATdeProfile): ...@@ -94,8 +95,8 @@ class ODSHDCATdeProfile(DCATdeProfile):
self._add_type(dataset_dict, dataset_ref) self._add_type(dataset_dict, dataset_ref)
self._add_modified_and_issued(dataset_dict, dataset_ref) self._add_modified_and_issued(dataset_dict, dataset_ref)
self._add_extra_field(dataset_dict, dataset_ref, 'reference', DCT.references) self._add_extra_field(dataset_dict, dataset_ref, 'reference', DCT.references)
self._add_extra_field(dataset_dict, dataset_ref, 'applicableLegislation', DCAT.applicableLegislation) self._add_extra_field(dataset_dict, dataset_ref, 'applicableLegislation', DCATAP.applicableLegislation)
self._add_extra_field(dataset_dict, dataset_ref, 'hvdCategory', DCAT.hvdCategory) self._add_extra_field(dataset_dict, dataset_ref, 'hvdCategory', DCATAP.hvdCategory)
self._add_version(dataset_dict, dataset_ref) self._add_version(dataset_dict, dataset_ref)
if self._is_dataset_collection(dataset_dict): if self._is_dataset_collection(dataset_dict):
self._remove_predefined_collection_members() self._remove_predefined_collection_members()
...@@ -126,10 +127,26 @@ class ODSHDCATdeProfile(DCATdeProfile): ...@@ -126,10 +127,26 @@ class ODSHDCATdeProfile(DCATdeProfile):
) )
def _add_extra_field(self, dataset_dict, dataset_ref, field_name, dcat_property): def _add_extra_field(self, dataset_dict, dataset_ref, field_name, dcat_property):
uri = helpers_odsh.odsh_extract_value_from_extras(dataset_dict.get('extras'), field_name) field_value_str = helpers_odsh.odsh_extract_value_from_extras(dataset_dict.get('extras'), field_name)
if uri:
try:
# Attempt to parse the string as a Python literal
field_value = ast.literal_eval(field_value_str)
if not isinstance(field_value, set):
# If it's not a set, treat it as a single value
raise ValueError("Not a set")
except (ValueError, SyntaxError):
# If parsing fails, treat the entire string as a single value
field_value = field_value_str
if isinstance(field_value, set):
for value in field_value:
self.g.set(
(dataset_ref, dcat_property, rdflib.URIRef(value))
)
else:
self.g.set( self.g.set(
(dataset_ref, dcat_property, rdflib.URIRef(uri)) (dataset_ref, dcat_property, rdflib.URIRef(field_value))
) )
......
{ {
"https://example.com/example1/":"Example 1", "http://data.europa.eu/eli/reg_impl/2023/138/oj": "Durchführungsverordnung (EU) 2023/138 der Kommission vom 21. Dezember 2022 zur Festlegung bestimmter hochwertiger Datensätze und der Modalitäten ihrer Veröffentlichung und Weiterverwendung",
"https://example.com/example2/":"Example 2", "http: //data.europa.eu/eli/dir/2007/2/2019-06-26": "Richtlinie 2007/2/EG des Europäischen Parlaments und des Rates vom 14. März 2007 zur Schaffung einer Geodateninfrastruktur in der Europäischen Gemeinschaft (INSPIRE)"
"https://example.com/example3/":"Example 3",
"https://example.com/example4/":"Example 4"
} }
\ No newline at end of file
{ {
"https://example.com/category1/":"Category 1", "https://example.com/category1/": "Georaum",
"https://example.com/category2/":"Category 2", "https://example.com/category2/": "Erdbeobachtung und Umwelt",
"https://example.com/category3/":"Category 3", "https://example.com/category3/": "Meteorologie",
"https://example.com/category4/":"Category 4" "https://example.com/category4/": "Statistik",
"https://example.com/category5/": "Unternehmen und Eigentümerschaft von Unternehmen",
"https://example.com/category6/": "Mobilität"
} }
\ No newline at end of file
...@@ -165,7 +165,7 @@ is_required=false) %} ...@@ -165,7 +165,7 @@ is_required=false) %}
{# Creates a select with an input field for autocomplete #} {# Creates a select with an input field for autocomplete #}
{% macro select_autocomplete(name, id='', label='', options='', selected='', error='', classes=[], attrs={}, {% macro select_autocomplete(name, id='', label='', options='', selected='', error='', classes=[], attrs={},
is_required=false, is_multiple=false, is_extra=false, index=0) %} is_required=false, is_multiple=false) %}
{% set classes = classes|default([]) + ['control-select'] %} {% set classes = classes|default([]) + ['control-select'] %}
{%- set extra_html = caller() if caller -%} {%- set extra_html = caller() if caller -%}
...@@ -173,10 +173,7 @@ is_required=false) %} ...@@ -173,10 +173,7 @@ is_required=false) %}
<div class="row-fluid"> <div class="row-fluid">
<div class="span6"> <div class="span6">
{% if is_extra %} <select id="{{ (id or name) }}" name="{{ name }}"
<input id="field-{{ name }}-key" type="hidden" name="extras__{{ index }}__key" value="{{ id or name }}" />
{% endif %}
<select id="{{ 'field-' ~ (id or name) ~ '-value' if is_extra else (id or name) }}" name="{{ 'extras__' ~ index ~ '__value' if is_extra else (name) }}"
{{ attributes(attrs) }} data-module="autocomplete"{% if is_multiple %} multiple{% endif %}> {{ attributes(attrs) }} data-module="autocomplete"{% if is_multiple %} multiple{% endif %}>
{% for option in options %} {% for option in options %}
{% if option.key %} {% if option.key %}
......
...@@ -340,19 +340,19 @@ dataset_is_draft)) %} ...@@ -340,19 +340,19 @@ dataset_is_draft)) %}
{# field reference #} {# field reference #}
{% set field = 'reference' %} {% set field = 'reference' %}
{% set error_reference = h.odsh_extract_error(field, errors) %} {% set error_reference = h.odsh_extract_error(field, errors) %}
{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %} {% set value = data.get(field) or '' %}
{{ form.select_autocomplete(field, label=_('Sample Dataset'), selected=value, options=h.odsh_load_mdk_sample_dataset(), error=error_reference, is_required=False, classes=['control-full', 'field-reference'])}} {{ form.select_autocomplete(field, label=_('Sample Dataset'), selected=value, options=h.odsh_load_mdk_sample_dataset(), error=error_reference, is_required=False, classes=['control-full', 'field-reference'])}}
{# field applicableLegislation #} {# field applicableLegislation #}
{% set field = 'applicableLegislation' %} {% set field = 'applicableLegislation' %}
{% set error_reference = h.odsh_extract_error(field, errors) %} {% set error_reference = h.odsh_extract_error(field, errors) %}
{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %} {% set value = data.get(field) or '' %}
{{ form.select_autocomplete(field, label=_('Applicable Legislation'), selected=value, options=h.odsh_load_applicable_legislations(), error=error_reference, is_required=False, classes=['control-full', 'field-applicableLegislation'], is_multiple=True, is_extra=True, index=5)}} {{ form.select_autocomplete(field, label=_('Applicable Legislation'), selected=value, options=h.odsh_load_applicable_legislations(), error=error_reference, is_required=False, classes=['control-full', 'field-applicableLegislation'], is_multiple=True, is_extra=True, index=5)}}
{# field hvdCategory #} {# field hvdCategory #}
{% set field = 'hvdCategory' %} {% set field = 'hvdCategory' %}
{% set error_reference = h.odsh_extract_error(field, errors) %} {% set error_reference = h.odsh_extract_error(field, errors) %}
{% set value = h.odsh_extract_value_from_extras(data.extras,field) or '' %} {% set value = data.get(field) or '' %}
{{ form.select_autocomplete(field, label=_('HVD Category'), selected=value, options=h.odsh_load_hvd_categories(), error=error_reference, is_required=False, classes=['control-full', 'field-hvdCategory'], is_multiple=True, is_extra=True, index=6)}} {{ form.select_autocomplete(field, label=_('HVD Category'), selected=value, options=h.odsh_load_hvd_categories(), error=error_reference, is_required=False, classes=['control-full', 'field-hvdCategory'], is_multiple=True, is_extra=True, index=6)}}
{% block scripts %} {% block scripts %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment