from django.db import models from django.contrib.postgres.fields import ArrayField from django.utils.translation import gettext_lazy as _ import os def registration_logo_upload_to(instance, filename): ext = os.path.splitext(filename)[1] return f"logos/school_{instance.pk}/logo{ext}" class StructureType(models.IntegerChoices): MATERNELLE = 1, _('Maternelle') PRIMAIRE = 2, _('Primaire') SECONDAIRE = 3, _('Secondaire') class EvaluationFrequency(models.IntegerChoices): TRIMESTER = 1, _("Trimestre") SEMESTER = 2, _("Semestre") YEAR = 3, _("Année") class Establishment(models.Model): name = models.CharField(max_length=255) address = models.CharField(max_length=255) total_capacity = models.IntegerField() establishment_type = ArrayField(models.IntegerField(choices=StructureType.choices)) evaluation_frequency = models.IntegerField(choices=EvaluationFrequency.choices, default=EvaluationFrequency.TRIMESTER) licence_code = models.CharField(max_length=100, blank=True) is_active = models.BooleanField(default=True) created_at = models.DateTimeField(auto_now_add=True) api_docuseal = models.CharField(max_length=255, blank=True, null=True) logo = models.FileField( upload_to=registration_logo_upload_to, null=True, blank=True ) def __str__(self): return self.name