diff --git a/ckanext/odsh/helpers.py b/ckanext/odsh/helpers.py index efcb5fceb3e1a5d7e8658a4227e00e5ff3a52604..0baa72be57a524c65f8e14115b6471e102ca7bd9 100644 --- a/ckanext/odsh/helpers.py +++ b/ckanext/odsh/helpers.py @@ -492,3 +492,32 @@ def odsh_load_mdk_sample_dataset(): raise return result +def odsh_load_raw_mdk_sample_dataset(): + ''' + Load sample dataset (Musterkatalog/Musterdatensatz). + + See https://bertelsmannstift.github.io/Musterdatenkatalog/def/musterdatensatz.rdf + and corresponding mapping in mdk_mapping.json file. + ''' + + path = os.path.abspath(os.path.dirname(__file__)) + default_sample_data_file_path = os.path.join(path, "../../mdk_mapping.json") + sample_data_file_path = config.get( + 'ckanext.odsh.sample_data_file_path', default_sample_data_file_path) + + try: + with open(sample_data_file_path) as mapping_json: + result = json.loads(mapping_json.read(), object_pairs_hook=OrderedDict) + except IOError as err: + log.error( + 'Could not load sample dataset mapping file from {}' + .format(sample_data_file_path) + ) + raise + except ValueError as err: + log.error( + 'Could not convert sample dataset mapping file from json. \nSample dataset mapping file: {}' + .format(sample_data_file_path) + ) + raise + return result diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index 8bf494dcc5f8fb89f55263184fe4618d5c2b9610..e4791d41fcee6af771e9ca3ea6229a20a6028552 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -382,6 +382,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm 'tpsh_get_address_org':helpers_tpsh.get_address_org, 'tpsh_get_body_mail':helpers_tpsh.get_body_mail, 'odsh_load_mdk_sample_dataset': odsh_helpers.odsh_load_mdk_sample_dataset, + 'odsh_load_raw_mdk_sample_dataset': odsh_helpers.odsh_load_raw_mdk_sample_dataset, } diff --git a/ckanext/odsh/templates/package/snippets/info.html b/ckanext/odsh/templates/package/snippets/info.html index 167ec74d8efccd2624e126e827508a1d86a0de34..5e816662805b7c45e4e8ad1facdf22b03747860c 100644 --- a/ckanext/odsh/templates/package/snippets/info.html +++ b/ckanext/odsh/templates/package/snippets/info.html @@ -81,6 +81,18 @@ Example: </div> {% endblock license %} + {% block musterdatensatz %} + {% set musterdatensatzURI = h.odsh_extract_value_from_extras(pkg.extras,'reference') %} + {% if musterdatensatzURI %} + {% set mdk=h.odsh_load_raw_mdk_sample_dataset() %} + {% set musterdatensatzName = mdk[musterdatensatzURI] %} + <div class="musterdatensatz-detail info-detail"> + <div>Musterdatensatz:</div> + <a href="/dataset?reference={{ musterdatensatzURI }}">{{ musterdatensatzName }}</a> + </div> + {% endif %} + {% endblock musterdatensatz %} + {% endblock package_info_inner %} </div> {% set map_text = h.odsh_get_spatial_text(pkg) %} diff --git a/ckanext/odsh/tests/test_validation.py b/ckanext/odsh/tests/test_validation.py index b2edc40b15f6f2e6446a709c34706bb63ac3a3a2..01a9a779ac20d2ae74034ba4b73ae4cca4d16636 100644 --- a/ckanext/odsh/tests/test_validation.py +++ b/ckanext/odsh/tests/test_validation.py @@ -117,7 +117,7 @@ def test_convert_subjectID_to_subjectText(): data = {('extras', 0, 'subject'): 'subject', ('extras', 0, 'subject'): 'Test_id'} # act - convert_subjectID_to_subjectText('key', data, {}, None): + convert_subjectID_to_subjectText('key', data, {}, None) # assert assert data[('extras', 1, 'key')] == 'subject_text' assert data[('extras', 1, 'value')] == 'Test_subject' @@ -128,7 +128,7 @@ def test_exception_convert_subjectID_to_subjectText(): data = {('extras', 0, 'subject'): 'subject', ('extras', 0, 'subject'): 'Nicht_Vorhanden'} # act - convert_subjectID_to_subjectText('key', data, {}, None): + convert_subjectID_to_subjectText('key', data, {}, None) #assert assert data[('extras', 1, 'key')] == 'subject_text' assert data[('extras', 1, 'value')] == '' diff --git a/mdk_mapping.json b/mdk_mapping.json index 85077b17687d46b305a7a0dc7a042f9933bb8e01..671c0eff9409c694e55160dbca72a35bde21abc9 100644 --- a/mdk_mapping.json +++ b/mdk_mapping.json @@ -52,7 +52,7 @@ "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/coworkingSpaces":"Externe Infrastruktur - Coworking Spaces", "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/einkaufsfuehrer":"Externe Infrastruktur - Einkaufsführer", "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/einzelhandel":"Externe Infrastruktur - Einzelhandel", - "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/kirchenKappellenUndKloester":"Externe Infrastruktur - Kirchen, Kapellen und Klöster", + "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/kirchenKappellenUndKloester":"Externe Infrastruktur - Kirchen Kapellen Klöster", "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/maerkte":"Externe Infrastruktur - Märkte", "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/oeffnungszeiten":"Externe Infrastruktur - Öffnungszeiten", "https://musterdatenkatalog.de/def/musterdatensatz/externeInfrastruktur/polizei":"Externe Infrastruktur - Polizei", @@ -85,12 +85,12 @@ "https://musterdatenkatalog.de/def/musterdatensatz/gewaesser/pegelstaende":"Gewässer - Pegelstände", "https://musterdatenkatalog.de/def/musterdatensatz/gewaesser/wasserflaechen":"Gewässer - Wasserflächen", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/ausgleichsflaechen":"Grünflächen - Ausgleichsflächen", - "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/baumbestandBaumkataster":"Grünflächen - Baumbestand/Baumkataster", + "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/baumbestandBaumkataster":"Grünflächen - Baumkataster", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/baumfaellungen":"Grünflächen - Baumfällungen", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/biotopflaechen":"Grünflächen - Biotopflächen", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/blumenampeln":"Grünflächen - Blumenampeln", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/brunnen":"Grünflächen - Brunnen", - "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/gruenflaechenGruenflaechenkataster":"Grünflächen - Grünflächen/Grünflächenkataster", + "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/gruenflaechenGruenflaechenkataster":"Grünflächen - Grünflächenkataster", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/hundekottueten":"Grünflächen - Hundekottüten", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/hundewiesen":"Grünflächen - Hundewiesen", "https://musterdatenkatalog.de/def/musterdatensatz/gruenflaechen/jagdbezirke":"Grünflächen - Jagdbezirke", @@ -265,7 +265,7 @@ "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/nachhaltigkeit":"Umweltschutz - Nachhaltigkeit", "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/trinkwasser":"Umweltschutz - Trinkwasser", "https://musterdatenkatalog.de/def/musterdatensatz/umweltschutz/umweltzonen":"Umweltschutz - Umweltzonen", - "https://musterdatenkatalog.de/def/musterdatensatz/vereineVerbaende/einrichtungen":"Vereine, Verbände - Einrichtungen", + "https://musterdatenkatalog.de/def/musterdatensatz/vereineVerbaende/einrichtungen":"Vereine und Verbände - Einrichtungen", "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/information":"Volkshochschulen - Information", "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/programm":"Volkshochschulen - Programm", "https://musterdatenkatalog.de/def/musterdatensatz/volkshochschulen/teilnehmer":"Volkshochschulen - Teilnehmer",