TG-62 template et API insert

This commit is contained in:
DonRenando 2017-03-31 12:28:00 +02:00
parent aa6a2bc0bb
commit ab33fb2bbe
11 changed files with 132 additions and 46 deletions

View File

@ -1,67 +1,67 @@
Page 1 : Page 1 :
MASTER : {{ nom_master }} MASTER : {{page1.nom_master }}
{{ nom_complet_master }} {{ page1.nom_complet_master }}
Année universitaire : 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 : Page 2 :
Alternant Alternant
Type de contrat : Type de contrat :
{{ type_contrat_apprentissage | X }} {{ page2.type_contrat_apprentissage | X }}
{{ type_contrat_professionnalisation | X }} {{ page2.type_contrat_professionnalisation | X }}
{{ type_contrat_stage | X }} {{ page2.type_contrat_stage | X }}
Début de contrat : {{ debut_contrat }} Début de contrat : {{ page2.debut_contrat }}
Fin de contrat : {{ fin_contrat }} Fin de contrat : {{ page2.fin_contrat }}
tel : {{ telephone }} tel : {{ page2.telephone }}
mail : {{ email }} mail : {{ page2.email }}
compostant de formation : {{ compostant_formation }} compostant de formation : {{ page2.compostant_formation }}
responsable tuteur_pedagogique de la formation : {{ responsable_pedagogique_formation }} responsable tuteur_pedagogique de la formation : {{ page2.responsable_pedagogique_formation }}
tel : {{ tel_responsable_pedagogique_formation }} tel : {{ page2.tel_responsable_pedagogique_formation }}
mail : {{ mail_responsable_pedagogique_formation }} mail : {{ page2.mail_responsable_pedagogique_formation }}
tuteur pédagogique : tuteur pédagogique :
{{ tel_tuteur_pedagogique }} {{ page2.tel_tuteur_pedagogique }}
{{ mail_tuteur_pedagogique }} {{ page2.mail_tuteur_pedagogique }}
tuteur entreprise : tuteur entreprise :
{{ tuteur_entreprise }} {{ page2.tuteur_entreprise }}
entreprise : {{ entreprise }} entreprise : {{ page2.entreprise }}
adresse lieu Alternance : {{ adresse_entreprise }} adresse lieu Alternance : {{ page2.adresse_entreprise }}
tel : {{ tel_tuteur_entreprise }} tel : {{ page2.tel_tuteur_entreprise }}
mail : {{ mail_tuteur_entreprise }} mail : {{ page2.mail_tuteur_entreprise }}
Page 4 : Page 4 :
poste occupé : {{ poste_occupe }} poste occupé : {{ page4.poste_occupe }}
{{ poste_occupe_2 }} {{ page4.poste_occupe_2 }}
Pentreprise : Pentreprise :
{{ n_periode }} {{ PEntreprise.n_periode }}
{{ debut_periode }} {{ PEntreprise.debut_periode }}
{{ fin_periode }} {{ PEntreprise.fin_periode }}
{{ travaux_entreprise }} {{ PEntreprise.travaux_entreprise }}
{{ remarque_tuteur }} {{ PEntreprise.remarque_tuteur }}
bilan_periode : bilan_periode :
{{ n_periode }} {{ PFormation.n_periode }}
{{ bilan_periode }} {{ PFormation.bilan_periode }}

View 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()

View File

@ -55,15 +55,14 @@ def allowed_file(filename):
def upload_file(file_to_upload, upload_folder): def upload_file(file_to_upload, upload_folder):
""" """
rep de l'etu avec id televersement d'un fichier
:param file: :param file_to_upload:
:param upload_folder: :param upload_folder:
:return: :return:
""" """
file_to_upload.save(os.path.join(upload_folder, secure_filename(file_to_upload.filename))) file_to_upload.save(os.path.join(upload_folder, secure_filename(file_to_upload.filename)))
def delete_file(pdf_path): def delete_file(pdf_path):
if os.path.exists(pdf_path): if os.path.exists(pdf_path):
os.remove(pdf_path) os.remove(pdf_path)

View File

@ -1,20 +1,25 @@
import filecmp
import os import os
import unittest import unittest
from pathlib import Path
from werkzeug.datastructures import FileStorage 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): class TestFusionTestCase(unittest.TestCase):
def setUp(self): 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): def test_fusion(self):
with open("page1.pdf", 'rb') as fp: with open(self.file_name, 'rb') as fp:
file = FileStorage(fp) file = FileStorage(fp)
upload_file(file, "upload") upload_file(file, "upload")
# self.assertTrue(Path(self.datadir + "/testFusion.pdf").is_file(), "Pdf fusionne inexistant") self.assertTrue(Path(self.datadir).is_file(), "Pdf upload inexistant")
# self.assertTrue(len(get_pdf_from_directory(self.datadir)) > 0, "pdf non trouve") self.assertTrue(filecmp.cmp(self.datadir, self.file_name), "fichiers non identique")
# os.remove(self.datadir + "/testFusion.pdf") self.assertTrue(allowed_file(self.file_name), "format non conforme")
os.remove(self.datadir)