forked from viennet/Referentiels
Modifie les macros latex en prévision de l'introduction des macros sae
This commit is contained in:
parent
e609824f3c
commit
a2fc801fd2
@ -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
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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}
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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} ")
|
@ -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}
|
||||
|
@ -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 = ""
|
||||
|
@ -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):
|
||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user