diff --git a/Template_PDF/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom.pdf b/Template_PDF/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom.pdf index 18226d5..bb47f6d 100644 Binary files a/Template_PDF/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom.pdf and b/Template_PDF/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom.pdf differ diff --git a/Template_PDF/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom.pdf b/Template_PDF/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom.pdf index 0c9b3f0..9f76fd1 100644 Binary files a/Template_PDF/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom.pdf and b/Template_PDF/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom.pdf differ diff --git a/Template_PDF/LivretAlternant_Accueil_Page4_PosteOccupe_NOM_Prenom.pdf b/Template_PDF/LivretAlternant_Accueil_Page4_PosteOccupe_NOM_Prenom.pdf index c236e5f..e928554 100644 Binary files a/Template_PDF/LivretAlternant_Accueil_Page4_PosteOccupe_NOM_Prenom.pdf and b/Template_PDF/LivretAlternant_Accueil_Page4_PosteOccupe_NOM_Prenom.pdf differ diff --git a/Template_PDF/LivretAlternant_PEntreprise_Bilan_NOM_Prenom.pdf b/Template_PDF/LivretAlternant_PEntreprise_Bilan_NOM_Prenom.pdf index 091741b..c752d3b 100644 Binary files a/Template_PDF/LivretAlternant_PEntreprise_Bilan_NOM_Prenom.pdf and b/Template_PDF/LivretAlternant_PEntreprise_Bilan_NOM_Prenom.pdf differ diff --git a/Template_PDF/LivretAlternant_PFormation_Bis_Bilan_NOM_Prenom.pdf b/Template_PDF/LivretAlternant_PFormation_Bis_Bilan_NOM_Prenom.pdf index 7bc03ce..fef539d 100644 Binary files a/Template_PDF/LivretAlternant_PFormation_Bis_Bilan_NOM_Prenom.pdf and b/Template_PDF/LivretAlternant_PFormation_Bis_Bilan_NOM_Prenom.pdf differ diff --git a/Template_PDF/backup/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom_backup.pdf b/Template_PDF/backup/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom_backup.pdf index 2aec054..11b5577 100644 Binary files a/Template_PDF/backup/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom_backup.pdf and b/Template_PDF/backup/LivretAlternant_Accueil_Page1_Couverture_NOM_Prenom_backup.pdf differ diff --git a/Template_PDF/backup/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom_backup.pdf b/Template_PDF/backup/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom_backup.pdf index 84e6d6e..0c9b3f0 100644 Binary files a/Template_PDF/backup/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom_backup.pdf and b/Template_PDF/backup/LivretAlternant_Accueil_Page2_Sommaire_FicheRenseignements_NOM_Prenom_backup.pdf differ diff --git a/Template_PDF/specification_template.txt b/Template_PDF/specification_template.txt index 4b8d9fa..14443c7 100644 --- a/Template_PDF/specification_template.txt +++ b/Template_PDF/specification_template.txt @@ -1,67 +1,67 @@ Page 1 : -MASTER : {{ nom_master }} +MASTER : {{page1.nom_master }} -{{ nom_complet_master }} +{{ page1.nom_complet_master }} Année universitaire : -{{ annee_1 }} +{{ page1.annee_1 }} - -{{ annee_2 }} +{{ page1.annee_2 }} -De : {{ nom_prenom }} +De : {{ page1.nom_prenom }} -mail : {{ email }} +mail : {{ page1.email }} -tel : {{ telephone }} +tel : {{ page1.telephone }} -Alternant à : {{ entreprise }} +Alternant à : {{ page1.entreprise }} -tuteur/tutrice pédagogique : {{ tuteur_pedagogique }} +tuteur/tutrice pédagogique : {{ page1.tuteur_pedagogique }} -Tuteur / Tutrice entreprise : {{ tuteur_entreprise }} +Tuteur / Tutrice entreprise : {{ page1.tuteur_entreprise }} Page 2 : Alternant Type de contrat : -{{ type_contrat_apprentissage | X }} -{{ type_contrat_professionnalisation | X }} -{{ type_contrat_stage | X }} +{{ page2.type_contrat_apprentissage | X }} +{{ page2.type_contrat_professionnalisation | X }} +{{ page2.type_contrat_stage | X }} -Début de contrat : {{ debut_contrat }} -Fin de contrat : {{ fin_contrat }} -tel : {{ telephone }} -mail : {{ email }} -compostant de formation : {{ compostant_formation }} -responsable tuteur_pedagogique de la formation : {{ responsable_pedagogique_formation }} -tel : {{ tel_responsable_pedagogique_formation }} -mail : {{ mail_responsable_pedagogique_formation }} +Début de contrat : {{ page2.debut_contrat }} +Fin de contrat : {{ page2.fin_contrat }} +tel : {{ page2.telephone }} +mail : {{ page2.email }} +compostant de formation : {{ page2.compostant_formation }} +responsable tuteur_pedagogique de la formation : {{ page2.responsable_pedagogique_formation }} +tel : {{ page2.tel_responsable_pedagogique_formation }} +mail : {{ page2.mail_responsable_pedagogique_formation }} tuteur pédagogique : -{{ tel_tuteur_pedagogique }} -{{ mail_tuteur_pedagogique }} +{{ page2.tel_tuteur_pedagogique }} +{{ page2.mail_tuteur_pedagogique }} tuteur entreprise : -{{ tuteur_entreprise }} -entreprise : {{ entreprise }} -adresse lieu Alternance : {{ adresse_entreprise }} -tel : {{ tel_tuteur_entreprise }} -mail : {{ mail_tuteur_entreprise }} +{{ page2.tuteur_entreprise }} +entreprise : {{ page2.entreprise }} +adresse lieu Alternance : {{ page2.adresse_entreprise }} +tel : {{ page2.tel_tuteur_entreprise }} +mail : {{ page2.mail_tuteur_entreprise }} Page 4 : -poste occupé : {{ poste_occupe }} -{{ poste_occupe_2 }} +poste occupé : {{ page4.poste_occupe }} +{{ page4.poste_occupe_2 }} Pentreprise : -{{ n_periode }} -{{ debut_periode }} -{{ fin_periode }} -{{ travaux_entreprise }} -{{ remarque_tuteur }} +{{ PEntreprise.n_periode }} +{{ PEntreprise.debut_periode }} +{{ PEntreprise.fin_periode }} +{{ PEntreprise.travaux_entreprise }} +{{ PEntreprise.remarque_tuteur }} bilan_periode : -{{ n_periode }} -{{ bilan_periode }} +{{ PFormation.n_periode }} +{{ PFormation.bilan_periode }} diff --git a/backend/app/api/ExportPdfAPI.py b/backend/app/api/ExportPdfAPI.py new file mode 100644 index 0000000..4646195 --- /dev/null +++ b/backend/app/api/ExportPdfAPI.py @@ -0,0 +1,82 @@ +from flask_restful import Resource + +from app.model import * +from app.tools.LibPdf import fusion_fichiers + + +class ExportPdfAPI(Resource): + def get(self, uid=0, gid=0, name=""): + if uid > 0: + + user = getUser(uid=uid) + + group = getGroup(gid) + + if user is None: + return {"ERROR": "The user with id " + str(gid) + " does not exists !"}, 400 + + prenom = user["name"].split(" ", 1) + nom = user["name"].split(" ", 2) + + group["name"] + + annee1 = group["year"] + annee2 = int(group["year"]) + 1 + promo = group["class_short"] + + group["class_long"] + group["departement"] + group["resp_id"] + group["sec_id"] + group["ressources_dir"] + + self.data = { + 'page1.nom_master': 'Renan', + 'page1.nom_complet_master': 'Husson', + 'page1.annee_1': 'Husson', + 'page1.annee_2': 'Jean Jaures', + 'page1.nom_prenom': 'Panda', + 'page1.email': 'Panda', + 'page1.telephone': 'Panda', + 'page1.entreprise': 'Panda', + 'page1.tuteur_pedagogique': 'Panda', + 'page1.tuteur_entreprise': 'Panda', + 'page2.type_contrat_apprentissage': True, + 'page2.type_contrat_professionnalisation': True, + 'page2.type_contrat_stage': True, + 'page2.debut_contrat': 'Panda', + 'page2.fin_contrat': 'Panda', + 'page2.telephone': 'Panda', + 'page2.email': 'Panda', + 'page2.compostant_formation': 'Panda', + 'page2.responsable_pedagogique_formation': 'Panda', + 'page2.tel_responsable_pedagogique_formation': 'Panda', + 'page2.mail_responsable_pedagogique_formation': 'Panda', + 'page2.tel_tuteur_pedagogique': 'Panda', + 'page2.mail_tuteur_pedagogique': 'Panda', + 'page2.tuteur_entreprise': 'Panda', + 'page2.entreprise': 'Panda', + 'page2.adresse_entreprise': 'Panda', + 'page2.tel_tuteur_entreprise': 'Panda', + 'page2.mail_tuteur_entreprise': 'Panda', + 'page4.poste_occupe': 'Panda', + 'page4.poste_occupe_2': 'Panda', + 'PEntreprise.n_periode': 'Panda', + 'PEntreprise.debut_periode': 'Panda', + 'PEntreprise.fin_periode': 'Panda', + 'PEntreprise.travaux_entreprise': 'Panda', + 'PEntreprise.remarque_tuteur': 'Panda', + 'pagePFormation.n_periode': 'Panda', + 'pagePFormation.bilan_periode': 'Panda', + + } + + pdf_fusion = ["/page1.pdf", "/page2.pdf"] + chemin_pdf = "/tmp" + + nom_pdf = "Livret_Alternant_BOB_Armandeau.pdf" + + fusion_fichiers(chemin_pdf, nom_pdf, pdf_fusion) + + # Prenom NOM + # remplir_template() diff --git a/backend/app/tools/LibPdf.py b/backend/app/tools/LibPdf.py index da93aa5..985594a 100644 --- a/backend/app/tools/LibPdf.py +++ b/backend/app/tools/LibPdf.py @@ -55,15 +55,14 @@ def allowed_file(filename): def upload_file(file_to_upload, upload_folder): """ - rep de l'etu avec id - :param file: + televersement d'un fichier + :param file_to_upload: :param upload_folder: :return: """ file_to_upload.save(os.path.join(upload_folder, secure_filename(file_to_upload.filename))) - def delete_file(pdf_path): if os.path.exists(pdf_path): os.remove(pdf_path) diff --git a/backend/tests/tools/libPdf/UploadPDF/testUploadPdf.py b/backend/tests/tools/libPdf/UploadPDF/testUploadPdf.py index 45e1940..4604a9e 100644 --- a/backend/tests/tools/libPdf/UploadPDF/testUploadPdf.py +++ b/backend/tests/tools/libPdf/UploadPDF/testUploadPdf.py @@ -1,20 +1,25 @@ +import filecmp import os import unittest +from pathlib import Path from werkzeug.datastructures import FileStorage -from app.tools.LibPdf import upload_file +from app.tools.LibPdf import upload_file, allowed_file class TestFusionTestCase(unittest.TestCase): def setUp(self): - self.datadir = os.path.join(os.path.dirname(__file__)) + self.datadir = "upload/page1.pdf" + self.file_name = "page1.pdf" def test_fusion(self): - with open("page1.pdf", 'rb') as fp: + with open(self.file_name, 'rb') as fp: file = FileStorage(fp) upload_file(file, "upload") - # self.assertTrue(Path(self.datadir + "/testFusion.pdf").is_file(), "Pdf fusionne inexistant") - # self.assertTrue(len(get_pdf_from_directory(self.datadir)) > 0, "pdf non trouve") - # os.remove(self.datadir + "/testFusion.pdf") + self.assertTrue(Path(self.datadir).is_file(), "Pdf upload inexistant") + self.assertTrue(filecmp.cmp(self.datadir, self.file_name), "fichiers non identique") + self.assertTrue(allowed_file(self.file_name), "format non conforme") + + os.remove(self.datadir)