mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Gestion des profils des enseignants / Visualisation d'une classe [#4]
This commit is contained in:
@ -4,6 +4,27 @@ from django.conf import settings
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from GestionLogin.models import Profil
|
||||
from GestionEnseignants.models import Classe
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
class FraisInscription(models.Model):
|
||||
class OptionsPaiements(models.IntegerChoices):
|
||||
PAIEMENT_1_FOIS = 0, _('Paiement en une seule fois')
|
||||
PAIEMENT_MENSUEL = 1, _('Paiement mensuel')
|
||||
PAIEMENT_TRIMESTRIEL = 2, _('Paiement trimestriel')
|
||||
|
||||
nom = models.CharField(max_length=255, unique=True)
|
||||
description = models.TextField(blank=True)
|
||||
montant_de_base = models.DecimalField(max_digits=10, decimal_places=2)
|
||||
reductions = models.JSONField(blank=True, null=True)
|
||||
supplements = models.JSONField(blank=True, null=True)
|
||||
date_debut_validite = models.DateField()
|
||||
date_fin_validite = models.DateField()
|
||||
options_paiement = models.IntegerField(choices=OptionsPaiements, default=OptionsPaiements.PAIEMENT_1_FOIS)
|
||||
|
||||
def __str__(self):
|
||||
return self.nom
|
||||
|
||||
class Langue(models.Model):
|
||||
id = models.AutoField(primary_key=True)
|
||||
@ -59,7 +80,7 @@ class Eleve(models.Model):
|
||||
niveau = models.IntegerField(choices=NiveauEleve, default=NiveauEleve.NONE, blank=True)
|
||||
nationalite = models.CharField(max_length=200, default="", blank=True)
|
||||
adresse = models.CharField(max_length=200, default="", blank=True)
|
||||
dateNaissance = models.CharField(max_length=200, default="", blank=True)
|
||||
dateNaissance = models.DateField(null=True, blank=True)
|
||||
lieuNaissance = models.CharField(max_length=200, default="", blank=True)
|
||||
codePostalNaissance = models.IntegerField(default=0, blank=True)
|
||||
medecinTraitant = models.CharField(max_length=200, default="", blank=True)
|
||||
@ -77,6 +98,9 @@ class Eleve(models.Model):
|
||||
# Relation N-N
|
||||
languesParlees = models.ManyToManyField(Langue, blank=True)
|
||||
|
||||
# Relation 1-N
|
||||
classeAssociee = models.ForeignKey(Classe, on_delete=models.SET_NULL, null=True, blank=True, related_name='eleves')
|
||||
|
||||
def __str__(self):
|
||||
return self.nom + "_" + self.prenom
|
||||
|
||||
@ -98,6 +122,31 @@ class Eleve(models.Model):
|
||||
def getNbFreres(self):
|
||||
return self.freres.count()
|
||||
|
||||
@property
|
||||
def age(self):
|
||||
if self.dateNaissance:
|
||||
today = datetime.today()
|
||||
years = today.year - self.dateNaissance.year
|
||||
months = today.month - self.dateNaissance.month
|
||||
if today.day < self.dateNaissance.day:
|
||||
months -= 1
|
||||
if months < 0:
|
||||
years -= 1
|
||||
months += 12
|
||||
|
||||
# Déterminer le format de l'âge
|
||||
if months >= 6 and months <= 12:
|
||||
return f"{years} ans 1/2"
|
||||
else:
|
||||
return f"{years} ans"
|
||||
return None
|
||||
|
||||
@property
|
||||
def dateNaissance_formattee(self):
|
||||
if self.dateNaissance:
|
||||
return self.dateNaissance.strftime('%d-%m-%Y')
|
||||
return None
|
||||
|
||||
class FicheInscription(models.Model):
|
||||
|
||||
class EtatDossierInscription(models.IntegerChoices):
|
||||
|
||||
Reference in New Issue
Block a user