2021-11-02 14:05:32 +01:00
|
|
|
from django.db import models
|
|
|
|
from datetime import date
|
|
|
|
# import pendulum
|
|
|
|
|
|
|
|
class Jumper(models.Model):
|
|
|
|
"""Représente un gymnaste.
|
|
|
|
Un gymnaste peut être actif ou inactif.
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Jumper"
|
|
|
|
verbose_name_plural = "Jumpers"
|
|
|
|
|
|
|
|
GENDER_CHOICES = ((0, "Male"), (1, "Female"))
|
|
|
|
|
|
|
|
last_name = models.CharField(max_length=40, null=False, blank=False)
|
|
|
|
first_name = models.CharField(max_length=25, null=False, blank=False)
|
|
|
|
birthdate = models.DateField(verbose_name="Date de naissance")
|
|
|
|
gender = models.PositiveSmallIntegerField(
|
|
|
|
choices=GENDER_CHOICES, verbose_name="Sexe"
|
|
|
|
)
|
|
|
|
is_active = models.BooleanField(default=1, verbose_name="Active")
|
|
|
|
club = models.ForeignKey(
|
|
|
|
"Club", null=True, on_delete=models.SET_NULL, related_name="jumpers"
|
|
|
|
)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return u"%s, %s" % (self.last_name, self.first_name)
|
|
|
|
|
|
|
|
@property
|
|
|
|
def age(self):
|
|
|
|
""" Renvoie l'âge d'un gymnaste. """
|
|
|
|
today = date.today()
|
|
|
|
return (
|
|
|
|
today.year
|
|
|
|
- self.birthdate.year
|
|
|
|
- ((today.month, today.day) < (self.birthdate.month, self.birthdate.day))
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class Club(models.Model):
|
|
|
|
"""
|
|
|
|
Représente un club. Pour faciliter les filtres, un club peut être actif ou non.
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Club"
|
|
|
|
verbose_name_plural = "Clubs"
|
|
|
|
|
|
|
|
name = models.CharField(max_length=255, verbose_name="Name")
|
|
|
|
city = models.CharField(max_length=255, verbose_name="City")
|
|
|
|
acronym = models.CharField(max_length=4, verbose_name="Acronym")
|
|
|
|
active = models.BooleanField(default=1, verbose_name="Active")
|
|
|
|
|
|
|
|
def __str__(self):
|
2021-11-12 15:32:24 +01:00
|
|
|
return "%s (%s) - %s" % (self.name, self.acronym, self.city)
|