2020-07-25 14:30:53 +02:00
|
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
2020-07-22 04:08:30 +02:00
|
|
|
from django.shortcuts import render, get_object_or_404
|
2020-07-22 05:03:01 +02:00
|
|
|
|
2020-07-22 04:08:30 +02:00
|
|
|
from django.utils import timezone
|
|
|
|
from django.urls import reverse
|
|
|
|
import datetime
|
2020-07-21 22:24:45 +02:00
|
|
|
|
2020-07-22 04:08:30 +02:00
|
|
|
from .models import Event, EventRegistration, CustomUser
|
2020-07-21 22:24:45 +02:00
|
|
|
|
2020-07-22 04:02:13 +02:00
|
|
|
from events.tasks import assign_reservations
|
|
|
|
|
2020-07-21 22:24:45 +02:00
|
|
|
|
|
|
|
def index(request):
|
2020-07-22 04:08:30 +02:00
|
|
|
events = Event.objects.filter(date__gte=timezone.now().date()).order_by("date")[:20]
|
2020-07-22 16:22:29 +02:00
|
|
|
|
|
|
|
events_data = [
|
|
|
|
{ "event": event, "my_registration": event.registration_of(request.user) }
|
|
|
|
for event in events
|
|
|
|
]
|
|
|
|
return render(request, "events/index.html", {"events": events_data})
|
2020-07-22 04:02:13 +02:00
|
|
|
|
|
|
|
|
2020-07-22 04:08:30 +02:00
|
|
|
def register(request, event_id):
|
2020-07-25 14:30:53 +02:00
|
|
|
if request.method != "POST":
|
|
|
|
return HttpResponse(status_code=405)
|
|
|
|
|
|
|
|
if not request.user.has_ugent_info:
|
|
|
|
raise ValueError("User has missing UGent info missing")
|
|
|
|
|
|
|
|
event = get_object_or_404(Event, id=event_id)
|
|
|
|
|
|
|
|
event.eventregistration_set.create(
|
|
|
|
state=EventRegistration.INTERESTED,
|
|
|
|
event=event,
|
|
|
|
user=request.user,
|
|
|
|
)
|
|
|
|
return HttpResponseRedirect(reverse("events:index") + f"#{event.id}")
|
|
|
|
|
|
|
|
|
|
|
|
def deregister(request, event_id):
|
|
|
|
if request.method != "POST":
|
|
|
|
return HttpResponse(status_code=405)
|
|
|
|
|
|
|
|
registration = get_object_or_404(EventRegistration, event=event_id, user=request.user)
|
|
|
|
registration.delete()
|
|
|
|
return HttpResponseRedirect(reverse("events:index") + f"#{event_id}")
|