MIGRATION! ADD: first things for a event registration mangement page.

This commit is contained in:
2019-05-29 16:50:02 +02:00
parent a189f5dbe6
commit bee1623529
12 changed files with 382 additions and 7 deletions

View File

@@ -150,6 +150,7 @@ class EventDetailView(EventPermissionMixin, generic.DetailView):
context['is_publishing'] = obj.workflow.has_reached_status('publishing')
context['is_publishing_any'] = obj.workflow.has_reached_status('publishing*')
context['is_published'] = obj.workflow.has_reached_status('published')
context['is_published_any'] = obj.workflow.has_reached_status('published*')
return context
@method_decorator(login_required)
@@ -157,6 +158,63 @@ class EventDetailView(EventPermissionMixin, generic.DetailView):
return super(EventDetailView, self).dispatch(request, *args, **kwargs)
class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
permission = 'update-registration'
model = models.Event
template_name = 'dav_events/event_registrations.html'
def get_object(self, queryset=None):
obj = super(EventRegistrationsView, self).get_object(queryset=queryset)
self.enforce_permission(obj)
return obj
def get_context_data(self, **kwargs):
context = super(EventRegistrationsView, self).get_context_data(**kwargs)
obj = context.get('event')
context['has_permission_update'] = self.has_permission('update', obj)
context['is_published_any'] = obj.workflow.has_reached_status('published*')
context['is_done'] = obj.workflow.has_reached_status('expired')
class MockParticipant(object):
def __init__(self, id, name):
self.id = id
self.name = name
@property
def position(self):
return self.id
def get_full_name(self):
return self.name
participants = [MockParticipant(1, 'Erika Musterfrau'), MockParticipant(2, 'Max Mustermann')]
context['participants'] = participants
return context
def post(self, request, *args, **kwargs):
event = self.get_object()
action = request.POST.get('action')
if action == 'close-registration':
event.registration_closed = True
event.save()
messages.success(request, _(u'Die Anmeldung wurde geschlossen'))
elif action == 'open-registration':
event.registration_closed = False
event.save()
messages.success(request, _(u'Die Anmeldung wurde geöffnet'))
elif action == 'kill-deadline':
event.deadline = None
event.registration_closed = False
event.save()
messages.success(request, _(u'Der Anmeldeschluss wurde gelöscht'))
return HttpResponseRedirect(reverse('dav_events:registrations', kwargs={'pk': event.pk}))
@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
return super(EventRegistrationsView, self).dispatch(request, *args, **kwargs)
class EventUpdateStatusView(EventPermissionMixin, generic.DetailView):
model = models.Event