示例#1
0
    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)
示例#2
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, sort_keys=True), content_type='application/json; charset=UTF-8')
示例#3
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')
示例#4
0
    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')
示例#5
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, sort_keys=True),
                            content_type='application/json; charset=UTF-8')
示例#6
0
    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')
示例#7
0
    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)