From 838aa4925f3d5a9f618daac771cbbea084134ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20Baras?= Date: Fri, 2 Apr 2021 17:38:56 +0200 Subject: [PATCH] =?UTF-8?q?Ajoute=20l'export=20latex=20d'une=20SAE=20et=20?= =?UTF-8?q?les=20macros=20pour=20la=20repr=C3=A9senter=20en=20latex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- latex/macros_formations.sty | 163 +++++++++++++++++++++------- latex/modeles/tableau_ressource.tex | 10 +- latex/pn_formation.tex | 24 ++-- latex/referentiel_BUT1.tex | 64 +++++------ python/export_yaml_to_latex.py | 38 +++++-- python/pn/modele_sae.tex | 37 +++++++ python/ressource.py | 83 +++++++++++++- 7 files changed, 324 insertions(+), 95 deletions(-) create mode 100644 python/pn/modele_sae.tex diff --git a/latex/macros_formations.sty b/latex/macros_formations.sty index 83d9d6c..0b14657 100644 --- a/latex/macros_formations.sty +++ b/latex/macros_formations.sty @@ -27,7 +27,7 @@ % Variables globales % ************************************** \newcounter{cptsemestre} % -\newcounter{cptressource} % +\newcounter{cptR} % \newcounter{cptsae} \xdef\comploop{A,B,C} % Les compétences de la ressource @@ -48,12 +48,13 @@ \def\nouveausemestre#1{ \addtocounter{cptsemestre}{1} % Incrémente le compteur de semestre - \setcounter{cptressource}{0} % RAZ du compteur de ressource + \setcounter{cptR}{0} % RAZ du compteur de ressource total \setcounter{cptsae}{0} \def\currentsemestre{\Alph{cptsemestre}} % Lettre du semestre courant : A=1, B=2, ... - \newcounter{cptressource\currentsemestre} % le compteur des ressources dans le semestre - + \newcounter{cptR\currentsemestre} % le compteur des ressources dans le semestre + \newcounter{cptS\currentsemestre} % le compteur des sae dans le semestre + \expandafter\def\csname semestrename\currentsemestre\endcsname{Semestre \arabic{cptsemestre}} \expandafter\def\csname semestrenumero\currentsemestre\endcsname{\arabic{cptsemestre}} } @@ -67,34 +68,31 @@ % Déclaration de la ressource : % \nouvelleressource{code_ressource}{intitule_ressource} \def\nouvelleressource#1#2{ - \addtocounter{cptressource}{1} % Ajoute une ressource (tous semestres confondu) - \addtocounter{cptressource\currentsemestre}{1} % Ajoute une ressource au semestre - \def\currentressource{\currentsemestre\Alph{cptressource}} % Ressource RAA = A pour semestre 1 puis A pour ressource n°1 + \addtocounter{cptR}{1} % Ajoute une ressource (tous semestres confondu) + \addtocounter{cptR\currentsemestre}{1} % Ajoute une ressource au semestre + \def\currentRressource{\currentsemestre\Alph{cptR}} % Ressource RAA = A pour semestre 1 puis A pour ressource n°1 - \expandafter\xdef\csname Rcode\currentressource\endcsname{#1} % code - \expandafter\xdef\csname Rname\currentressource\endcsname{#2} % nom/intitule - \expandafter\xdef\csname Rsem\currentressource\endcsname{\csname semestrenumero\currentsemestre\endcsname} % nom du semestre + \expandafter\xdef\csname Rcode\currentRressource\endcsname{#1} % code + \expandafter\xdef\csname Rname\currentRressource\endcsname{#2} % nom/intitule + \expandafter\xdef\csname Rsem\currentRressource\endcsname{\csname semestrenumero\currentsemestre\endcsname} % nom du semestre - \newcounter{cptcontenu\currentressource} % le compteur de contenu pour la ressource, mis à 0 - \newcounter{cptressourcecomp\currentressource} % le compteur de compétences rattachées à la ressource - \newcounter{cptressourcesae\currentressource} % Le compteur de sae - \newcounter{cptressourceprerequis\currentressource} - - %\definecollection{ressourcedescription\currentressource} + \newcounter{cptRcomp\currentRressource} % le compteur de compétences rattachées à la ressource + \newcounter{cptRsae\currentRressource} % Le compteur de sae + \newcounter{cptRprerequis\currentRressource} } % **************************** % Ajout des heures à la ressource courante \def\ajoutRheures#1#2{ - \expandafter\xdef\csname Rtraining\currentressource\endcsname{#1} % heures de formation encadrées - \expandafter\xdef\csname Rtp\currentressource\endcsname{#2} % heures de projet + \expandafter\xdef\csname Rtraining\currentRressource\endcsname{#1} % heures de formation encadrées + \expandafter\xdef\csname Rtp\currentRressource\endcsname{#2} % heures de projet } % **************************** -% Ajout du descriptif (ancrage) +% Ajout du descriptif (ancrage professionnel) \def\ajoutRancrage#1{ \begingroup\let\+\relax - \expandafter\gdef\csname Rancrage\currentressource\endcsname{\noexpand #1} % descriptif + \expandafter\gdef\csname Rancrage\currentRressource\endcsname{\noexpand #1} % descriptif \endgroup } @@ -102,7 +100,7 @@ % Ajout des contenus \def\ajoutRcontenudetaille#1{ \begingroup\let\+\relax - \expandafter\gdef\csname Rcontenu\currentressource\endcsname{\noexpand #1} % liste de contenu + \expandafter\gdef\csname Rcontenu\currentRressource\endcsname{\noexpand #1} % liste de contenu \endgroup } @@ -110,50 +108,137 @@ % Ajout des compétences % \ajoutcompetence{nom_competence}{niveau} \def\ajoutRcompetence#1#2{ - \addtocounter{cptressourcecomp\currentressource}{1} % le compteur de la comp dans la ressource - \xdef\currentcomp{\Alph{cptressourcecomp\currentressource}} % La lettre de la comp dans la ressource + \addtocounter{cptRcomp\currentRressource}{1} % le compteur de la comp dans la ressource + \xdef\currentRcomp{\Alph{cptRcomp\currentRressource}} % La lettre de la comp dans la ressource - \expandafter\xdef\csname Rcomp\currentressource\currentcomp\endcsname{#1} % le nom de la comp - \expandafter\xdef\csname Rniveau\currentressource\currentcomp\endcsname{#2} % le nom de la comp + \expandafter\xdef\csname Rcomp\currentRressource\currentRcomp\endcsname{#1} % le nom de la comp + \expandafter\xdef\csname Rniveau\currentRressource\currentRcomp\endcsname{#2} % le nom de la comp - \newcounter{cptressourceac\currentressource\currentcomp} % le compteur d'ac pour la compétence rattachées à la ressource + \newcounter{cptRac\currentRressource\currentRcomp} % le compteur d'ac pour la compétence rattachées à la ressource } % **************************** % Ajout d'AC aux compétences \def\ajoutRac#1#2{ - \addtocounter{cptressourceac\currentressource\currentcomp}{1} % le compteur de l'ac pour la comp dans la ressource - \xdef\currentac{\Alph{cptressourceac\currentressource\currentcomp}} % La lettre de l'ac pour la comp dans la ressource + \addtocounter{cptRac\currentRressource\currentRcomp}{1} % le compteur de l'ac pour la comp dans la ressource + \xdef\currentRac{\Alph{cptRac\currentRressource\currentRcomp}} % La lettre de l'ac pour la comp dans la ressource - \expandafter\xdef\csname Raccode\currentressource\currentcomp\currentac\endcsname{#1} % le nom de la comp - \expandafter\xdef\csname Racname\currentressource\currentcomp\currentac\endcsname{#2} % le nom de la comp + \expandafter\xdef\csname Raccode\currentRressource\currentRcomp\currentRac\endcsname{#1} % le nom de la comp + \expandafter\xdef\csname Racname\currentRressource\currentRcomp\currentRac\endcsname{#2} % le nom de la comp } % **************************** % Ajout des SAE \def\ajoutRsae#1#2{ - \addtocounter{cptressourcesae\currentressource}{1} % le compteur de la sae dans la ressource - \xdef\currentsae{\Alph{cptressourcesae\currentressource}} % La lettre + \addtocounter{cptRsae\currentRressource}{1} % le compteur de la sae dans la ressource + \xdef\currentRsae{\Alph{cptRsae\currentRressource}} % La lettre - \expandafter\xdef\csname Rsaecode\currentressource\currentsae\endcsname{#1} % - \expandafter\xdef\csname Rsaename\currentressource\currentsae\endcsname{#2} % + \expandafter\xdef\csname Rsaecode\currentRressource\currentRsae\endcsname{#1} % + \expandafter\xdef\csname Rsaename\currentRressource\currentRsae\endcsname{#2} % } % **************************** % Ajout des prerequis \def\ajoutRprerequis#1#2{ - \addtocounter{cptressourceprerequis\currentressource}{1} % le compteur du prerequis dans la ressource - \xdef\currentprerequis{\Alph{cptressourceprerequis\currentressource}} % La lettre + \addtocounter{cptRprerequis\currentRressource}{1} % le compteur du prerequis dans la ressource + \xdef\currentprerequis{\Alph{cptRprerequis\currentRressource}} % La lettre - \expandafter\xdef\csname Rprerequiscode\currentressource\currentprerequis\endcsname{#1} % - \expandafter\xdef\csname Rprerequisname\currentressource\currentprerequis\endcsname{#2} % + \expandafter\xdef\csname Rprerequiscode\currentRressource\currentprerequis\endcsname{#1} % + \expandafter\xdef\csname Rprerequisname\currentRressource\currentprerequis\endcsname{#2} % } % **************************** % Ajout des mots-clés \def\ajoutRmotscles#1{ - \expandafter\xdef\csname Rmotscles\currentressource\endcsname{#1} % descriptif + \expandafter\xdef\csname Rmotscles\currentRressource\endcsname{#1} % descriptif +} + + +% ********************************************** +% Déclaration d'une SAé +% ********************************************** + + +% **************************** +% Déclaration de la ressource : +% \nouvellesae{code_sae}{intitule_sae} +\def\nouvellesae#1#2{ + \addtocounter{cptsae}{1} % Ajoute une ressource (tous semestres confondu) + \addtocounter{cptS\currentsemestre}{1} % Ajoute une ressource au semestre + \def\currentSsae{\currentsemestre\Alph{cptsae}} % Ressource RAA = A pour semestre 1 puis A pour ressource n°1 + + \expandafter\xdef\csname Scode\currentSsae\endcsname{#1} % code + \expandafter\xdef\csname Sname\currentSsae\endcsname{#2} % nom/intitule + \expandafter\xdef\csname Ssem\currentSsae\endcsname{\csname semestrenumero\currentSsae\endcsname} % nom du semestre + + \newcounter{cptScomp\currentSsae} % le compteur de compétences rattachées à la ressource + \newcounter{cptSressource\currentSsae} % Le compteur de ressources dans la SAé +} + +% **************************** +% Ajout des heures à la saé courante +\def\ajoutSheures#1#2#3{ + \expandafter\xdef\csname Straining\currentSsae\endcsname{#1} % heures de formation encadrées + \expandafter\xdef\csname Stp\currentSsae\endcsname{#2} % heures de tp + \expandafter\xdef\csname Sprojet\currentSsae\endcsname{#3} % heures de projet +} + +% **************************** +% Ajout du descriptif (description des objectifs) +\def\ajoutSdescription#1{ + \begingroup\let\+\relax + \expandafter\gdef\csname Rdescriptif\currentSsae\endcsname{\noexpand #1} % descriptif + \endgroup +} + + +% **************************** +% Ajout des compétences +% \ajoutcompetence{nom_competence}{niveau} +\def\ajoutScompetence#1#2{ + \addtocounter{cptScomp\currentSsae}{1} % le compteur de la comp dans la ressource + \xdef\currentScomp{\Alph{cptScomp\currentSsae}} % La lettre de la comp dans la ressource + + + \expandafter\xdef\csname Scomp\currentSsae\currentScomp\endcsname{#1} % le nom de la comp + \expandafter\xdef\csname Sniveau\currentSsae\currentScomp\endcsname{#2} % le nom de la comp + + \newcounter{cptSac\currentSsae\currentScomp} % le compteur d'ac pour la compétence rattachées à la ressource +} + +% **************************** +% Ajout d'AC aux compétences +\def\ajoutSac#1#2{ + \addtocounter{cptSac\currentSsae\currentScomp}{1} % le compteur de l'ac pour la comp dans la ressource + \xdef\currentSac{\Alph{cptSac\currentSsae\currentScomp}} % La lettre de l'ac pour la comp dans la ressource + + \expandafter\xdef\csname Raccode\currentSsae\currentScomp\currentSac\endcsname{#1} % le nom de la comp + \expandafter\xdef\csname Racname\currentSsae\currentScomp\currentSac\endcsname{#2} % le nom de la comp +} + +% **************************** +% Ajout des ressources mobilisées par l'étudiant +\def\ajoutSressources#1#2{ + \addtocounter{cptSressource\currentSsae}{1} % le compteur de la sae dans la ressource + \xdef\currentSressource{\Alph{cptSressource\currentSsae}} % La lettre + + \expandafter\xdef\csname Sressourcecode\currentSsae\currentSressource\endcsname{#1} % + \expandafter\xdef\csname Sressourcename\currentSsae\currentSressource\endcsname{#2} % +} + + % **************************** +% Ajout des livrables +\def\ajoutSlivrables#1{ + \begingroup\let\+\relax + \expandafter\gdef\csname Rlivrables\currentSsae\endcsname{\noexpand #1} % descriptif + \endgroup +} + +% **************************** +% Ajout des mots-clés +\def\ajoutSmotscles#1{ + \expandafter\xdef\csname Smotscles\currentSsae\endcsname{#1} % mots-clés } diff --git a/latex/modeles/tableau_ressource.tex b/latex/modeles/tableau_ressource.tex index d671f48..26315f2 100644 --- a/latex/modeles/tableau_ressource.tex +++ b/latex/modeles/tableau_ressource.tex @@ -14,7 +14,7 @@ \xdef\CODE{#1} % le code de la ressource sous la forme AA \xdef\COMP{#2} % le code de la compétence sous la forme A - \forLoop{1}{\value{cptressourceac\CODE\COMP}}{noligne}{ + \forLoop{1}{\value{cptRac\CODE\COMP}}{noligne}{ \xdef\contenu{{\csname Raccode\CODE\COMP\Alph{noligne}\endcsname} | {\csname Racname\CODE\COMP\Alph{noligne}\endcsname}} \contenu @@ -26,11 +26,11 @@ % Tableau des SAE \newcommand*{\tableauSAE}[1]{% \xdef\CODE{#1} % le code de la ressource sous la forme AA - \ifthenelse{\equal{\value{cptressourcesae\CODE}}{0}}{ % Si pas de prérequis + \ifthenelse{\equal{\value{cptRsae\CODE}}{0}}{ % Si pas de prérequis Aucune }{ \begin{tabular}[t]{@{}T@{}}% - \forLoop{1}{\value{cptressourcesae\CODE}}{noligne}{ + \forLoop{1}{\value{cptRsae\CODE}}{noligne}{ \xdef\contenu{{\csname Rsaecode\CODE\Alph{noligne}\endcsname} | {\csname Rsaename\CODE\Alph{noligne}\endcsname}} \contenu @@ -43,12 +43,12 @@ % Tableau des pré-requis \newcommand*{\tableauPrerequis}[1]{% \xdef\CODE{#1} % le code de la ressource sous la forme AA - \ifthenelse{\equal{\value{cptressourceprerequis\CODE}}{0}}{ % Si pas de prérequis + \ifthenelse{\equal{\value{cptRprerequis\CODE}}{0}}{ % Si pas de prérequis Aucun }{ % Si des pré-requis \begin{tabular}[t]{@{}T@{}}% - \forLoop{1}{\value{cptressourceprerequis\CODE}}{noligne}{ + \forLoop{1}{\value{cptRprerequis\CODE}}{noligne}{ \xdef\contenu{{\csname Rprerequiscode\CODE\Alph{noligne}\endcsname} | {\csname Rprerequisname\CODE\Alph{noligne}\endcsname}} \contenu diff --git a/latex/pn_formation.tex b/latex/pn_formation.tex index 6f57c91..ad8f511 100644 --- a/latex/pn_formation.tex +++ b/latex/pn_formation.tex @@ -91,21 +91,21 @@ bottom=15mm %\tableauACD{AA}{A} % \tableauAC{AA}{A} - + \newcounter{noressource} - +\newcounter{nosae} % Les ressources du semestre 1 -\forLoop{1}{\value{cptressourceA}}{noressource}{ - %A\Alph{noressource} - \tableauRessource{A\Alph{noressource}} - \newpage -} +%\forLoop{1}{\value{cptRA}}{noressource}{ + %%A\Alph{noressource} + %\tableauRessource{A\Alph{noressource}} + %\newpage +%} -\forLoop{1}{\value{cptressourceB}}{noressource}{ - %A\Alph{noressource} - \tableauRessource{B\Alph{noressource}} - \newpage -} +%\forLoop{1}{\value{cptressourceB}}{noressource}{ + %%A\Alph{noressource} + %\tableauRessource{B\Alph{noressource}} + %\newpage +%} %\tableauRessource{AA} %\tableauRessource{AB} diff --git a/latex/referentiel_BUT1.tex b/latex/referentiel_BUT1.tex index bb6cfed..0a2097d 100644 --- a/latex/referentiel_BUT1.tex +++ b/latex/referentiel_BUT1.tex @@ -4,36 +4,38 @@ \nouveausemestre{} \input{ressources/R101.tex} -\input{ressources/R102.tex} -\input{ressources/R103.tex} -\input{ressources/R104.tex} -\input{ressources/R105.tex} -\input{ressources/R106.tex} -\input{ressources/R107.tex} -\input{ressources/R108.tex} -\input{ressources/R109.tex} -\input{ressources/R110.tex} -\input{ressources/R111.tex} -\input{ressources/R112.tex} -\input{ressources/R113.tex} -\input{ressources/R114.tex} -\input{ressources/R115.tex} +%\input{ressources/R102.tex} +%\input{ressources/R103.tex} +%\input{ressources/R104.tex} +%\input{ressources/R105.tex} +%\input{ressources/R106.tex} +%\input{ressources/R107.tex} +%\input{ressources/R108.tex} +%\input{ressources/R109.tex} +%\input{ressources/R110.tex} +%\input{ressources/R111.tex} +%\input{ressources/R112.tex} +%\input{ressources/R113.tex} +%\input{ressources/R114.tex} +%\input{ressources/R115.tex} +\input{saes/SAE11.tex} -% Semestre 2 -\nouveausemestre{} - -\input{ressources/R201.tex} -\input{ressources/R202.tex} -\input{ressources/R203.tex} -\input{ressources/R204.tex} -\input{ressources/R205.tex} -\input{ressources/R206.tex} -\input{ressources/R207.tex} -\input{ressources/R208.tex} -\input{ressources/R209.tex} -\input{ressources/R210.tex} -\input{ressources/R211.tex} -\input{ressources/R212.tex} -\input{ressources/R213.tex} -\input{ressources/R214.tex} +% +%% Semestre 2 +%\nouveausemestre{} +% +%\input{ressources/R201.tex} +%\input{ressources/R202.tex} +%\input{ressources/R203.tex} +%\input{ressources/R204.tex} +%\input{ressources/R205.tex} +%\input{ressources/R206.tex} +%\input{ressources/R207.tex} +%\input{ressources/R208.tex} +%\input{ressources/R209.tex} +%\input{ressources/R210.tex} +%\input{ressources/R211.tex} +%\input{ressources/R212.tex} +%\input{ressources/R213.tex} +%\input{ressources/R214.tex} diff --git a/python/export_yaml_to_latex.py b/python/export_yaml_to_latex.py index 8efad5e..04180ef 100644 --- a/python/export_yaml_to_latex.py +++ b/python/export_yaml_to_latex.py @@ -1,4 +1,4 @@ -from ressource import Ressource +from ressource import Ressource, SAE from ressourcedocx import * import pypandoc @@ -13,7 +13,6 @@ fichiers = os.listdir(REPERTOIRE_RESSOURCES) fichiers = sorted(fichiers) # tri par ordre alphabétique ressources = {"S1": [], "S2": []} -saes = {"S1": [], "S2": []} for file in fichiers: fichieryaml = REPERTOIRE_RESSOURCES + "/" + file if file.startswith("R"): # si c'est une ressources @@ -21,6 +20,20 @@ for file in fichiers: sem = "S" + str(r.ressource["semestre"]) ressources[sem].append(r) +# Chargement des ressources +REPERTOIRE_SAE = "export" +REPERTOIRE_LATEX = "../latex/saes" +fichiers = os.listdir(REPERTOIRE_RESSOURCES) +fichiers = sorted(fichiers) # tri par ordre alphabétique + +saes = {"S1": [], "S2": []} +for file in fichiers: + fichieryaml = REPERTOIRE_RESSOURCES + "/" + file + if file.startswith("S"): # si c'est une sae + s = SAE(fichieryaml) + sem = "S" + str(s.sae["semestre"]) + saes[sem].append(s) + # Eléments de tests r1 = ressources["S1"][0] @@ -30,12 +43,23 @@ output1 = pypandoc.convert_text(temp1, 'tex', format='md', print("ici") -# Export latex -for sem in ressources: - for r in ressources[sem]: +# Export latex des ressources +if False: + for sem in ressources: + for r in ressources[sem]: - fichierlatex = REPERTOIRE_LATEX + "/" + "{}.tex".format(r.ressource["code"]) - contenu = r.to_latex() + fichierlatex = REPERTOIRE_LATEX + "/" + "{}.tex".format(r.ressource["code"]) + contenu = r.to_latex() + with open(fichierlatex, "w", encoding="utf8") as fid: + fid.write(contenu) + print(f"Export de {fichierlatex} ") + +# Export latex des ressources +for sem in saes: + for s in saes[sem]: + + fichierlatex = REPERTOIRE_LATEX + "/" + "{}.tex".format(s.sae["code"].replace("É", "E")) + contenu = s.to_latex() with open(fichierlatex, "w", encoding="utf8") as fid: fid.write(contenu) print(f"Export de {fichierlatex} ") \ No newline at end of file diff --git a/python/pn/modele_sae.tex b/python/pn/modele_sae.tex new file mode 100644 index 0000000..a72fdd3 --- /dev/null +++ b/python/pn/modele_sae.tex @@ -0,0 +1,37 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Ressources +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\nouvellesae{#code}{#titre} + +\ajoutSheures{#heures_encadrees}{#heures_tp}{#heures_projet} + + +%% Les compétences et les ACs +\ajoutScompetence{RT1-Administrer}{\niveauA} + +#compRT1 + +\ajoutScompetence{RT2-Connecter}{\niveauA} + +#compRT2 + +\ajoutScompetence{RT3-Programmer}{\niveauA} + +#compRT3 + +% Le description +\ajoutSdescription{ +#description +} + +% Les ressources +#ressources + +% Livrable +\ajoutSlivrables{ +#livrables +} + +% Mots-clés +\ajoutSmotscles{#motscles} diff --git a/python/ressource.py b/python/ressource.py index 67d9a68..ce0b9ac 100644 --- a/python/ressource.py +++ b/python/ressource.py @@ -102,4 +102,85 @@ class Ressource(): # chaine = chaine.replace("&", "\&") chaine = chaine.replace("\\tightlist\n", "") - return chaine \ No newline at end of file + return chaine + + +class SAE(): + """Modélise une ressource lorsqu'elle est extraite d'un yaml""" + __LOGGER = logging.getLogger(__name__) + + def __init__(self, fichieryaml): + with open(fichieryaml, "r", encoding="utf8") as fid: + yaml = ruamel.yaml.YAML() + try: + self.sae = yaml.load(fid.read()) + except: + Ressource.__LOGGER.warning(f"Pb de chargement de {fichieryaml}") + + def to_latex(self, modele="pn/modele_sae.tex"): + """Génère le code latex décrivant la ressource""" + modlatex = get_modele(modele) #"pn/modele_ressource.tex") + + # Préparation des ac + ajoutac = "\\ajoutSac{%s}{%s}" + compRT = [] + for accomp in self.sae["acs"]: + comps = [] + for no_ac in range(len(self.sae["acs"][accomp])): # les ac de la comp + code_ac = self.sae["acs"][accomp][no_ac] + comps.append( ajoutac % (code_ac, DATA_ACS[accomp][code_ac]) ) + compRT.append("\n".join(comps)) + + # Préparation des ressources + ajoutressources = "\\ajoutSressources{%s}{%s}" + resRT = [] + for (i, res) in enumerate(self.sae["ressources"]): # in range(len(self.apprentissages)): + resRT.append(ajoutressources % (res, get_officiel_ressource_name_by_code(res))) + ressources = "\n".join(resRT) + + + # préparation du descriptif + descriptif = self.sae["description"] + if descriptif == "Aucun": + descriptif = "" + SAE.__LOGGER.warning(f"{self.sae['titre']} n'a pas de description") + else: + descriptif = descriptif.replace("\n", "\n\n").replace("\n" * 4, "\n") # corrige les suppressions de ligne à la relecture du yaml + descriptif = md_to_latex(descriptif) + + # préparation des livrables + livrables = self.sae["livrables"] + if livrables == "Aucun": + livrables = "" + SAE.__LOGGER.warning(f"{self.sae['titre']} n'a pas de livrables") + else: + livrables = livrables.replace("\n", "\n\n").replace("\n" * 4, "\n") # corrige les suppressions de ligne à la relecture du yaml + livrables = md_to_latex(livrables) + + chaine = "" + chaine = TemplateLatex(modlatex).substitute(code=self.sae["code"], + titre=self.sae["titre"], + heures_encadrees=self.sae["heures_encadrees"], + heures_tp=self.sae["tp"], + heures_projet=self.sae["projet"], + compRT1=compRT[0], + compRT2=compRT[1], + compRT3=compRT[2], + description=caracteres_recalcitrants(descriptif), + ressources=ressources, + livrables= livrables, + motscles = caracteres_recalcitrants(self.sae["motscles"]), + ) + # chaine = chaine.replace("&", "\&") + + chaine = chaine.replace("\\tightlist\n", "") + return chaine + +def md_to_latex(contenu): + """Réalise la conversion markdown to latex avec pypandoc""" + contenu = pypandoc.convert_text(contenu, 'tex', format='md', + extra_args=['--atx-headers']) + contenu = contenu.replace("\r\n", "\n") + contenu = caracteres_recalcitrants(contenu) + contenu = remove_ligne_vide(contenu) + return contenu \ No newline at end of file