Skip to content

Commit

Permalink
Merge pull request #406 from keitaroinc/visuals_delete
Browse files Browse the repository at this point in the history
Deletes visualizations when resource/package are deleted
  • Loading branch information
Pavle Jonoski committed Jun 23, 2020
2 parents d1dbf49 + 7e0e0f3 commit 5f6d4de
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
40 changes: 39 additions & 1 deletion ckanext/knowledgehub/logic/action/delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from ckan import model
from ckan.model import Session
from ckan.logic.action.delete import package_delete as ckan_package_delete
from ckan.logic.action.delete import resource_delete as ckan_resource_delete

from hdx.data.dataset import Dataset

Expand Down Expand Up @@ -497,13 +498,50 @@ def package_delete(context, data_dict):
:type id: string
'''

id = data_dict.get('id')
try:
result = toolkit.get_action('search_visualizations')(context, {
'text': '*',
'fq': [
'+khe_package_id:{0}'.format(data_dict['id']),
]})
if result['count'] > 0:
for res in result['results']:
resource_view_delete(context, { 'id': res['id'] })
except Exception as e:
log.error('Failed to delete visualization. Error: %s', str(e))
log.exception(e)
ckan_package_delete(context, data_dict)
try:
KWHData.delete({'dataset': data_dict['id']})
except Exception as e:
log.debug('Cannot remove dataset from kwh data %s' % str(e))

def resource_delete(context, data_dict):
'''Delete a resource from a dataset.
You must be a sysadmin or the owner of the resource to delete it.
:param id: the id of the resource
:type id: string
'''

id = data_dict.get('id')
try:
result = toolkit.get_action('search_visualizations')(context, {
'text': '*',
'fq': [
'+khe_resource_id:{0}'.format(data_dict['id']),
]})
if result['count'] > 0:
for res in result['results']:
resource_view_delete(context, { 'id': res['id'] })
except Exception as e:
log.error('Failed to delete visualization. Error: %s', str(e))
log.exception(e)

ckan_resource_delete(context, data_dict)

def delete_resource_from_hdx(context, data_dict):

Expand Down
5 changes: 5 additions & 0 deletions ckanext/knowledgehub/logic/auth/delete.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from ckan.logic.auth.delete import package_delete as ckan_package_delete
from ckan.logic.auth.delete import resource_delete as ckan_resource_delete


def theme_delete(context, data_dict):
Expand Down Expand Up @@ -84,3 +85,7 @@ def comment_delete(context, data_dict=None):

def like_delete(context, data_dict=None):
return {'success': True}

def resource_delete(context, data_dict):
return {'success': True }

0 comments on commit 5f6d4de

Please sign in to comment.