mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 16:03:21 +00:00
chore: Initial Commit
feat: Gestion des inscriptions [#1] feat(frontend): Création des vues pour le paramétrage de l'école [#2] feat: Gestion du login [#6] fix: Correction lors de la migration des modèle [#8] feat: Révision du menu principal [#9] feat: Ajout d'un footer [#10] feat: Création des dockers compose pour les environnements de développement et de production [#12] doc(ci): Mise en place de Husky et d'un suivi de version automatique [#14]
This commit is contained in:
123
Back-End/GestionInscriptions/models.py
Normal file
123
Back-End/GestionInscriptions/models.py
Normal file
@ -0,0 +1,123 @@
|
||||
from django.db import models
|
||||
from django.utils.timezone import now
|
||||
from django.conf import settings
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from GestionLogin.models import Profil
|
||||
|
||||
class Langue(models.Model):
|
||||
id = models.AutoField(primary_key=True)
|
||||
libelle = models.CharField(max_length=200, default="")
|
||||
|
||||
def __str__(self):
|
||||
return "LANGUE"
|
||||
|
||||
class Responsable(models.Model):
|
||||
nom = models.CharField(max_length=200, default="")
|
||||
prenom = models.CharField(max_length=200, default="")
|
||||
dateNaissance = models.CharField(max_length=200, default="", blank=True)
|
||||
adresse = models.CharField(max_length=200, default="", blank=True)
|
||||
mail = models.CharField(max_length=200, default="", blank=True)
|
||||
telephone = models.CharField(max_length=200, default="", blank=True)
|
||||
profession = models.CharField(max_length=200, default="", blank=True)
|
||||
profilAssocie = models.ForeignKey(Profil, on_delete=models.CASCADE)
|
||||
|
||||
def __str__(self):
|
||||
return self.nom + "_" + self.prenom
|
||||
|
||||
class Frere(models.Model):
|
||||
id = models.AutoField(primary_key=True)
|
||||
nom = models.CharField(max_length=200, default="")
|
||||
prenom = models.CharField(max_length=200, default="")
|
||||
dateNaissance = models.CharField(max_length=200, default="", blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return "FRERE"
|
||||
|
||||
class Eleve(models.Model):
|
||||
|
||||
class GenreEleve(models.IntegerChoices):
|
||||
NONE = 0, _('Sélection du genre')
|
||||
MALE = 1, _('Garçon')
|
||||
FEMALE = 2, _('Fille')
|
||||
|
||||
class NiveauEleve(models.IntegerChoices):
|
||||
NONE = 0, _('Sélection du niveau')
|
||||
TPS = 1, _('TPS - Très Petite Section')
|
||||
PS = 2, _('PS - Petite Section')
|
||||
MS = 3, _('MS - Moyenne Section')
|
||||
GS = 4, _('GS - Grande Section')
|
||||
|
||||
class ModePaiement(models.IntegerChoices):
|
||||
NONE = 0, _('Sélection du mode de paiement')
|
||||
PRELEVEMENT_SEPA = 1, _('Prélèvement SEPA')
|
||||
CHEQUE = 2, _('Chèque')
|
||||
|
||||
nom = models.CharField(max_length=200, default="")
|
||||
prenom = models.CharField(max_length=200, default="")
|
||||
genre = models.IntegerField(choices=GenreEleve, default=GenreEleve.NONE, blank=True)
|
||||
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)
|
||||
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)
|
||||
modePaiement = models.IntegerField(choices=ModePaiement, default=ModePaiement.NONE, blank=True)
|
||||
|
||||
# Relation N-N
|
||||
profils = models.ManyToManyField(Profil, blank=True)
|
||||
|
||||
# Relation N-N
|
||||
responsables = models.ManyToManyField(Responsable, blank=True)
|
||||
|
||||
# Relation N-N
|
||||
freres = models.ManyToManyField(Frere, blank=True)
|
||||
|
||||
# Relation N-N
|
||||
languesParlees = models.ManyToManyField(Langue, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.nom + "_" + self.prenom
|
||||
|
||||
def getLanguesParlees(self):
|
||||
return self.languesParlees.all()
|
||||
|
||||
def getResponsablePrincipal(self):
|
||||
return self.responsables.all()[0]
|
||||
|
||||
def getResponsables(self):
|
||||
return self.responsables.all()
|
||||
|
||||
def getProfils(self):
|
||||
return self.profils.all()
|
||||
|
||||
def getFreres(self):
|
||||
return self.freres.all()
|
||||
|
||||
def getNbFreres(self):
|
||||
return self.freres.count()
|
||||
|
||||
class FicheInscription(models.Model):
|
||||
|
||||
class EtatDossierInscription(models.IntegerChoices):
|
||||
DI_ABSENT = 0, _('Pas de dossier d\'inscription')
|
||||
DI_CREE = 1, _('Dossier d\'inscription créé')
|
||||
DI_ENVOYE = 2, _('Dossier d\'inscription envoyé')
|
||||
DI_EN_VALIDATION = 3, _('Dossier d\'inscription en cours de validation')
|
||||
DI_A_RELANCER = 4, _('Dossier d\'inscription à relancer')
|
||||
DI_VALIDE = 5, _('Dossier d\'inscription validé')
|
||||
DI_ARCHIVE = 6, _('Dossier d\'inscription archivé')
|
||||
|
||||
# Relation 1-1
|
||||
eleve = models.OneToOneField(Eleve, on_delete=models.CASCADE, primary_key=True)
|
||||
etat = models.IntegerField(choices=EtatDossierInscription, default=EtatDossierInscription.DI_ABSENT)
|
||||
dateMAJ = models.DateTimeField(auto_now=True)
|
||||
notes = models.CharField(max_length=200, blank=True)
|
||||
codeLienInscription = models.CharField(max_length=200, default="", blank=True)
|
||||
fichierInscription = models.FileField(upload_to=settings.DOCUMENT_DIR, default="", blank=True)
|
||||
di_associe = models.CharField(max_length=200, default="", blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return "FI_" + self.eleve.nom + "_" + self.eleve.prenom
|
||||
|
||||
Reference in New Issue
Block a user