TG-62 template et API insert
This commit is contained in:
parent
aa6a2bc0bb
commit
ab33fb2bbe
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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 }}
|
||||
|
82
backend/app/api/ExportPdfAPI.py
Normal file
82
backend/app/api/ExportPdfAPI.py
Normal file
@ -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()
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user