From f9032ffe42e1d6b9cb6a5c3c197d90c7381b36f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Tue, 12 May 2020 01:02:50 +0200 Subject: [PATCH] Improve event pre-population in admin views If there is no active event, pre-select the next upcoming event in admin views --- AKModel/models.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/AKModel/models.py b/AKModel/models.py index 79447612..596d92e6 100644 --- a/AKModel/models.py +++ b/AKModel/models.py @@ -1,4 +1,6 @@ -import datetime +from datetime import timedelta + +from django.utils.datetime_safe import datetime import itertools from django.db import models @@ -47,7 +49,12 @@ class Event(models.Model): @staticmethod def get_next_active(): - return Event.objects.filter(active=True).order_by('start').first() + # Get first active event taking place + event = Event.objects.filter(active=True).order_by('start').first() + # No active event? Return the next event taking place + if event is None: + event = Event.objects.order_by('start').filter(start__gt=datetime.now()).first() + return event class AKOwner(models.Model): @@ -313,7 +320,7 @@ class AKSlot(models.Model): """ Retrieve end time of the AK slot """ - return self.start + datetime.timedelta(hours=float(self.duration)) + return self.start + timedelta(hours=float(self.duration)) @property def seconds_since_last_update(self): -- GitLab