def delete(self, request, workspace_id, last_user=''): user = get_user_authentication(request) user_workspaces = UserWorkSpace.objects.select_related('workspace') try: user_workspace = user_workspaces.get(user__id=user.id, workspace__id=workspace_id) except UserWorkSpace.DoesNotExist: raise Http404 workspace = user_workspace.workspace if workspace.creator != user or user_workspace.manager != '': return HttpResponseForbidden() # Check if the user does not have any other workspace workspaces = WorkSpace.objects.filter(users__id=user.id).exclude(pk=workspace_id) if workspaces.count() == 0: msg = _("workspace cannot be deleted") raise TracedServerError(None, {'workspace': workspace_id}, request, msg) # Remove the workspace PublishedWorkSpace.objects.filter(workspace=workspace).update(workspace=None) igadgets = IGadget.objects.filter(tab__workspace=workspace) for igadget in igadgets: deleteIGadget(igadget, user) workspace.delete() # Set a new active workspace (first workspace by default) activeWorkspace = workspaces[0] setActiveWorkspace(user, activeWorkspace) return HttpResponse('ok')
def deleteGadget(user, short_name, vendor, version): result = {'removedIGadgets': []} # Remove all igadget that matches this Gadget Resource try: gadget = Gadget.objects.get(name=short_name, vendor=vendor, version=version) igadgets = IGadget.objects.filter(gadget=gadget) for igadget in igadgets: result['removedIGadgets'].append(igadget.id) deleteIGadget(igadget, user) gadget.delete() except Gadget.DoesNotExist: pass try: uri = "/gadgets/" + vendor + '/' + short_name + '/' + version + '/xhtml' xhtml = XHTML.objects.get(uri=uri) xhtml.delete() except XHTML.DoesNotExist: pass return result
def deleteTab(tab, user): #Deleting igadgets igadgets = IGadget.objects.filter(tab=tab) for igadget in igadgets: deleteIGadget(igadget, user) # Deleting tab tab.delete()
def delete(self, request, workspace_id, tab_id, igadget_id): user = get_user_authentication(request) # Gets Igadget, if it does not exist, a http 404 error is returned igadget = get_object_or_404(IGadget, tab__workspace__users__id=user.id, tab__workspace__pk=workspace_id, tab__pk=tab_id, pk=igadget_id) deleteIGadget(igadget, user) return HttpResponse('ok')
try: user = getTargetUser(request.user, user_name) except Exception, e: json = json_encode({"message": str(e), "result": "error"}) return HttpResponseServerError(json, mimetype='application/json; charset=UTF-8') gadget = Gadget.objects.get(id=gadget_id) #userWorkspaces = UserWorkSpace.objects.filter(user=request.user) #userTabs = Tab.objects.filter(workspace__in=userWorkspaces) #igadgets = IGadget.objects.filter(gadget=gadget, tab__in=userTabs) igadgets = IGadget.objects.filter(gadget=gadget, tab__workspace__users__id=user.id) values = [] for ig in igadgets: values.append(ig.id) deleteIGadget(ig, user) return HttpResponse(json_encode({"result": "ok", "deleted_igadgets": values}), mimetype='application/json; charset=UTF-8') class IGadgetEntry(Resource): @basicauth_or_logged_in() @transaction.commit_on_success def delete(self, request, igadget_id, user_name=None): # Get the target user, either the user stored in the request or the parameter of the URL try: user = getTargetUser(request.user, user_name) except Exception, e: