mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
82 lines
2.8 KiB
Python
82 lines
2.8 KiB
Python
from django.shortcuts import render,get_object_or_404,get_list_or_404
|
|
from .models import RegistrationForm, Student, Guardian, Sibling
|
|
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(RegistrationForm),
|
|
}
|
|
return context
|
|
|
|
def recupereListeFichesInscriptionEnAttenteSEPA():
|
|
|
|
ficheInscriptionsSEPA_list = RegistrationForm.objects.filter(modePaiement="Prélèvement SEPA").filter(etat=RegistrationForm.RegistrationFormStatus['SEPA_ENVOYE'])
|
|
return ficheInscriptionsSEPA_list
|
|
|
|
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 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 getArgFromRequest(_argument, _request):
|
|
resultat = None
|
|
data=JSONParser().parse(_request)
|
|
resultat = data[_argument]
|
|
return resultat
|
|
|
|
def rfToPDF(registerForm):
|
|
# Ajout du fichier d'inscriptions
|
|
data = {
|
|
'pdf_title': "Dossier d'inscription de %s"%registerForm.student.first_name,
|
|
'signatureDate': convertToStr(_now(), '%d-%m-%Y'),
|
|
'signatureTime': convertToStr(_now(), '%H:%M'),
|
|
'student':registerForm.student,
|
|
}
|
|
|
|
pdf = renderers.render_to_pdf('pdfs/dossier_inscription.html', data)
|
|
|
|
PDFFileName = "Dossier_Inscription_%s_%s.pdf"%(registerForm.student.last_name, registerForm.student.first_name)
|
|
pathFichier = Path(settings.DOCUMENT_DIR + "/" + PDFFileName)
|
|
if os.path.exists(str(pathFichier)):
|
|
print(f'File exists : {str(pathFichier)}')
|
|
os.remove(str(pathFichier))
|
|
|
|
receipt_file = BytesIO(pdf.content)
|
|
registerForm.fichierInscription = File(receipt_file, PDFFileName) |