diff options
-rw-r--r-- | rpkid/rpki/gui/app/templates/app/dashboard.html | 1 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/urls.py | 1 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/views.py | 9 |
3 files changed, 11 insertions, 0 deletions
diff --git a/rpkid/rpki/gui/app/templates/app/dashboard.html b/rpkid/rpki/gui/app/templates/app/dashboard.html index 36e7c46e..dde9a765 100644 --- a/rpkid/rpki/gui/app/templates/app/dashboard.html +++ b/rpkid/rpki/gui/app/templates/app/dashboard.html @@ -125,6 +125,7 @@ <td> <a class="btn btn-mini" href="{% url "rpki.gui.app.views.roa_detail" roa.pk %}" title="Detail"><i class="icon-info-sign"></i></a> <a class="btn btn-mini" href="{% url "rpki.gui.app.views.roa_delete" roa.pk %}" title="Delete"><i class="icon-trash"></i></a> + <a class="btn btn-mini" href="{% url "roa-clone" roa.pk %}" title="create another ROA for this prefix"><i class="icon-repeat"></i></a> </td> </tr> {% endfor %} diff --git a/rpkid/rpki/gui/app/urls.py b/rpkid/rpki/gui/app/urls.py index 81c56f4e..dfa0e5db 100644 --- a/rpkid/rpki/gui/app/urls.py +++ b/rpkid/rpki/gui/app/urls.py @@ -58,6 +58,7 @@ urlpatterns = patterns( (r'^roa/confirm$', views.roa_create_confirm), (r'^roa/confirm_multi$', views.roa_create_multi_confirm), (r'^roa/(?P<pk>\d+)/delete$', views.roa_delete), + url(r'^roa/(?P<pk>\d+)/clone$', views.roa_clone, name="roa-clone"), (r'^route/$', views.route_view), (r'^route/(?P<pk>\d+)/$', views.route_detail), (r'^user/$', views.user_list), diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py index a82c7c1d..9d70c890 100644 --- a/rpkid/rpki/gui/app/views.py +++ b/rpkid/rpki/gui/app/views.py @@ -731,6 +731,15 @@ def roa_delete(request, pk): return render(request, 'app/roarequest_confirm_delete.html', {'object': roa, 'routes': routes}) + +@handle_required +def roa_clone(request, pk): + conf = request.session['handle'] + roa = get_object_or_404(conf.roas, pk=pk) + return redirect( + reverse(roa_create_multi) + "?roa=" + str(roa.prefixes.all()[0].as_roa_prefix()) + ) + class GhostbusterDetailView(DetailView): def get_queryset(self): |