diff --git a/ultron/tools/models.py b/ultron/tools/models.py index a02c03253d..7f9ef9c54b 100644 --- a/ultron/tools/models.py +++ b/ultron/tools/models.py @@ -4,7 +4,10 @@ from django.db import models from django.utils import timezone from datetime import date -from .date_week_transition import get_number_of_weeks_between +from .date_week_transition import ( + get_number_of_weeks_between, + from_date_to_week_number, +) import markdown import pendulum @@ -17,6 +20,14 @@ class Seasonisable(models.Model): season = models.CharField(max_length=9) week_number = models.PositiveSmallIntegerField() + def save(self, *args, **kwargs): + """ Calcule les valeurs `season` et `week_number` sur base d'une date lors de l' + enregistrement d'un object enfant. + """ + if self.date is not None: + self.season, self.week_number = from_date_to_week_number(self.date) + super().save(*args, **kwargs) + class TemporizableQuerySet(models.QuerySet): """