Added the ability to clone an event to a new event.

This commit is contained in:
Tom Price
2015-01-22 18:20:37 +00:00
parent d775a02758
commit 9bfd1064b3
3 changed files with 21 additions and 0 deletions

View File

@@ -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})

View File

@@ -13,6 +13,8 @@
class="glyphicon glyphicon-edit"></span></a>
<a href="{% url 'event_print' event.pk %}" class="btn btn-default"><span
class="glyphicon glyphicon-print"></span></a>
<a href="{% url 'event_duplicate' event.pk %}" class="btn btn-default"><span
class="glyphicon glyphicon-duplicate"></span></a>
</div>
</div>
</div>

View File

@@ -68,6 +68,9 @@ urlpatterns = patterns('',
url(r'^event/(?P<pk>\d+)/edit/$',
permission_required_with_403('RIGS.change_event')(rigboard.EventUpdate.as_view()),
name='event_update'),
url(r'^event/(?P<pk>\d+)/duplicate/$',
permission_required_with_403('RIGS.change_event')(rigboard.EventDuplicate.as_view()),
name='event_duplicate'),
# API
url(r'^api/(?P<model>\w+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"),