diff --git a/ckanext/odsh/helpers.py b/ckanext/odsh/helpers.py index 7ade4ebf635951d0eb643dac2ae6a94bd8cdc40b..2ffbe79c8ebedd07c58e2cb712114f049f28b826 100644 --- a/ckanext/odsh/helpers.py +++ b/ckanext/odsh/helpers.py @@ -500,6 +500,69 @@ def short_name_for_category(category_name): } return translations.get(category_name) +def odsh_load_applicable_legislations(): + ''' + 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) + + try: + with open(mapping_file_path) as mapping_json: + MAPPING = json.loads( + mapping_json.read(), object_pairs_hook=OrderedDict) + default = [{'value': 'Geltende Rechtsvorschrift wählen..', 'key': ''}] + options = [{'key': key, 'value': MAPPING[key]} + for key in MAPPING] + result = default+options + 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 result + +def odsh_load_hvd_categories(): + ''' + 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) + + try: + with open(mapping_file_path) as mapping_json: + MAPPING = json.loads( + mapping_json.read(), object_pairs_hook=OrderedDict) + default = [{'value': 'HVD Kategorie wählen..', 'key': ''}] + options = [{'key': key, 'value': MAPPING[key]} + for key in MAPPING] + result = default+options + 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 result def odsh_load_mdk_sample_dataset(): ''' diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index e71e23225605276ea1671b512ae911b56021bec7..705e794ce7559b6084c556e8c730c55ca39a55f0 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -348,6 +348,8 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm 'get_resource_size': helpers_odsh.get_resource_size, 'get_address_org':helpers_odsh.get_address_org, 'get_body_mail':helpers_odsh.get_body_mail, + 'odsh_load_applicable_legislations': helpers_odsh.odsh_load_applicable_legislations, + 'odsh_load_hvd_categories': helpers_odsh.odsh_load_hvd_categories, 'odsh_load_mdk_sample_dataset': helpers_odsh.odsh_load_mdk_sample_dataset, 'odsh_load_raw_mdk_sample_dataset': helpers_odsh.odsh_load_raw_mdk_sample_dataset, 'format_resource_format': helpers_odsh.format_resource_format,