from django.contrib.auth.models import AbstractUser from django.db import models from django.utils.translation import gettext_lazy as _ from django.conf import settings from School.models import SchoolClass from Establishment.models import Establishment class RecursionType(models.IntegerChoices): RECURSION_NONE = 0, _('Aucune') RECURSION_DAILY = 1, _('Quotidienne') RECURSION_WEEKLY = 2, _('Hebdomadaire') RECURSION_MONTHLY = 3, _('Mensuel') RECURSION_CUSTOM = 4, _('Personnalisé') class Planning(models.Model): establishment = models.ForeignKey(Establishment, on_delete=models.PROTECT) school_class = models.ForeignKey( SchoolClass, on_delete=models.CASCADE, related_name="planning", null=True, # Permet des valeurs nulles blank=True # Rend le champ facultatif dans les formulaires ) name = models.CharField(max_length=255) description = models.TextField(default="", blank=True, null=True) color= models.CharField(max_length=255, default="#000000") def __str__(self): return f'Planning {self.name}' class Events(models.Model): planning = models.ForeignKey(Planning, on_delete=models.CASCADE) title = models.CharField(max_length=255) description = models.TextField(default="", blank=True, null=True) start = models.DateTimeField() end = models.DateTimeField() recursionType = models.IntegerField(choices=RecursionType, default=0) recursionEnd = models.DateTimeField(default=None, blank=True, null=True) color= models.CharField(max_length=255) location = models.CharField(max_length=255, default="", blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f'Event {self.title}'