def create(self, request, workspace_id, tab_id): iwidget = parse_json_request(request) initial_variable_values = iwidget.get('variable_values', None) # iWidget creation tab = get_object_or_404(Tab.objects.select_related('workspace'), workspace__pk=workspace_id, pk=tab_id) if not request.user.is_superuser and tab.workspace.creator != request.user: msg = _( 'You have not enough permission for adding iwidgets to the workspace' ) return build_error_response(request, 403, msg) try: iwidget = SaveIWidget(iwidget, request.user, tab, initial_variable_values) iwidget_data = get_iwidget_data(iwidget, tab.workspace, user=request.user) return HttpResponse(json.dumps(iwidget_data), content_type='application/json; charset=UTF-8', status=201) except (CatalogueResource.DoesNotExist, Widget.DoesNotExist) as e: msg = _('refered widget %(widget_uri)s does not exist.') % { 'widget_uri': iwidget['widget'] } return build_error_response(request, 422, msg) except TypeError as e: return build_error_response(request, 400, e) except ValueError as e: return build_error_response(request, 422, e)
def read(self, request, workspace_id, tab_id, iwidget_id): workspace = get_object_or_404(Workspace, id=workspace_id) iwidget = get_object_or_404(IWidget, tab__workspace__users=request.user, tab__workspace=workspace, tab__pk=tab_id, pk=iwidget_id) iwidget_data = get_iwidget_data(iwidget, workspace, user=request.user) return HttpResponse(json.dumps(iwidget_data, sort_keys=True), content_type='application/json; charset=UTF-8')
def read(self, request, workspace_id, tab_id): workspace = get_object_or_404(Workspace, id=workspace_id) cache_manager = VariableValueCacheManager(workspace, request.user) iwidgets = IWidget.objects.filter(tab__workspace__users=request.user, tab__workspace__pk=workspace_id, tab__pk=tab_id) data = [get_iwidget_data(iwidget, workspace, cache_manager) for iwidget in iwidgets] return HttpResponse(json.dumps(data), content_type='application/json; charset=UTF-8')
def read(self, request, workspace_id, tab_id): tab = get_object_or_404(Tab.objects.select_related('workspace'), workspace__pk=workspace_id, pk=tab_id) if not tab.workspace.is_available_for(request.user): return build_error_response(request, 403, _("You don't have permission to access this workspace")) cache_manager = VariableValueCacheManager(tab.workspace, request.user) iwidgets = tab.iwidget_set.all() data = [get_iwidget_data(iwidget, tab.workspace, cache_manager) for iwidget in iwidgets] return HttpResponse(json.dumps(data, sort_keys=True), content_type='application/json; charset=UTF-8')
def read(self, request, workspace_id, tab_id): tab = get_object_or_404(Tab.objects.select_related('workspace'), workspace__pk=workspace_id, pk=tab_id) if not tab.workspace.is_available_for(request.user): return build_error_response( request, 403, _("You don't have permission to access this workspace")) cache_manager = VariableValueCacheManager(tab.workspace, request.user) iwidgets = tab.iwidget_set.all() data = [ get_iwidget_data(iwidget, tab.workspace, cache_manager) for iwidget in iwidgets ] return HttpResponse(json.dumps(data, sort_keys=True), content_type='application/json; charset=UTF-8')
def create(self, request, workspace_id, tab_id): iwidget = parse_json_request(request) initial_variable_values = iwidget.get('variable_values', None) # iWidget creation tab = get_object_or_404(Tab.objects.select_related('workspace'), workspace__pk=workspace_id, pk=tab_id) if not request.user.is_superuser and tab.workspace.creator != request.user: msg = _('You have not enough permission for adding iwidgets to the workspace') return build_error_response(request, 403, msg) try: iwidget = SaveIWidget(iwidget, request.user, tab, initial_variable_values) iwidget_data = get_iwidget_data(iwidget, tab.workspace, user=request.user) return HttpResponse(json.dumps(iwidget_data), content_type='application/json; charset=UTF-8', status=201) except (CatalogueResource.DoesNotExist, Widget.DoesNotExist) as e: msg = _('refered widget %(widget_uri)s does not exist.') % {'widget_uri': iwidget['widget']} return build_error_response(request, 422, msg) except TypeError as e: return build_error_response(request, 400, e) except ValueError as e: return build_error_response(request, 422, e)