diff options
-rw-r--r-- | rpkid/rpki/gui/app/urls.py | 2 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/views.py | 38 |
2 files changed, 21 insertions, 19 deletions
diff --git a/rpkid/rpki/gui/app/urls.py b/rpkid/rpki/gui/app/urls.py index 570ed7bb..c5b85c39 100644 --- a/rpkid/rpki/gui/app/urls.py +++ b/rpkid/rpki/gui/app/urls.py @@ -38,7 +38,7 @@ urlpatterns = patterns( url(r'^gbr/create$', views.ghostbuster_create, name='gbr-create'), url(r'^gbr/(?P<pk>\d+)/$', views.GhostbusterDetailView.as_view(), name='gbr-detail'), url(r'^gbr/(?P<pk>\d+)/edit$', views.ghostbuster_edit, name='gbr-edit'), - url(r'^gbr/(?P<pk>\d+)/delete$', views.GhostbusterDeleteView.as_view(), name='gbr-delete'), + url(r'^gbr/(?P<pk>\d+)/delete$', views.ghostbuster_delete, name='gbr-delete'), (r'^refresh$', views.refresh), (r'^client/import$', views.client_import), (r'^client/(?P<pk>\d+)/$', views.client_detail), diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py index efcd8127..fc1e9cce 100644 --- a/rpkid/rpki/gui/app/views.py +++ b/rpkid/rpki/gui/app/views.py @@ -29,9 +29,9 @@ from django.contrib.auth.decorators import login_required from django.shortcuts import get_object_or_404, render from django.utils.http import urlquote from django import http -from django.core.urlresolvers import reverse, reverse_lazy +from django.core.urlresolvers import reverse from django.contrib.auth.models import User -from django.views.generic import DetailView, DeleteView +from django.views.generic import DetailView from rpki.irdb import Zookeeper, ChildASN, ChildNet from rpki.gui.app import models, forms, glue, range_list @@ -563,22 +563,24 @@ class GhostbusterDetailView(DetailView): return self.request.session['handle'].ghostbusters -class GenericDeleteView(DeleteView): - """Subclasses should implement the get_queryset() method. - - """ - template_name = 'app/object_confirm_delete.html' - success_url = reverse_lazy(dashboard) - - def get_context_data(self, **kwargs): - context = super(GenericDeleteView, self).get_context_data(**kwargs) - context['parent_template'] = 'app/%s_detail.html' % self.object.__class__.__name__.lower() - return context - - -class GhostbusterDeleteView(GenericDeleteView): - def get_queryset(self): - return self.request.session['handle'].ghostbusters +@handle_required +def ghostbuster_delete(request, pk): + conf = request.session['handle'] + logstream = request.META['wsgi.errors'] + obj = get_object_or_404(conf.ghostbusters, pk=pk) + if request.method == 'POST': + form = forms.Empty(request.POST, request.FILES) + if form.is_valid(): + obj.delete() + Zookeeper(handle=conf.handle, logstream=logstream).run_rpkid_now() + return http.HttpResponseRedirect(reverse(dashboard)) + else: + form = forms.Empty(request.POST, request.FILES) + return render(request, 'app/object_confirm_delete.html', { + 'object': obj, + 'form': form, + 'parent_template': 'app/ghostbusterrequest_detail.html' + }) @handle_required |