Modifie les macros latex en prévision de l'introduction des macros sae

This commit is contained in:
Cléo Baras 2021-04-02 16:08:14 +02:00
parent e609824f3c
commit a2fc801fd2
9 changed files with 107 additions and 129 deletions

View File

@ -56,7 +56,6 @@
\expandafter\def\csname semestrename\currentsemestre\endcsname{Semestre \arabic{cptsemestre}}
\expandafter\def\csname semestrenumero\currentsemestre\endcsname{\arabic{cptsemestre}}
}
@ -64,6 +63,7 @@
% Ressources
% ****************************
% ****************************
% Déclaration de la ressource :
% \nouvelleressource{code_ressource}{intitule_ressource}
\def\nouvelleressource#1#2{
@ -82,55 +82,33 @@
%\definecollection{ressourcedescription\currentressource}
}
% ****************************
% Ajout des heures à la ressource courante
\def\ajoutheures#1#2{
\def\ajoutRheures#1#2{
\expandafter\xdef\csname ressourcetraining\currentressource\endcsname{#1} % heures de formation encadrées
\expandafter\xdef\csname ressourcetp\currentressource\endcsname{#2} % heures de projet
}
% ****************************
% Ajout du descriptif (ancrage)
\def\ajoutancrage#1{
\def\ajoutRancrage#1{
\begingroup\let\+\relax
\expandafter\gdef\csname ressourceancrage\currentressource\endcsname{\noexpand #1} % descriptif
\endgroup
}
% ****************************
% Ajout des contenus
\def\ajoutcontenudetaille#1{
\def\ajoutRcontenudetaille#1{
\begingroup\let\+\relax
\expandafter\gdef\csname ressourcecontenudetaille\currentressource\endcsname{\noexpand #1} % liste de contenu
\endgroup
}
%% Ajout des contenus principaux : introduction éventuelle
%\def\ajoutintrocontenu#1{
%\expandafter\xdef\csname ressourceintrocontenu\currentressource\endcsname{#1} % descriptif
%}
%
%% Ajout des contenus principaux
%\def\ajoutcontenu#1{
%\addtocounter{cptcontenu\currentressource}{1} % Ajoute un contenu (aka un item à la liste des contenus)
%\xdef\currentcontenu{\Alph{cptcontenu\currentressource}} % La lettre du contenu courant
%
%\expandafter\xdef\csname ressourcecontenu\currentressource\currentcontenu\endcsname{#1} % descriptif
%\newcounter{cptcontenudetail\currentressource\currentcontenu} % Le compteur de détails
%}
%
%% Ajout de détails aux contenux (sous-liste)
%\def\ajoutdetailcontenu#1{
%\addtocounter{cptcontenudetail\currentressource\currentcontenu}{1} % Ajoute un détail à la liste des contenus
%
%\expandafter\xdef\csname ressourcecontenudetail\currentressource\currentcontenu\Alph{cptcontenudetail\currentressource\currentcontenu}\endcsname{#1} % descriptif
%}
%
%\def\ajoutconclusioncontenu#1{
%\expandafter\xdef\csname ressourceconclucontenu\currentressource\endcsname{#1} % la conclusion
%}
% ****************************
% Ajout des compétences
% \ajoutcompetence{nom_competence}{niveau}
\def\ajoutcompetence#1#2{
\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
@ -141,8 +119,9 @@
\newcounter{cptressourceac\currentressource\currentcomp} % le compteur d'ac pour la compétence rattachées à la ressource
}
% ****************************
% Ajout d'AC aux compétences
\def\ajoutac#1#2{
\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
@ -155,12 +134,11 @@
\else
\expandafter\xdef\csname loopressourceac\currentressource\currentcomp\endcsname{\csname loopressourceac\currentressource\currentcomp\endcsname,\currentac}
\fi
}
% ****************************
% Ajout des SAE
\def\ajoutsae#1#2{
\def\ajoutRsae#1#2{
\addtocounter{cptressourcesae\currentressource}{1} % le compteur de la sae dans la ressource
\xdef\currentsae{\Alph{cptressourcesae\currentressource}} % La lettre
@ -168,8 +146,9 @@
\expandafter\xdef\csname ressourcesaename\currentressource\currentsae\endcsname{#2} %
}
% ****************************
% Ajout des prerequis
\def\ajoutprerequis#1#2{
\def\ajoutRprerequis#1#2{
\addtocounter{cptressourceprerequis\currentressource}{1} % le compteur du prerequis dans la ressource
\xdef\currentprerequis{\Alph{cptressourceprerequis\currentressource}} % La lettre
@ -177,10 +156,10 @@
\expandafter\xdef\csname ressourceprerequisname\currentressource\currentprerequis\endcsname{#2} %
}
% ****************************
% Ajout des mots-clés
\def\ajoutmotscles#1{
\def\ajoutRmotscles#1{
\expandafter\xdef\csname ressourcemotscles\currentressource\endcsname{#1} % descriptif
}

View File

@ -4,31 +4,31 @@
\nouvelleressource{R107}{Fondamentaux de la programmation}
\ajoutheures{41}{30}
\ajoutRheures{41}{30}
%% Les compétences et les ACs
\ajoutcompetence{RT1-Administrer}{\niveauA}
\ajoutRcompetence{RT1-Administrer}{\niveauA}
\ajoutcompetence{RT2-Connecter}{\niveauA}
\ajoutRcompetence{RT2-Connecter}{\niveauA}
\ajoutcompetence{RT3-Programmer}{\niveauA}
\ajoutRcompetence{RT3-Programmer}{\niveauA}
\ajoutac{AC0311}{Utiliser un système informatique et ses outils}
\ajoutac{AC0312}{Lire, exécuter, corriger et modifier un programme}
\ajoutac{AC0313}{Traduire un algorithme, dans un langage et pour un environnement donné}
\ajoutac{AC0316}{S'intégrer dans un environnement propice au développement et au travail collaboratif}
\ajoutRac{AC0311}{Utiliser un système informatique et ses outils}
\ajoutRac{AC0312}{Lire, exécuter, corriger et modifier un programme}
\ajoutRac{AC0313}{Traduire un algorithme, dans un langage et pour un environnement donné}
\ajoutRac{AC0316}{S'intégrer dans un environnement propice au développement et au travail collaboratif}
% Les SAE
\ajoutsae{SAÉ15}{Traiter des données}
\ajoutRsae{SAÉ15}{Traiter des données}
% Les pre-requis
% Le descriptif
\ajoutancrage{Elle fournit les bases conceptuelles et pratiques pour concevoir et
\ajoutRancrage{Elle fournit les bases conceptuelles et pratiques pour concevoir et
spécifier formellement un traitement automatisé de l'information. Ces
bases pourront venir en appui de nombreuses compétences techniques (en
informatique, en réseau, en télécommunication, \ldots) que le
@ -39,7 +39,7 @@ notamment le développement d'outils informatiques à usage interne d'une
de la maintenance des outils logiciels (compétence RT1-Administrer).}
% Contenus
\ajoutcontenudetaille{
\ajoutRcontenudetaille{
En utilisant un langage de programmation, comme par exemple Python, les
contenus suivants seront traités :
\begin{itemize}
@ -75,4 +75,4 @@ L'utilisation de l'anglais est préconisée pour la documentation du code.
}
% Mots-clés
\ajoutmotscles{Algorithmes, langages de programmation, méthodologie de développement, suivi de versions}
\ajoutRmotscles{Algorithmes, langages de programmation, méthodologie de développement, suivi de versions}

View File

@ -4,30 +4,30 @@
\nouvelleressource{R108}{Bases des systèmes d'exploitation}
\ajoutheures{27}{21}
\ajoutRheures{27}{21}
%% Les compétences et les ACs
\ajoutcompetence{RT1-Administrer}{\niveauA}
\ajoutRcompetence{RT1-Administrer}{\niveauA}
\ajoutac{AC0114}{Maîtriser les rôles et les principes fondamentaux des systèmes d'exploitation afin d'interagir avec ceux-ci pour la configuration et administration des réseaux et services fournis}
\ajoutac{AC0116}{Installer un poste client}
\ajoutRac{AC0114}{Maîtriser les rôles et les principes fondamentaux des systèmes d'exploitation afin d'interagir avec ceux-ci pour la configuration et administration des réseaux et services fournis}
\ajoutRac{AC0116}{Installer un poste client}
\ajoutcompetence{RT2-Connecter}{\niveauA}
\ajoutRcompetence{RT2-Connecter}{\niveauA}
\ajoutcompetence{RT3-Programmer}{\niveauA}
\ajoutRcompetence{RT3-Programmer}{\niveauA}
\ajoutac{AC0311}{Utiliser un système informatique et ses outils}
\ajoutac{AC0312}{Lire, exécuter, corriger et modifier un programme}
\ajoutRac{AC0311}{Utiliser un système informatique et ses outils}
\ajoutRac{AC0312}{Lire, exécuter, corriger et modifier un programme}
% Les SAE
\ajoutsae{SAÉ15}{Traiter des données}
\ajoutRsae{SAÉ15}{Traiter des données}
% Les pre-requis
% Le descriptif
\ajoutancrage{Cette ressource traite des bases de l'utilisation d'un poste client et
\ajoutRancrage{Cette ressource traite des bases de l'utilisation d'un poste client et
de son système d'exploitation. Elle est essentielle pour la prise en
main pratique d'un système informatique en abordant notamment la gestion
des données dans un espace de stockage (organisation, recherche, droits)
@ -46,7 +46,7 @@ Elle contribue donc aux apprentissages critiques mentionnés
précédemment.}
% Contenus
\ajoutcontenudetaille{
\ajoutRcontenudetaille{
\begin{itemize}
\item
Systèmes d'exploitations Windows/Linux, Interface-Homme-Machine et
@ -73,4 +73,4 @@ précédemment.}
}
% Mots-clés
\ajoutmotscles{Programmation, arborescence, processus, scripts, variables d'environnement, PIX}
\ajoutRmotscles{Programmation, arborescence, processus, scripts, variables d'environnement, PIX}

View File

@ -164,56 +164,24 @@ for s in liste_exemples:
saes = {"S1" : [], "S2": []}
for s in liste_saes:
print(f"{s.nom}")
nettoie_heure_sae(s)
nettoie_semestre(s)
nettoie_acs(s)
nettoie_ressources(s)
print("ici")
#
# # Remet en forme les pré-requis
# nettoie_prerequis(r)
#
# # Remet en forme le descriptif
# split_description(r)
# nettoie_contenus(r)
#
# # Remet en forme les mots-clés
# # Tri dans le bon semestre
# ressources[r.semestre] += [r]
#
# # complète les codes d'après les numéros
# for sem in ressources:
# for (i, r) in enumerate(ressources[sem]):
# if not r.code:
# if i == 0:
# r.code = "R" + sem[1] + "01"
# elif ressources[sem][i-1].code:
# r.code = "R" + sem[1] + "{:02d}".format(int(ressources[sem][i-1].code[-2:])+1)
#
# # ************************************************************************
# # Affichages divers
# # Le tableau des heures ressources
# for sem in ressources: # parcours des semestres
# # print(f"Semestre {sem}")
# chaine = affiche_bilan_heures(ressources, sem)
#
#
# # Matrice ACS/ressources
# matrices = {}
# les_codes_acs = [code for comp in DATA_ACS for code in DATA_ACS[comp]]
# nbre_acs = len(les_codes_acs)
#
# for sem in ressources:
# # print("Matrice du semestre " + sem)
# (matrices[sem], chaine) = get_matrices_ac_ressource(ressources, sem)
#
# nettoie_description(s) => rien à faire ?
nettoie_livrables_sae(s)
nettoie_mots_cles(s)
# Tri dans le bon semestre
saes[s.semestre] += [s]
# # Export yaml
# WITH_EXPORT = True
# for sem in ressources:
# for r in ressources[sem]:
# output = r.to_yaml()
# if WITH_EXPORT and r.code:
# fichier = "export/{}.yml".format(r.code)
# with open(fichier, "w", encoding="utf8") as fid:
# fid.write(output)
#
for sem in saes:
for s in saes[sem]:
output = s.to_yaml()
if s.code:
fichier = "export/{}.yml".format(s.code.replace("É", "E"))
with open(fichier, "w", encoding="utf8") as fid:
fid.write(output)

View File

@ -13,11 +13,13 @@ 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
r = Ressource(fichieryaml) # lecture du fichier
sem = "S" + str(r.ressource["semestre"])
ressources[sem].append(r)
if file.startswith("R"): # si c'est une ressources
r = Ressource(fichieryaml) # lecture du fichier
sem = "S" + str(r.ressource["semestre"])
ressources[sem].append(r)
r1 = ressources["S1"][0]
r2 = ressources["S1"][1]
@ -35,10 +37,9 @@ print("ici")
# Export latex
for sem in ressources:
for r in ressources[sem]:
if r.ressource["nom"] == "R112":
print("ici")
fichierlatex = REPERTOIRE_LATEX + "/" + "{}.tex".format(r.ressource["code"])
contenu = r.str_to_latex()
contenu = r.to_latex()
with open(fichierlatex, "w", encoding="utf8") as fid:
fid.write(contenu)
print(f"Export de {fichierlatex} ")

View File

@ -4,18 +4,18 @@
\nouvelleressource{#code}{#nom}
\ajoutheures{#heures_formation}{#heures_tp}
\ajoutRheures{#heures_formation}{#heures_tp}
%% Les compétences et les ACs
\ajoutcompetence{RT1-Administrer}{\niveauA}
\ajoutRcompetence{RT1-Administrer}{\niveauA}
#compRT1
\ajoutcompetence{RT2-Connecter}{\niveauA}
\ajoutRcompetence{RT2-Connecter}{\niveauA}
#compRT2
\ajoutcompetence{RT3-Programmer}{\niveauA}
\ajoutRcompetence{RT3-Programmer}{\niveauA}
#compRT3
% Les SAE
@ -25,12 +25,12 @@
#prerequis
% Le descriptif
\ajoutancrage{#contexte}
\ajoutRancrage{#contexte}
% Contenus
\ajoutcontenudetaille{
\ajoutRcontenudetaille{
#contenu
}
% Mots-clés
\ajoutmotscles{#motscles}
\ajoutRmotscles{#motscles}

View File

@ -21,7 +21,7 @@ class Ressource():
except:
Ressource.__LOGGER.warning(f"Pb de chargement de {fichieryaml}")
def str_to_latex(self, modele="pn/modele_ressource.tex"):
def to_latex(self, modele="pn/modele_ressource.tex"):
"""Génère le code latex décrivant la ressource"""
modlatex = get_modele(modele) #"pn/modele_ressource.tex")
@ -30,7 +30,7 @@ class Ressource():
print("ici")
# Préparation des ac
ajoutac = "\\ajoutac{%s}{%s}"
ajoutac = "\\ajoutRac{%s}{%s}"
compRT = []
for accomp in self.ressource["acs"]:
comps = []
@ -41,13 +41,13 @@ class Ressource():
compRT.append("\n".join(comps))
# Préparation des sae
ajoutsaes = "\\ajoutsae{%s}{%s}"
ajoutsaes = "\\ajoutRsae{%s}{%s}"
saesRT = []
for (i, sae) in enumerate(self.ressource["sae"]): # in range(len(self.apprentissages)):
saesRT.append(ajoutsaes % (sae, get_officiel_sae_name_by_code(sae)))
saes = "\n".join(saesRT)
ajoutprerequis = "\\ajoutprerequis{%s}{%s}"
ajoutprerequis = "\\ajoutRprerequis{%s}{%s}"
prerequis = ""
if self.ressource["prerequis"] == "Aucun":
prerequis = ""

View File

@ -375,11 +375,19 @@ def convert_to_markdown(contenu):
def nettoie_contenus_ressource(r):
# suppression des \t
"""Partant du contenu détaillé d'une ressource, la transforme
en markdown en générant les listes à puces"""
contenu = r.contenu.replace(" / ", "/")
contenu = convert_to_markdown(contenu)
r.contenu = contenu
def nettoie_livrables_sae(s):
"""Partant du contenu détaillé d'une ressource, la transforme
en markdown en générant les listes à puces"""
contenu = s.livrables
contenu = convert_to_markdown(contenu)
s.livrables = contenu
class SAEDocx():
def __init__(self, nom, brut):
@ -400,6 +408,26 @@ class SAEDocx():
def charge_ac(self, apprentissages):
self.apprentissages = apprentissages
def to_yaml(self):
"""Exporte la ressource en yaml"""
dico = {"titre": self.nom,
"code": self.code,
"semestre": int(self.semestre[1]),
"heures_encadrees": self.heures_encadrees if self.heures_encadrees else "???",
"tp": self.tp if self.tp else "???",
"projet": self.projet if self.projet else "???",
"description": folded(self.description),
"acs": self.apprentissages,
"ressources": self.ressources,
"livrables": folded(self.livrables),
"motscles": self.mots if self.mots else ""
}
output = ruamel.yaml.dump(dico, Dumper=ruamel.yaml.RoundTripDumper,
allow_unicode=True, width=100)
output = output.replace("\n\n\n", "\n\n")
return output
class ExempleSAEDocx():
def __init__(self, nom, brut):

View File

@ -20,7 +20,9 @@ def get_indice_sans_accent_ni_espace(champ, entetes):
def caracteres_recalcitrants(contenu):
contenu = contenu.replace("", "è").replace("", "'").replace("", "é")
contenu = contenu.replace("", "è").replace(b"\xe2\x80\x99".decode("utf8"), "'").replace("", "é")
contenu = contenu.replace("", "'")
contenu = contenu.replace("", "â").replace(b'a\xcc\x82'.decode("utf8"), "â")
contenu = contenu.replace('\xa0', ' ') # le nbsp
return contenu