Add a method to query the current phase

This commit is contained in:
Yohann D'ANELLO 2020-10-20 14:38:07 +02:00
parent 1d0246af8f
commit ab315a69ed
1 changed files with 10 additions and 0 deletions

View File

@ -193,6 +193,16 @@ class Phase(models.Model):
default=timezone.now,
)
@classmethod
def current_phase(cls):
qs = Phase.objects.filter(start__lte=timezone.now(), end__gte=timezone.now())
if qs.exists():
return qs.get()
qs = Phase.objects.order_by("phase_number").all()
if timezone.now() < qs.first().start:
return qs.first()
return qs.last()
def __str__(self):
return _("Phase {phase_number:d} starts on {start:%Y-%m-%d %H:%M} and ends on {end:%Y-%m-%d %H:%M}")\
.format(phase_number=self.phase_number, start=self.start, end=self.end)