def get(self, package_type, id, resource_id): context = self._prepare(id) try: resource_dict = get_action(u'resource_show')( context, { u'id': resource_id } ) pkg_id = id except NotAuthorized: return base.abort( 403, _(u'Unauthorized to delete resource %s') % u'' ) except NotFound: return base.abort(404, _(u'Resource not found')) # TODO: remove g.resource_dict = resource_dict g.pkg_id = pkg_id return base.render( u'package/confirm_delete_resource.html', { u'dataset_type': _get_package_type(id), u'resource_dict': resource_dict, u'pkg_id': pkg_id } )
def views(package_type, id, resource_id): package_type = _get_package_type(id) context = { u'model': model, u'session': model.Session, u'user': g.user, u'for_view': True, u'auth_user_obj': g.userobj } data_dict = {u'id': id} try: check_access(u'package_update', context, data_dict) except NotAuthorized: return base.abort( 403, _(u'User %r not authorized to edit %s') % (g.user, id) ) # check if package exists try: pkg_dict = get_action(u'package_show')(context, data_dict) pkg = context[u'package'] except (NotFound, NotAuthorized): return base.abort(404, _(u'Dataset not found')) try: resource = get_action(u'resource_show')(context, {u'id': resource_id}) views = get_action(u'resource_view_list')( context, { u'id': resource_id } ) except NotFound: return base.abort(404, _(u'Resource not found')) except NotAuthorized: return base.abort(403, _(u'Unauthorized to read resource %s') % id) _setup_template_variables(context, {u'id': id}, package_type=package_type) # TODO: remove g.pkg_dict = pkg_dict g.pkg = pkg g.resource = resource g.views = views return base.render( u'package/resource_views.html', { u'pkg_dict': pkg_dict, u'pkg': pkg, u'resource': resource, u'views': views } )
def get(self, package_type, id, resource_id, view_id=None, post_extra=None): context, extra_vars = self._prepare(id, resource_id) to_preview = extra_vars[u'to_preview'] if post_extra: extra_vars.update(post_extra) package_type = _get_package_type(id) data = extra_vars[u'data'] if u'data' in extra_vars else None if data and u'view_type' in data: view_type = data.get(u'view_type') else: view_type = request.args.get(u'view_type') # view_id exists only when updating if view_id: if not data or not view_type: try: view_data = get_action(u'resource_view_show')( context, { u'id': view_id }) view_type = view_data[u'view_type'] if data: data.update(view_data) else: data = view_data except (NotFound, NotAuthorized): return base.abort(404, _(u'View not found')) # might as well preview when loading good existing view if not extra_vars[u'errors']: to_preview = True data[u'view_type'] = view_type view_plugin = lib_datapreview.get_view_plugin(view_type) if not view_plugin: return base.abort(404, _(u'View Type Not found')) _setup_template_variables(context, {u'id': id}, package_type=package_type) data_dict = { u'package': extra_vars[u'pkg_dict'], u'resource': extra_vars[u'resource'], u'resource_view': data } view_template = view_plugin.view_template(context, data_dict) form_template = view_plugin.form_template(context, data_dict) extra_vars.update({ u'form_template': form_template, u'view_template': view_template, u'data': data, u'to_preview': to_preview, u'datastore_available': plugins.plugin_loaded(u'datastore') }) extra_vars.update( view_plugin.setup_template_variables(context, data_dict) or {}) extra_vars.update(data_dict) if view_id: return base.render(u'package/edit_view.html', extra_vars) return base.render(u'package/new_view.html', extra_vars)
def get( self, package_type, id, resource_id, view_id=None, post_extra=None ): context, extra_vars = self._prepare(id, resource_id) to_preview = extra_vars[u'to_preview'] if post_extra: extra_vars.update(post_extra) package_type = _get_package_type(id) view_type = None # view_id exists only when updating if view_id: try: old_data = get_action(u'resource_view_show')( context, { u'id': view_id } ) data = extra_vars[u'data'] or old_data view_type = old_data.get(u'view_type') # might as well preview when loading good existing view if not extra_vars[u'errors']: to_preview = True except (NotFound, NotAuthorized): return base.abort(404, _(u'View not found')) view_type = view_type or request.args.get(u'view_type') data[u'view_type'] = view_type view_plugin = lib_datapreview.get_view_plugin(view_type) if not view_plugin: return base.abort(404, _(u'View Type Not found')) _setup_template_variables( context, {u'id': id}, package_type=package_type ) data_dict = { u'package': extra_vars[u'pkg_dict'], u'resource': extra_vars[u'resource'], u'resource_view': data } view_template = view_plugin.view_template(context, data_dict) form_template = view_plugin.form_template(context, data_dict) extra_vars.update({ u'form_template': form_template, u'view_template': view_template, u'data': data, u'to_preview': to_preview, u'datastore_available': plugins.plugin_loaded(u'datastore') }) extra_vars.update( view_plugin.setup_template_variables(context, data_dict) or {} ) extra_vars.update(data_dict) if view_id: return base.render(u'package/edit_view.html', extra_vars) return base.render(u'package/new_view.html', extra_vars)