From ca908d3463c34697db6915cce5b9f3d920bc8184 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Mon, 24 Sep 2012 11:48:20 +0100 Subject: [PATCH] use generic action for previews --- ckan/config/routing.py | 6 +----- ckan/controllers/package.py | 40 ++----------------------------------- ckan/lib/helpers.py | 10 +++++----- 3 files changed, 8 insertions(+), 48 deletions(-) diff --git a/ckan/config/routing.py b/ckan/config/routing.py index 4e4dbc9606e..033f1afdcc1 100644 --- a/ckan/config/routing.py +++ b/ckan/config/routing.py @@ -213,12 +213,8 @@ def make_map(): action='resource_embedded_dataviewer') m.connect('/dataset/{id}/resource/{resource_id}/viewer', action='resource_embedded_dataviewer', width="960", height="800") - m.connect('/dataset/{id}/resource/{resource_id}/datapreview', + m.connect('/dataset/{id}/resource/{resource_id}/datapreview/{style}', action='resource_datapreview') - m.connect('/dataset/{id}/resource/{resource_id}/pdfpreview', - action='resource_pdfpreview') - m.connect('/dataset/{id}/resource/{resource_id}/jsonpreview', - action='resource_jsonpreview') # group map.redirect('/groups', '/group') diff --git a/ckan/controllers/package.py b/ckan/controllers/package.py index 6b1772a20eb..c146bf1da0b 100644 --- a/ckan/controllers/package.py +++ b/ckan/controllers/package.py @@ -1279,7 +1279,7 @@ def _parse_recline_state(self, params): recline_state.pop(k) return recline_state - def resource_datapreview(self, id, resource_id): + def resource_datapreview(self, id, resource_id, style): ''' Embeded page for a resource data-preview. ''' @@ -1295,40 +1295,4 @@ def resource_datapreview(self, id, resource_id): abort(404, _('Resource not found')) except NotAuthorized: abort(401, _('Unauthorized to read resource %s') % id) - return render('dataviewer/recline.html') - - def resource_pdfpreview(self, id, resource_id): - ''' - Embeded page for a resource pdf-preview. - ''' - context = {'model': model, 'session': model.Session, - 'user': c.user or c.author} - - try: - c.resource = get_action('resource_show')(context, - {'id': resource_id}) - c.package = get_action('package_show')(context, {'id': id}) - c.resource_json = json.dumps(c.resource) - except NotFound: - abort(404, _('Resource not found')) - except NotAuthorized: - abort(401, _('Unauthorized to read resource %s') % id) - return render('dataviewer/pdf.html') - - def resource_jsonpreview(self, id, resource_id): - ''' - Embeded page for a resource json-preview. - ''' - context = {'model': model, 'session': model.Session, - 'user': c.user or c.author} - - try: - c.resource = get_action('resource_show')(context, - {'id': resource_id}) - c.package = get_action('package_show')(context, {'id': id}) - c.resource_json = json.dumps(c.resource) - except NotFound: - abort(404, _('Resource not found')) - except NotAuthorized: - abort(401, _('Unauthorized to read resource %s') % id) - return render('dataviewer/json.html') + return render('dataviewer/{style}.html'.format(style=style)) diff --git a/ckan/lib/helpers.py b/ckan/lib/helpers.py index d7d85d5c085..8eca683b7bd 100644 --- a/ckan/lib/helpers.py +++ b/ckan/lib/helpers.py @@ -1324,13 +1324,13 @@ def resource_preview(resource, pkg_id): if resource.get('datastore_active') or format_lower in ['csv', 'xls', 'tsv']: url = url_for(controller='package', action='resource_datapreview', - resource_id=resource['id'], id=pkg_id, qualified=True) + resource_id=resource['id'], style='recline', id=pkg_id, qualified=True) elif format_lower == 'pdf': - url = url_for(controller='package', action='resource_pdfpreview', - resource_id=resource['id'], id=pkg_id, qualified=True) + url = url_for(controller='package', action='resource_datapreview', + resource_id=resource['id'], style='pdf', id=pkg_id, qualified=True) elif format_lower == 'jsonp': - url = url_for(controller='package', action='resource_jsonpreview', - resource_id=resource['id'], id=pkg_id, qualified=True) + url = url_for(controller='package', action='resource_datapreview', + resource_id=resource['id'], style='json', id=pkg_id, qualified=True) elif format_lower in LOADABLE: url = resource['url'] elif format_lower in DIRECT_EMBEDS: