Ajoute les macros latex et le rendu visuel pour les exemples de SAE

This commit is contained in:
Cléo Baras 2021-04-03 14:55:05 +02:00
parent cd33056792
commit 9eab5f03ac
17 changed files with 193 additions and 68 deletions

View File

@ -245,15 +245,41 @@
% *********************************************
% Exemples de SAE
% *********************************************
\def\nouvelexemple#1#2{
\def\nouvelexemple#1{
\addtocounter{cptSexemple\currentSsae}{1} % Ajoute un exemple (tous semestres confondu)
\def\currentESsae{\currentSsae\Alph{cptSexemple\currentSsae}} %
\expandafter\xdef\csname EScode\currentESsae\endcsname{#1} % code
\expandafter\xdef\csname ESname\currentESsae\endcsname{#2} % nom/intitule
\expandafter\xdef\csname ESname\currentESsae\endcsname{#1} % nom/intitule
% \expandafter\xdef\csname ESsem\currentESsae\endcsname{\csname semestrenumero\currentsemestre\endcsname} % nom du semestre
}
% La description
\def\ajoutESdescription#1{
\begingroup\let\+\relax
\expandafter\gdef\csname ESdescription\currentESsae\endcsname{\noexpand #1} % descriptif
\endgroup
}
% Les formes pédagogique
\def\ajoutESformes#1{
\begingroup\let\+\relax
\expandafter\gdef\csname ESformes\currentESsae\endcsname{\noexpand #1} % descriptif
\endgroup
}
% La problématique
\def\ajoutESproblematique#1{
\begingroup\let\+\relax
\expandafter\gdef\csname ESproblematique\currentESsae\endcsname{\noexpand #1} % descriptif
\endgroup
}
% La modalité
\def\ajoutESmodalite#1{
\begingroup\let\+\relax
\expandafter\gdef\csname ESmodalite\currentESsae\endcsname{\noexpand #1} % descriptif
\endgroup
}
% *************************************
\definecolor{colormotscle}{RGB}{120, 185, 235}

View File

@ -0,0 +1,55 @@
% Le tableau complet présentant un exemple d'une SAE donné
\newcommand\tableauExempleSAE[2]{
\xdef\CODE{#1} % code de la sae (par ex: AA avec A=1er semestre, A=1ère ressource)
\xdef\NUMERO{#2} % numéro de l'exemple
\xdef\EXEMPLE{\CODE\NUMERO} % code de l'exemple pour latex
\setlength{\tabcolsep}{0.125cm} % Marge des colonnes
\setlength{\extrarowheight}{2pt} % Marge des lignes
% 1er tableau : Nom/Code/Semestre
% 3ème tableau : descriptif
\begin{tabular}[t]{|P|T|}
\hline
{\bfseries Titre} &
{\csname ESname\EXEMPLE\endcsname} \\
\hline
{\bfseries Description} &
\tableauChampLong{\csname ESdescription\EXEMPLE\endcsname} \\
\hline
{ \setlength{\extrarowheight}{0pt}
\begin{tabular}[t]{@{}P@{}}
{\bfseries Problématique} \\
{\bfseries professionnelle} \\
{\bfseries posée} \\
\end{tabular}
} &
\tableauChampLong{\csname ESproblematique\EXEMPLE\endcsname} \\
\hline
{ \setlength{\extrarowheight}{0pt}
\begin{tabular}[t]{@{}P@{}}
{\bfseries Formes} \\
{\bfseries pédagogiques} \\
\end{tabular}
}
& \tableauChampLong{\csname ESformes\EXEMPLE\endcsname} \\
\hline
{ \setlength{\extrarowheight}{0pt}
\begin{tabular}[t]{@{}P@{}}
{\bfseries Modalités} \\
{\bfseries d'évaluation} \\
{\bfseries assurant l'acquisition} \\
{\bfseries du niveau de compétence} \\
{\bfseries visée} \\
\end{tabular}
}
& \tableauChampLong{\csname ESmodalite\EXEMPLE\endcsname} \\
\hline
\hline
\end{tabular}
}

View File

@ -65,6 +65,7 @@ bottom=15mm
\input{modeles/tableau.tex}
\input{modeles/tableau_ressource.tex}
\input{modeles/tableau_sae.tex}
\input{modeles/tableau_exemple.tex}
\begin{document}
@ -95,15 +96,22 @@ bottom=15mm
\newcounter{noressource}
\newcounter{nosae}
\newcounter{noexemple}
%% SEMESTRE 1
%\tableauExempleSAE{AA}{A}
% Les SAE du semestre 1
% ****************************
% \tableauSAE{AA}
\forLoop{1}{\value{cptSA}}{nosae}{
\forLoop{1}{\value{cptSA}}{nosae}{ % Pour chaque SAE
%A\Alph{noressource}
\tableauSAE{A\Alph{nosae}}
\def\currentSAE{A\Alph{nosae}}
\tableauSAE{\currentSAE}
\forLoop{1}{\value{cptSexemple\currentSAE}}{noexemple}{
\tableauExempleSAE{\currentSAE}{\Alph{noexemple}}
}
\newpage
}

View File

@ -4,10 +4,27 @@
\nouveausemestre{}
\input{saes/SAE11.tex}
\input{saes/SAE11_exemple1.tex}
\input{saes/SAE11_exemple2.tex}
\input{saes/SAE11_exemple3.tex}
\input{saes/SAE12.tex}
\input{saes/SAE12_exemple1.tex}
\input{saes/SAE12_exemple2.tex}
\input{saes/SAE12_exemple3.tex}
\input{saes/SAE12_exemple4.tex}
\input{saes/SAE13.tex}
\input{saes/SAE13_exemple1.tex}
\input{saes/SAE13_exemple2.tex}
\input{saes/SAE13_exemple3.tex}
\input{saes/SAE13_exemple4.tex}
\input{saes/SAE14.tex}
\input{saes/SAE14_exemple1.tex}
\input{saes/SAE15.tex}
\input{saes/SAE15_exemple1.tex}
\input{ressources/R101.tex}
%\input{ressources/R102.tex}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ11}{Sensibilisation à l'hygiène informatique et à la cybersécurité}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ12}{S'initier aux réseaux informatiques}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ13}{Découvrir un dispositif de transmission}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ14}{Se présenter sur Internet}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ15}{Traitement de données}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ21}{Construire un réseau informatique pour une petite structure}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ22}{Mesurer et caractériser un signal ou un système}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{SAÉ23}{Mettre en place une solution informatique pour lentreprise}

View File

@ -63,12 +63,23 @@ if False:
fid.write(contenu)
print(f"Export de {fichierlatex} ")
# Export latex des ressources
for sem in saes:
for s in saes[sem]:
# Export latex des sae
if False:
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} ")
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} ")
# Export latex des exemples
for sem in exemples:
for s in exemples[sem]:
for (i, e) in enumerate(exemples[sem][s]):
fichierlatex = REPERTOIRE_LATEX + "/" + "{}_exemple{}.tex".format(e.exemple["code"].replace("É", "E"), i+1)
contenu = e.to_latex()
with open(fichierlatex, "w", encoding="utf8") as fid:
fid.write(contenu)
print(f"Export de {fichierlatex} ")

