diff --git a/RIGS/rigboard.py b/RIGS/rigboard.py index 6c0cea8d..8b4ca10f 100644 --- a/RIGS/rigboard.py +++ b/RIGS/rigboard.py @@ -98,3 +98,19 @@ class EventPrint(generic.View): response['Content-Disposition'] = "filename=N%05d | %s.pdf" % (object.pk, object.name) response.write(merged.getvalue()) return response + + +class EventDuplicate(generic.RedirectView): + + def get_redirect_url(self, *args, **kwargs): + new = get_object_or_404(models.Event, pk=kwargs['pk']) + new.pk = None + new.save() + + old = get_object_or_404(models.Event, pk=kwargs['pk']) + for item in old.items.all(): + item.pk = None + item.event = new + item.save() + + return reverse_lazy('event_update', kwargs={'pk': new.pk}) \ No newline at end of file diff --git a/RIGS/templates/RIGS/event_detail.html b/RIGS/templates/RIGS/event_detail.html index f74de4e6..a28240ba 100644 --- a/RIGS/templates/RIGS/event_detail.html +++ b/RIGS/templates/RIGS/event_detail.html @@ -13,6 +13,8 @@ class="glyphicon glyphicon-edit"> + diff --git a/RIGS/urls.py b/RIGS/urls.py index ab811bb2..7d03ec1b 100644 --- a/RIGS/urls.py +++ b/RIGS/urls.py @@ -68,6 +68,9 @@ urlpatterns = patterns('', url(r'^event/(?P\d+)/edit/$', permission_required_with_403('RIGS.change_event')(rigboard.EventUpdate.as_view()), name='event_update'), + url(r'^event/(?P\d+)/duplicate/$', + permission_required_with_403('RIGS.change_event')(rigboard.EventDuplicate.as_view()), + name='event_duplicate'), # API url(r'^api/(?P\w+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"), diff --git a/db.sqlite3 b/db.sqlite3 index ccf54081..682df3ba 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