diff --git a/infoscreen/static/html/infoscreen_admin.html b/infoscreen/static/html/infoscreen_admin.html index 89262df..5a28847 100644 --- a/infoscreen/static/html/infoscreen_admin.html +++ b/infoscreen/static/html/infoscreen_admin.html @@ -24,14 +24,18 @@ Select rotation to edit: - + + + + +
RotationSelect
RotationSelectDelete
{{r.name}}
diff --git a/infoscreen/static/js/infoadmin_controllers.js b/infoscreen/static/js/infoadmin_controllers.js index d7ff0e4..1e0ca2a 100644 --- a/infoscreen/static/js/infoadmin_controllers.js +++ b/infoscreen/static/js/infoadmin_controllers.js @@ -38,15 +38,19 @@ app.service("InstanceList", ["$http", function($http){ } }); } + this.deleteInstance = function(id){ + $http.delete("/infoscreen/instance/"+id).then(function(response){ + self.getRotation(self.selected_rot.id); + }); + } this.createRotation = function(name) { data = {'name': name} console.log(name) $http.post("/infoscreen/create_rotation", data).then(function(response) { }); } - this.deleteInstance = function(id){ - $http.delete("/infoscreen/instance/"+id).then(function(response){ - self.getRotation(self.selected_rot.id); + this.deleteRotation = function(id) { + $http.delete("/infoscreen/delete_rotation/" + id).then(function(response) { }); } }]); @@ -90,6 +94,11 @@ app.controller('infoadmin_ctrl', function($scope, $http, $window, ItemList, Inst InstanceList.createRotation(name); $window.location.reload(); }; + $scope.deleteRotation = function(id) { + InstanceList.deleteRotation(id); + $window.location.reload(); + } + $scope.createInstance = InstanceList.createInstance; $scope.deleteInstance = InstanceList.deleteInstance; // fetch data diff --git a/infoscreen/views.py b/infoscreen/views.py index 6865045..7f3c47b 100644 --- a/infoscreen/views.py +++ b/infoscreen/views.py @@ -154,6 +154,21 @@ def createRotation(request, *args, **kwargs): return resp +@require_http_methods(["DELETE"]) +@ensure_csrf_cookie +@permission_required('infoscreen.delete_rotation', login_url='/login') +def deleteRotation(request, *args, **kwargs): + + id = kwargs.pop("id", 0) + logging.warning("Deleting rotation with id={}".format(id)) + + try: + Rotation.objects.filter(id=id).delete() + resp = HttpResponse(status=200) + except: + resp = HttpResponse('{"error" : "could not delete rotation!"}', status=400) + + return resp createInstance = itemCreator(InfoInstance) deleteInstance = itemDeletor(InfoInstance) diff --git a/sikweb/urls.py b/sikweb/urls.py index 858a106..76e75ad 100644 --- a/sikweb/urls.py +++ b/sikweb/urls.py @@ -45,6 +45,7 @@ from infoscreen.views import createImageItem from infoscreen.views import createABBItem from infoscreen.views import createSossoItem from infoscreen.views import createRotation +from infoscreen.views import deleteRotation from infoscreen.views import admin as infoscreen_admin #application from members.views import applicationindex @@ -84,6 +85,7 @@ urlpatterns = [ url(r'^infoscreen/create_sossoitem$', createSossoItem), url(r'^infoscreen/admin$', infoscreen_admin), url(r'^infoscreen/create_rotation$', createRotation), + url(r'^infoscreen/delete_rotation/(?P\d+)$', deleteRotation), #application url(r'^application/$', applicationindex), url(r'^application/success$', applicationSuccessIndex),