View File

@ -0,0 +1,15 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Exemple de SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvelexemple{#titre}
\ajoutESdescription{
#description
}
\ajoutESformes{#formes}
\ajoutESproblematique{#problematique}
\ajoutESmodalite{#modalite}

View File

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ressources
% SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvellesae{#code}{#titre}

View File

@ -188,60 +188,53 @@ class ExempleSAE():
except:
Ressource.__LOGGER.warning(f"Pb de chargement de {fichieryaml}")
def to_latex(self, modele="pn/modele_sae_exemple.tex"):
def to_latex(self, modele="pn/modele_exemple_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")
description = self.exemple["description"]
if not description:
description = ""
ExempleSAE.__LOGGER.warning(f"{self.exemple['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)
description = description.replace("\n", "\n\n").replace("\n" * 4, "\n") # corrige les suppressions de ligne à la relecture du yaml
description = md_to_latex(description)
# préparation des livrables
livrables = self.sae["livrables"]
if livrables == "Aucun":
livrables = ""
SAE.__LOGGER.warning(f"{self.sae['titre']} n'a pas de livrables")
# préparation de la forme
formes = self.exemple["formes"]
if not formes:
formes = ""
ExempleSAE.__LOGGER.warning(f"{self.exemple['titre']} n'a pas de formes")
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)
formes = formes.replace("\n", "\n\n").replace("\n" * 4, "\n") # corrige les suppressions de ligne à la relecture du yaml
formes = md_to_latex(formes)
# préparation de la problématique
problematique = self.exemple["problematique"]
if not formes:
problematique = ""
ExempleSAE.__LOGGER.warning(f"{self.exemple['titre']} n'a pas de problematique")
else:
problematique = problematique.replace("\n", "\n\n").replace("\n" * 4, "\n") # corrige les suppressions de ligne à la relecture du yaml
problematique = md_to_latex(problematique)
# préparation des modalites
modalite = self.exemple["modalite"]
if not formes:
modalite = ""
ExempleSAE.__LOGGER.warning(f"{self.exemple['titre']} n'a pas de modalite")
else:
modalite = modalite.replace("\n", "\n\n").replace("\n" * 4, "\n") # corrige les suppressions de ligne à la relecture du yaml
modalite = md_to_latex(modalite)
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 = TemplateLatex(modlatex).substitute(titre=self.exemple["titre"],
description=description,
formes=formes,
problematique = problematique,
modalite=modalite
)
# chaine = chaine.replace("&", "\&")
chaine = chaine.replace("\\tightlist\n", "")

View File

@ -496,7 +496,7 @@ class ExempleSAEDocx():
"semestre": self.semestre,
"description": folded(self.description),
"formes": self.formes,
"problematique": folded(self.problematique),
"problematique": folded(self.problematique) if self.problematique !="" else "",
"modalite": folded(self.modalite),
}
output = ruamel.yaml.dump(dico, Dumper=ruamel.yaml.RoundTripDumper,