mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +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:
181
Back-End/GestionInscriptions/util.py
Normal file
181
Back-End/GestionInscriptions/util.py
Normal file
@ -0,0 +1,181 @@
|
||||
from django.shortcuts import render,get_object_or_404,get_list_or_404
|
||||
from .models import FicheInscription, Eleve, Responsable, Frere
|
||||
import time
|
||||
from datetime import date, datetime, timedelta
|
||||
from zoneinfo import ZoneInfo
|
||||
from django.conf import settings
|
||||
from N3wtSchool import renderers
|
||||
from N3wtSchool import bdd
|
||||
|
||||
from io import BytesIO
|
||||
from django.core.files import File
|
||||
from pathlib import Path
|
||||
import os
|
||||
from enum import Enum
|
||||
|
||||
import random
|
||||
import string
|
||||
from rest_framework.parsers import JSONParser
|
||||
|
||||
def recupereListeFichesInscription():
|
||||
context = {
|
||||
"ficheInscriptions_list": bdd.getAllObjects(FicheInscription),
|
||||
}
|
||||
return context
|
||||
|
||||
def recupereListeFichesInscriptionEnAttenteSEPA():
|
||||
|
||||
ficheInscriptionsSEPA_list = FicheInscription.objects.filter(modePaiement="Prélèvement SEPA").filter(etat=FicheInscription.EtatDossierInscription['SEPA_ENVOYE'])
|
||||
return ficheInscriptionsSEPA_list
|
||||
|
||||
def updateEleve(eleve, inputs, erase=False):
|
||||
eleve.nom = inputs["nomEleve"]
|
||||
eleve.prenom = inputs["prenomEleve"]
|
||||
eleve.ambiance = inputs["ambiance"]
|
||||
eleve.genre = inputs["genre"]
|
||||
eleve.adresse = inputs["adresseEleve"]
|
||||
eleve.dateNaissance = inputs["dateNaissanceEleve"]
|
||||
eleve.lieuNaissance = inputs["lieuNaissanceEleve"]
|
||||
eleve.codePostalNaissance = inputs["codePostalNaissanceEleve"]
|
||||
eleve.nationalite = inputs["nationaliteEleve"]
|
||||
eleve.medecinTraitant = inputs["medecinTraitantEleve"]
|
||||
|
||||
|
||||
responsable=eleve.getResponsablePrincipal()
|
||||
responsable.adresse = inputs["adresseResponsable1"]
|
||||
responsable.dateNaissance = inputs["dateNaissanceResponsable1"]
|
||||
responsable.profession = inputs["professionResponsable1"]
|
||||
responsable.save()
|
||||
|
||||
# Création du 2ème responsable
|
||||
if inputs["nomResponsable2"] != "" and inputs["prenomResponsable2"] != "":
|
||||
responsable2 = Responsable.objects.create(nom=inputs["nomResponsable2"],
|
||||
prenom=inputs["prenomResponsable2"],
|
||||
dateNaissance=inputs["dateNaissanceResponsable2"],
|
||||
adresse=inputs["adresseResponsable2"],
|
||||
mail=inputs["mailResponsable2"],
|
||||
telephone=inputs["telephoneResponsable2"],
|
||||
profession=inputs["professionResponsable2"])
|
||||
responsable2.save()
|
||||
eleve.responsables.add(responsable2)
|
||||
|
||||
# Création du 1er frère
|
||||
if inputs["nomFrere1"] != "" and inputs["prenomFrere1"] != "":
|
||||
frere1 = Frere.objects.create(nom=inputs["nomFrere1"],
|
||||
prenom=inputs["prenomFrere1"],
|
||||
dateNaissance=inputs["dateNaissanceFrere1"])
|
||||
frere1.save()
|
||||
eleve.freres.add(frere1)
|
||||
|
||||
# Création du 2ème frère
|
||||
if inputs["nomFrere2"] != "" and inputs["prenomFrere2"] != "":
|
||||
frere2 = Frere.objects.create(nom=inputs["nomFrere2"],
|
||||
prenom=inputs["prenomFrere2"],
|
||||
dateNaissance=inputs["dateNaissanceFrere2"])
|
||||
frere2.save()
|
||||
eleve.freres.add(frere2)
|
||||
|
||||
eleve.save()
|
||||
|
||||
def _now():
|
||||
return datetime.now(ZoneInfo(settings.TZ_APPLI))
|
||||
|
||||
def convertToStr(dateValue, dateFormat):
|
||||
return dateValue.strftime(dateFormat)
|
||||
|
||||
def convertToDate(date_time):
|
||||
format = '%d-%m-%Y %H:%M'
|
||||
datetime_str = datetime.strptime(date_time, format)
|
||||
|
||||
return datetime_str
|
||||
|
||||
def convertTelephone(telephoneValue, separator='-'):
|
||||
return f"{telephoneValue[:2]}{separator}{telephoneValue[2:4]}{separator}{telephoneValue[4:6]}{separator}{telephoneValue[6:8]}{separator}{telephoneValue[8:10]}"
|
||||
|
||||
def generePDF(ficheEleve):
|
||||
data = {
|
||||
'pdf_title': "Dossier d'inscription de %s"%ficheEleve.eleve.prenom,
|
||||
'dateSignature': convertToStr(_now(), '%d-%m-%Y'),
|
||||
'heureSignature': convertToStr(_now(), '%H:%M'),
|
||||
'eleve':ficheEleve.eleve,
|
||||
}
|
||||
|
||||
pdf = renderers.render_to_pdf('pdfs/dossier_inscription.html', data)
|
||||
|
||||
nomFichierPDF = "Dossier_Inscription_%s_%s.pdf"%(ficheEleve.eleve.nom, ficheEleve.eleve.prenom)
|
||||
pathFichier = Path(settings.DOCUMENT_DIR + "/" + nomFichierPDF)
|
||||
if os.path.exists(str(pathFichier)):
|
||||
os.remove(str(pathFichier))
|
||||
|
||||
receipt_file = BytesIO(pdf.content)
|
||||
# fichier = Fichier.objects.create(fiche_inscription=ficheEleve)
|
||||
# fichier.document = File(receipt_file, nomFichierPDF)
|
||||
# fichier.save()
|
||||
|
||||
def genereRandomCode(length):
|
||||
return ''.join(random.choice(string.ascii_letters) for i in range(length))
|
||||
|
||||
def calculeDatePeremption(_start, nbDays):
|
||||
return convertToStr(_start + timedelta(days=nbDays), settings.DATE_FORMAT)
|
||||
|
||||
# Fonction permettant de retourner la valeur du QueryDict
|
||||
# QueryDict [ index ] -> Dernière valeur d'une liste
|
||||
# dict (QueryDict [ index ]) -> Toutes les valeurs de la liste
|
||||
def _(liste):
|
||||
return liste[0]
|
||||
|
||||
def toNewEleveJSONRequest(jsonOrigin):
|
||||
etat=FicheInscription.EtatDossierInscription.DI_CREE
|
||||
telephone = convertTelephone(_(jsonOrigin['telephoneResponsable']))
|
||||
finalJSON = {
|
||||
"eleve":
|
||||
{
|
||||
"nom" : _(jsonOrigin['nomEleve']),
|
||||
"prenom" : _(jsonOrigin['prenomEleve']),
|
||||
"responsables" : [
|
||||
{
|
||||
"nom" : _(jsonOrigin['nomResponsable']),
|
||||
"prenom" : _(jsonOrigin['prenomResponsable']),
|
||||
"mail" : _(jsonOrigin['mailResponsable']),
|
||||
"telephone" : telephone
|
||||
}
|
||||
],
|
||||
"profils" : [
|
||||
],
|
||||
},
|
||||
"etat": str(etat),
|
||||
"dateMAJ": str(convertToStr(_now(), '%d-%m-%Y %H:%M')),
|
||||
}
|
||||
print(finalJSON)
|
||||
return finalJSON
|
||||
|
||||
def toEditEleveJSONRequest(jsonOrigin):
|
||||
telephone = convertTelephone(_(jsonOrigin['telephoneResponsable']), '.')
|
||||
finalJSON = {
|
||||
"eleve":
|
||||
{
|
||||
"id" : _(jsonOrigin['fiche_id']),
|
||||
"nom" : _(jsonOrigin['nomEleve']),
|
||||
"prenom" : _(jsonOrigin['prenomEleve']),
|
||||
"responsables" : [
|
||||
{
|
||||
"id" : _(jsonOrigin['responsable_id']),
|
||||
"nom" : _(jsonOrigin['nomResponsable']),
|
||||
"prenom" : _(jsonOrigin['prenomResponsable']),
|
||||
"mail" : _(jsonOrigin['mailResponsable']),
|
||||
"telephone" : telephone
|
||||
}
|
||||
],
|
||||
"profils" : [
|
||||
],
|
||||
},
|
||||
"dateMAJ": str(convertToStr(_now(), '%d-%m-%Y %H:%M')),
|
||||
}
|
||||
print(finalJSON)
|
||||
return finalJSON
|
||||
|
||||
def getArgFromRequest(_argument, _request):
|
||||
resultat = None
|
||||
data=JSONParser().parse(_request)
|
||||
resultat = data[_argument]
|
||||
return resultat
|
||||
Reference in New Issue
Block a user