diff options
author | Michael Elkins <melkins@tislabs.com> | 2013-06-27 17:05:53 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2013-06-27 17:05:53 +0000 |
commit | dc95d563979b8adaf5340cdcd8e29e9740a4adb6 (patch) | |
tree | d62d76af62225d120436279618ddabb079044895 /rpkid | |
parent | 58098f3f393c4e925648139bb0ab3e3e422c61c8 (diff) |
add button to delete all alerts
rpkigui-reset-demo will clear all alerts for labuser* accounts
see #562
svn path=/trunk/; revision=5421
Diffstat (limited to 'rpkid')
-rw-r--r-- | rpkid/portal-gui/scripts/rpkigui-reset-demo.py | 3 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/models.py | 3 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/templates/app/alert_confirm_clear.html | 21 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/templates/app/alert_list.html | 5 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/urls.py | 1 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/views.py | 14 |
6 files changed, 46 insertions, 1 deletions
diff --git a/rpkid/portal-gui/scripts/rpkigui-reset-demo.py b/rpkid/portal-gui/scripts/rpkigui-reset-demo.py index 3c5c11a1..e1ff6134 100644 --- a/rpkid/portal-gui/scripts/rpkigui-reset-demo.py +++ b/rpkid/portal-gui/scripts/rpkigui-reset-demo.py @@ -35,6 +35,7 @@ for n in xrange(1, 33): print 'removing objects for ' + username for cls in (ROARequest, GhostbusterRequest): cls.objects.filter(issuer__handle=username).delete() - print '... updating resource certificate cache' conf = Conf.objects.get(handle=username) + conf.clear_alerts() + print '... updating resource certificate cache' list_received_resources(sys.stdout, conf) diff --git a/rpkid/rpki/gui/app/models.py b/rpkid/rpki/gui/app/models.py index 5b33be5e..7d643fdc 100644 --- a/rpkid/rpki/gui/app/models.py +++ b/rpkid/rpki/gui/app/models.py @@ -197,6 +197,9 @@ class Conf(rpki.irdb.models.ResourceHolderCA): ) return notify_emails + def clear_alerts(self): + self.alerts.all().delete() + class Meta: proxy = True diff --git a/rpkid/rpki/gui/app/templates/app/alert_confirm_clear.html b/rpkid/rpki/gui/app/templates/app/alert_confirm_clear.html new file mode 100644 index 00000000..5d7fcf04 --- /dev/null +++ b/rpkid/rpki/gui/app/templates/app/alert_confirm_clear.html @@ -0,0 +1,21 @@ +{% extends "app/app_base.html" %} +{% load url from future %} + +{% block content %} +<div class='page-header'> + <h1>Delete all alerts</h1> +</div> + +<div class="row-fluid"> + <div class="alert"> + Please confirm that you would like to delete all alerts. + </div> + <form method="POST"> + {% csrf_token %} + <div class="form-actions"> + <button class="btn btn-danger" type="submit"><i class="icon-trash"></i> Delete All</button> + <a class="btn" href="{% url "alert-list" %}">Cancel</a> + </div> + </form> +</div> +{% endblock %} diff --git a/rpkid/rpki/gui/app/templates/app/alert_list.html b/rpkid/rpki/gui/app/templates/app/alert_list.html index 83c8232e..dd0530e4 100644 --- a/rpkid/rpki/gui/app/templates/app/alert_list.html +++ b/rpkid/rpki/gui/app/templates/app/alert_list.html @@ -1,4 +1,5 @@ {% extends "app/app_base.html" %} +{% load url from future %} {% block content %} <div class="page-header"> @@ -23,4 +24,8 @@ {% endfor %} </tbody> </table> + +<div class='row-fluid'> + <a class="btn btn-danger" href="{% url 'alert-clear-all' %}"><i class='icon-trash'></i> Delete All</a> +</div> {% endblock content %} diff --git a/rpkid/rpki/gui/app/urls.py b/rpkid/rpki/gui/app/urls.py index 8e61337c..92e90b0e 100644 --- a/rpkid/rpki/gui/app/urls.py +++ b/rpkid/rpki/gui/app/urls.py @@ -22,6 +22,7 @@ urlpatterns = patterns( '', (r'^$', views.dashboard), url(r'^alert/$', views.AlertListView.as_view(), name='alert-list'), + url(r'^alert/clear_all$', views.alert_clear_all, name='alert-clear-all'), url(r'^alert/(?P<pk>\d+)/$', views.AlertDetailView.as_view(), name='alert-detail'), url(r'^alert/(?P<pk>\d+)/delete$', views.AlertDeleteView.as_view(), diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py index 0747aef5..db4cf0c1 100644 --- a/rpkid/rpki/gui/app/views.py +++ b/rpkid/rpki/gui/app/views.py @@ -1298,3 +1298,17 @@ class AlertDeleteView(DeleteView): def get_queryset(self, **kwargs): conf = self.request.session['handle'] return conf.alerts.all() + + +@handle_required +def alert_clear_all(request): + """Clear all alerts associated with the current resource holder.""" + if request.method == 'POST': + form = forms.Empty(request.POST, request.FILES) + if form.is_valid(): + # delete alerts + request.session['handle'].clear_alerts() + return redirect('alert-list') + else: + form = forms.Empty() + return render(request, 'app/alert_confirm_clear.html', {'form': form}) |