示例#1
0
    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), content_type='application/json; charset=UTF-8')
示例#2
0
    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')
示例#3
0
    def create(self, request, workspace_id, tab_id):

        try:
            iwidget = json.loads(request.body)
        except ValueError as e:
            msg = _("malformed json data: %s") % unicode(e)
            return build_error_response(request, 400, msg)

        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')
        except (CatalogueResource.DoesNotExist, Widget.DoesNotExist) as e:
            msg = _('referred widget %(widget_uri)s does not exist.') % {'widget_uri': iwidget['widget']}
            return build_error_response(request, 422, msg)