From 3558278c2f850239ef552c1f81d81a3a0f5b6be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20Baras?= Date: Tue, 30 Mar 2021 12:34:59 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20du=20traitement=20des=20sa=C3=A9=20ment?= =?UTF-8?q?ionn=C3=A9es=20dans=20les=20ressources?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/export.py | 2 +- python/officiel.py | 11 +++++++++-- python/pn/saes.yml | 18 +++++++++--------- python/ressource.py | 33 +++++++++++++++++++++------------ 4 files changed, 40 insertions(+), 24 deletions(-) diff --git a/python/export.py b/python/export.py index 91af416..9c5b8cf 100644 --- a/python/export.py +++ b/python/export.py @@ -198,5 +198,5 @@ for sem in ressources: for sem in ressources: for r in ressources[sem]: fichieryaml = "export/{}.yml".format(r.code) - fichierlatex = "latex/{}.txt".format(r.code) + fichierlatex = "latex/{}.tex".format(r.code) convert_ressource_yml_to_latex(fichieryaml, fichierlatex, "pn/modele_ressource.tex") \ No newline at end of file diff --git a/python/officiel.py b/python/officiel.py index 2b44fe7..11b6bdc 100644 --- a/python/officiel.py +++ b/python/officiel.py @@ -95,8 +95,15 @@ def affiche_bilan_heures(ressources, sem): def get_officiel_ressource_name_by_code(code): - """Pour un code valide, fournit le nom officiel de la ressource (sans conaissance du semestre)""" + """Pour un code valide, fournit le nom officiel de la ressource (sans connaissance du semestre)""" for sem in DATA_RESSOURCES: for rcode in DATA_RESSOURCES[sem]: if rcode==code: - return DATA_RESSOURCES[sem][code] \ No newline at end of file + return DATA_RESSOURCES[sem][code] + +def get_officiel_sae_name_by_code(code): + """Pour un code valide, fournit le nom officiel de la sae (sans connaissance du semestre)""" + for sem in DATA_SAES: + for rcode in DATA_SAES[sem]: + if rcode==code: + return DATA_SAES[sem][code] \ No newline at end of file diff --git a/python/pn/saes.yml b/python/pn/saes.yml index 6c3f2d8..e3db52e 100644 --- a/python/pn/saes.yml +++ b/python/pn/saes.yml @@ -1,12 +1,12 @@ S1: - SAE11: "Réseaux / cybersécurité / hygiène informatique" - SAE12: "Réseau d'entreprise ou personnel" - SAE13: "Supports de transmission / calculs" - SAE14: "Se présenter sur Internet" - SAE15: "Traiter des données" + SAÉ11: "Réseaux / cybersécurité / hygiène informatique" + SAÉ12: "Réseau d'entreprise ou personnel" + SAÉ13: "Supports de transmission / calculs" + SAÉ14: "Se présenter sur Internet" + SAÉ15: "Traiter des données" S2: - SAE21: "Construction d’un réseau informatique pour une petite structure" - SAE22: "Mesures et caractérisation d’un signal ou d’un système" - SAE23: "Mise en place d'une solution informatique pour l’entreprise" - SAE24: "Projet intégratif de S2" + SAÉ21: "Construction d’un réseau informatique pour une petite structure" + SAÉ22: "Mesures et caractérisation d’un signal ou d’un système" + SAÉ23: "Mise en place d'une solution informatique pour l’entreprise" + SAÉ24: "Projet intégratif de S2" diff --git a/python/ressource.py b/python/ressource.py index 28d69d7..83052eb 100644 --- a/python/ressource.py +++ b/python/ressource.py @@ -49,7 +49,7 @@ class Ressource(): "heures_formation": self.str_heures_formations(), "heures_tp": self.str_heures_tp(), "acs": self.apprentissages, - "sae": "", + "sae": self.sae, "prerequis": self.prerequis, "contexte": folded(self.contexte), "contenu": folded(self.contenu), @@ -160,8 +160,11 @@ def nettoie_acs(r): def nettoie_sae(r): """Nettoie les sae en détectant les codes""" - print(r.sae) - + SAE_avec_code = devine_sae_by_code(r.sae) + liste = [l.rstrip() for l in SAE_avec_code] + r.sae = liste + if not r.sae: + __LOGGER.warning(f"nettoie_sae: dans {r.nom} pas de SAE (:") def nettoie_prerequis(r): """Nettoie les prérequis (ressource) en les remplaçant par leur code de ressource""" @@ -215,6 +218,14 @@ def devine_ressources_by_nom(donnees): codes += [code] return sorted(list(set(codes))) +def devine_sae_by_code(donnees): + """Partant d'une chaine de caractères, détermine les codes des SAE""" + codes = re.findall(r"(SAE\d\d)\D", donnees) + codes += re.findall(r"(SAÉ\d\d)\D", donnees)# de code à 3 chiffres + for (i, code) in enumerate(codes): + codes[i] = codes[i].replace("E", "É") + return sorted(list(set(codes))) + def split_description(r): """Découpe le champ description en un contexte+un contenu ; si pas possible """ champs = r.description.split("\n") @@ -314,14 +325,12 @@ def convert_ressource_yml_to_latex(fichieryaml, fichierlatex, modele): comps.append( ajoutac % (accomp[no_ac], DATA_ACS["RT"+str(i+1)][accomp[no_ac]]) ) compRT.append("\n".join(comps)) - # ajoutsaes = "\\ajoutsae{%s}{%s}" - # compRT = [] - # for i in range(len(self.apprentissages)): - # comps = [] - # for ac in self.apprentissages[i]: - # code = self.apprentissages[i] - # comps.append(ajoutac % (code, DATA_ACS["RT" + str(i + 1)][code])) - # compRT.append("\n".join(comps)) + # Préparation des sae + ajoutsaes = "\\ajoutsae{%s}{%s}" + saesRT = [] + for (i, sae) in enumerate(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}" prerequis = "" @@ -341,7 +350,7 @@ def convert_ressource_yml_to_latex(fichieryaml, fichierlatex, modele): compRT1=compRT[0], compRT2=compRT[1], compRT3=compRT[2], - saes="", + saes=saes, prerequis=prerequis, contexte=ressource["contexte"], contenu=ressource["contenu"],