From 9bfd1064b3e594128fb5341c79bd688bf952fa13 Mon Sep 17 00:00:00 2001 From: Tom Price Date: Thu, 22 Jan 2015 18:20:37 +0000 Subject: [PATCH] Added the ability to clone an event to a new event. --- RIGS/rigboard.py | 16 ++++++++++++++++ RIGS/templates/RIGS/event_detail.html | 2 ++ RIGS/urls.py | 3 +++ 3 files changed, 21 insertions(+) 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"),