diff --git a/ckan/controllers/package.py b/ckan/controllers/package.py index 8ce716aebb1..1aabd9bb93c 100644 --- a/ckan/controllers/package.py +++ b/ckan/controllers/package.py @@ -1566,7 +1566,7 @@ def resource_view(self, id, resource_id, view_id=None): if not view or not isinstance(view, dict): abort(404, _('Resource view not supplied')) - return h.rendered_resource_view(view, resource, package) + return h.rendered_resource_view(view, resource, package, embed=True) def resource_datapreview(self, id, resource_id): ''' diff --git a/ckan/lib/helpers.py b/ckan/lib/helpers.py index 1c8b928265e..aa13d2c534a 100644 --- a/ckan/lib/helpers.py +++ b/ckan/lib/helpers.py @@ -1627,7 +1627,7 @@ def get_allowed_view_types(resource, package): return allowed_view_types -def rendered_resource_view(resource_view, resource, package): +def rendered_resource_view(resource_view, resource, package, embed=False): ''' Returns a rendered resource view snippet. ''' @@ -1640,6 +1640,9 @@ def rendered_resource_view(resource_view, resource, package): template = view_plugin.view_template(context, data_dict) data_dict.update(vars) + if not view_plugin.info().get('iframed', True) and embed: + template = "package/snippets/resource_view_embed.html" + import ckan.lib.base as base return literal(base.render(template, extra_vars=data_dict)) diff --git a/ckan/templates/package/snippets/resource_view_embed.html b/ckan/templates/package/snippets/resource_view_embed.html new file mode 100644 index 00000000000..1e75bf3adeb --- /dev/null +++ b/ckan/templates/package/snippets/resource_view_embed.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} + +{%- block styles %} +{% endblock %} + +{%- block page %} + {{ h.rendered_resource_view(resource_view, resource, package) }} +{% endblock -%}