Skip to content
Snippets Groups Projects
Commit 275b9b59 authored by Daniel Neuwirth's avatar Daniel Neuwirth
Browse files

Bugfix collection-resource upload

parent d799a540
Branches
Tags
No related merge requests found
......@@ -107,4 +107,30 @@ def tpsh_get_latest_resources_for_type(collection_name, type):
return latest
def tpsh_corrects_missing_relationship(context, pkg_dict):
'''
This function corrects missing relationship in show package.
Note this fix is only good with one or non relationship.
This error is well known but was not fixed. https://github.com/ckan/ckan/issues/3114
The error causes the deletation of relationships, because package_show is
used in resource_create to get the package.
'''
pkg_id = pkg_dict.get('id')
if model.Package.get(pkg_id).get_relationships():
relationship_from_model = model.Package.get(pkg_id).get_relationships()[0]
relationship_list = pkg_dict.get('relationships_as_subject')
type_pkg = pkg_dict.get('type')
if type_pkg == 'dataset' and not relationship_list:
relationship_for_package = {'__extras': {
'object_package_id': relationship_from_model.object_package_id,
'revision_id': relationship_from_model.revision_id,
'subject_package_id': relationship_from_model.subject_package_id,
'comment': relationship_from_model.subject_package_id,
'id': relationship_from_model.id,
'type': relationship_from_model.type
}}
pkg_dict['relationships_as_subject'].append(relationship_for_package)
return pkg_dict
......@@ -15,6 +15,7 @@ from ckan.lib.plugins import DefaultTranslation, DefaultDatasetForm
from ckan.logic.validators import tag_string_convert
import ckan.plugins as plugins
import ckan.plugins.toolkit as toolkit
import ckan.model as model
# imports from this extension
import ckanext.odsh.helpers as odsh_helpers
......@@ -159,6 +160,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
# key: 'daterange_prettified', value: string with prettified version
of daterange between date_start and date_end
'''
pkg_dict = helpers_tpsh.tpsh_corrects_missing_relationship(context, pkg_dict)
self._update_successor_and_predecessor_urls_in_pkg_dict(context, pkg_dict)
self._update_is_new_in_pkg_dict(pkg_dict)
self._update_daterange_prettified_in_pkg_dict(pkg_dict)
......@@ -212,6 +214,8 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
return dict_pkg
# IRoutes
def before_map(self, map):
......@@ -436,3 +440,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
score = s
if score > 0:
dict_pkg['openness'] = OdshPlugin.scores[score-1]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment