8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-23 20:03:11 +00:00

Simplify models.py

This commit is contained in:
chirac 2019-09-24 00:40:22 +02:00
parent 7db8872bc8
commit 21f95fbc9d

View file

@ -528,28 +528,22 @@ class Mandate(RevMixin, AclMixin, models.Model):
@classmethod @classmethod
def get_mandate(cls, date=timezone.now): def get_mandate(cls, date=timezone.now):
""""Find the mandate taking place at the given date. If none is found """"Find the mandate taking place at the given date."""
look for the nearest in the future. If none is found (again), look
for the nearest in the past."""
if callable(date): if callable(date):
date = date() date = date()
try: mandate = cls.objects.filter(start_date__lte=date).order_by('-start_date').first()
return cls.objects.get( if not mandate:
start_date__gte=date, end_date__lte=date
)
except cls.DoesNotExist:
try:
return cls.objects.filter(start_date__gte=date).earliest('start_date')
except cls.DoesNotExist:
try:
return cls.objects.filter(start_date__lte=date).latest('start_date')
except cls.DoesNotExist:
raise cls.DoesNotExist("No mandate have been created. Please go to the preferences page to create one.") raise cls.DoesNotExist("No mandate have been created. Please go to the preferences page to create one.")
return mandate
def is_over(self): def is_over(self):
return self.end_date is None return self.end_date is None
def __str__(self):
return str(self.president) + ' ' + str(self.start_date.year)
class AssoOption(AclMixin, PreferencesModel): class AssoOption(AclMixin, PreferencesModel):
"""Options générales de l'asso : siret, addresse, nom, etc""" """Options générales de l'asso : siret, addresse, nom, etc"""