mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: ajout des documents d'inscription [#20]
This commit is contained in:
@ -93,31 +93,57 @@ def getArgFromRequest(_argument, _request):
|
||||
|
||||
def merge_files_pdf(filenames, output_filename):
|
||||
"""
|
||||
Insère plusieurs fichiers PDF dans un seul document de sortie.
|
||||
Fusionne plusieurs fichiers PDF en un seul document.
|
||||
Vérifie l'existence des fichiers sources avant la fusion.
|
||||
"""
|
||||
merger = pymupdf.open()
|
||||
valid_files = []
|
||||
|
||||
# Vérifier l'existence des fichiers et ne garder que ceux qui existent
|
||||
for filename in filenames:
|
||||
if os.path.exists(filename):
|
||||
valid_files.append(filename)
|
||||
|
||||
# Fusionner les fichiers valides
|
||||
for filename in valid_files:
|
||||
merger.insert_file(filename)
|
||||
|
||||
# S'assurer que le dossier de destination existe
|
||||
os.makedirs(os.path.dirname(output_filename), exist_ok=True)
|
||||
|
||||
# Sauvegarder le fichier fusionné
|
||||
merger.save(output_filename)
|
||||
merger.close()
|
||||
|
||||
def rfToPDF(registerForm,filename):
|
||||
return output_filename
|
||||
|
||||
def rfToPDF(registerForm, filename):
|
||||
"""
|
||||
Génère le PDF d’un dossier d’inscription et l’associe au RegistrationForm.
|
||||
Génère le PDF d'un dossier d'inscription et l'associe au RegistrationForm.
|
||||
"""
|
||||
# Ajout du fichier d'inscriptions
|
||||
data = {
|
||||
'pdf_title': "Dossier d'inscription de %s"%registerForm.student.first_name,
|
||||
'pdf_title': f"Dossier d'inscription de {registerForm.student.first_name}",
|
||||
'signatureDate': convertToStr(_now(), '%d-%m-%Y'),
|
||||
'signatureTime': convertToStr(_now(), '%H:%M'),
|
||||
'student':registerForm.student,
|
||||
'student': registerForm.student,
|
||||
}
|
||||
PDFFileName = filename
|
||||
|
||||
# S'assurer que le dossier parent existe
|
||||
os.makedirs(os.path.dirname(filename), exist_ok=True)
|
||||
|
||||
# Générer le PDF
|
||||
pdf = renderers.render_to_pdf('pdfs/dossier_inscription.html', data)
|
||||
pathFichier = Path(filename)
|
||||
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)
|
||||
registerForm.fichierInscription.save()
|
||||
|
||||
# Écrire le fichier directement
|
||||
with open(filename, 'wb') as f:
|
||||
f.write(pdf.content)
|
||||
|
||||
# Mettre à jour le champ registration_file du registerForm
|
||||
with open(filename, 'rb') as f:
|
||||
registerForm.registration_file.save(
|
||||
os.path.basename(filename),
|
||||
File(f),
|
||||
save=True
|
||||
)
|
||||
|
||||
return registerForm.registration_file
|
||||
Reference in New Issue
Block a user