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

Updated functions loading hvd and appl. legislation mappings

parent 5246f6e1
No related branches found
No related tags found
1 merge request!52Added applicableLegislation and hvdCategory support
......@@ -15,6 +15,7 @@ import urllib.parse
import urllib.error
import hashlib
import re
import os
import csv
from ckan.common import config, request, g, c
from urllib.parse import urlsplit, urlunsplit
......@@ -500,65 +501,48 @@ def short_name_for_category(category_name):
}
return translations.get(category_name)
def odsh_load_applicable_legislations():
def _load_mapping(mapping_file_path, uri=None):
result = None
try:
with open(mapping_file_path) as mapping_json:
MAPPING = json.load(mapping_json, object_pairs_hook=OrderedDict)
if uri:
# Filter MAPPING to find the entry with the matching uri
filtered_entries = [entry for entry in MAPPING if entry.get('uri') == uri]
result = filtered_entries[0] if filtered_entries else None
else:
# If no uri provided, return all entries in key/value format (used in form)
result = [{'key': entry['uri'], 'value': entry.get('short_title', entry['title'])} for entry in MAPPING]
except FileNotFoundError:
print("File not found or path is incorrect.")
except json.JSONDecodeError:
print("Error decoding JSON.")
return result
def odsh_load_applicable_legislations(uri=None):
'''
Load applicable legislations.
'''
extension_path = pkg_resources.resource_filename('ckanext.odsh', '')
default_mapping_file_path = extension_path + '/resources/applicable_legislations.json'
mapping_file_path = config.get(
'ckanext.odsh.applicable_legislations_file_path', default_mapping_file_path)
default_mapping_file_path = os.path.join(extension_path, 'resources', 'applicable_legislations.json')
mapping_file_path = config.get('ckanext.odsh.applicable_legislations_file_path', default_mapping_file_path)
try:
with open(mapping_file_path) as mapping_json:
MAPPING = json.loads(
mapping_json.read(), object_pairs_hook=OrderedDict)
options = [{'key': key, 'value': MAPPING[key]}
for key in MAPPING]
except IOError as err:
log.error(
'Could not load mapping file from {}'
.format(mapping_file_path)
)
raise
except ValueError as err:
log.error(
'Could not convert mapping file from json. \nMapping file: {}'
.format(mapping_file_path)
)
raise
return options
return _load_mapping(mapping_file_path, uri)
def odsh_load_hvd_categories():
def odsh_load_hvd_categories(uri=None):
'''
Load HVD categories.
'''
extension_path = pkg_resources.resource_filename('ckanext.odsh', '')
default_mapping_file_path = extension_path + '/resources/hvd_categories.json'
mapping_file_path = config.get(
'ckanext.odsh.hvd_categories_file_path', default_mapping_file_path)
default_mapping_file_path = os.path.join(extension_path, 'resources', 'hvd_categories.json')
mapping_file_path = config.get('ckanext.odsh.hvd_categories_file_path', default_mapping_file_path)
try:
with open(mapping_file_path) as mapping_json:
MAPPING = json.loads(
mapping_json.read(), object_pairs_hook=OrderedDict)
options = [{'key': key, 'value': MAPPING[key]}
for key in MAPPING]
except IOError as err:
log.error(
'Could not load mapping file from {}'
.format(mapping_file_path)
)
raise
except ValueError as err:
log.error(
'Could not convert mapping file from json. \nMapping file: {}'
.format(mapping_file_path)
)
raise
return options
return _load_mapping(mapping_file_path, uri)
def odsh_load_mdk_sample_dataset():
'''
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment