Commit c85a3779 by Kálmán Viktor

dashboard: mass delete as generic View

parent 4f31c740
...@@ -3,7 +3,7 @@ from django.conf.urls import patterns, url ...@@ -3,7 +3,7 @@ from django.conf.urls import patterns, url
from vm.models import Instance from vm.models import Instance
from .views import ( from .views import (
IndexView, VmDetailView, VmList, VmCreate, TemplateDetail, AclUpdateView, IndexView, VmDetailView, VmList, VmCreate, TemplateDetail, AclUpdateView,
VmDelete, mass_delete_vm, vm_activity) VmDelete, VmMassDelete, vm_activity)
urlpatterns = patterns( urlpatterns = patterns(
'', '',
...@@ -19,7 +19,7 @@ urlpatterns = patterns( ...@@ -19,7 +19,7 @@ urlpatterns = patterns(
name='dashboard.views.vm-create'), name='dashboard.views.vm-create'),
url(r'^vm/delete/(?P<pk>\d+)/$', VmDelete.as_view(), url(r'^vm/delete/(?P<pk>\d+)/$', VmDelete.as_view(),
name="dashboard.views.delete-vm"), name="dashboard.views.delete-vm"),
url(r'^vm/mass-delete/', mass_delete_vm, url(r'^vm/mass-delete/', VmMassDelete.as_view(),
name='dashboard.view.mass-delete-vm'), name='dashboard.view.mass-delete-vm'),
url(r'^vm/(?P<pk>\d+)/activity/$', vm_activity) url(r'^vm/(?P<pk>\d+)/activity/$', vm_activity)
) )
...@@ -332,20 +332,22 @@ class VmDelete(DeleteView): ...@@ -332,20 +332,22 @@ class VmDelete(DeleteView):
return reverse_lazy('dashboard.index') return reverse_lazy('dashboard.index')
def mass_delete_vm(request, **kwargs): class VmMassDelete(View):
if request.method == "GET": def get(self, request, *args, **kwargs):
vms = request.GET.getlist('v[]') vms = request.GET.getlist('v[]')
objects = Instance.objects.filter(pk__in=vms) objects = Instance.objects.filter(pk__in=vms)
return render(request, "dashboard/confirm/mass-delete.html", return render(request, "dashboard/confirm/mass-delete.html",
{'objects': objects}) {'objects': objects})
def post(self, request, *args, **kwargs):
vms = request.POST.getlist('vms') vms = request.POST.getlist('vms')
names = [] names = []
if vms is not None: if vms is not None:
for i in Instance.objects.filter(pk__in=vms): for i in Instance.objects.filter(pk__in=vms):
if not i.has_level(request.user, 'owner'): if not i.has_level(request.user, 'owner'):
logger.info('Tried to delete instance #%d without owner ' logger.info('Tried to delete instance #%d without owner '
'permission by %s.', i.pk, unicode(request.user)) 'permission by %s.', i.pk,
unicode(request.user))
raise PermissionDenied() # no need for rollback or proper raise PermissionDenied() # no need for rollback or proper
# error message, this can't # error message, this can't
# normally happen. # normally happen.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment