From 5ed495fcf5ed96db4e9b69d5894e48ed1d19e093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20Baras?= Date: Mon, 29 Mar 2021 22:11:17 +0200 Subject: [PATCH] Matrice ACs vs ressources --- python/export.py | 23 +++++++++++++++++++---- python/pn/ressources.yml | 4 ++-- python/ressource.py | 9 ++++++--- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/python/export.py b/python/export.py index 948414e..8e93157 100644 --- a/python/export.py +++ b/python/export.py @@ -170,9 +170,11 @@ for r in liste_ressources: # Remet en forme le titre if r.code: if supprime_accent_espace(r.nom) != supprime_accent_espace(DATA_RESSOURCES[r.semestre][r.code]): - __LOGGER.warning(r"Dans {r.nom}, pb dans le nom de la ressource : devient " + DATA_RESSOURCES[r.semestre][r.code]) + __LOGGER.warning(f"Dans \"{r.nom}\", pb dans le nom de la ressource : devient " + DATA_RESSOURCES[r.semestre][r.code]) r.nom = DATA_RESSOURCES[r.semestre][r.code] + + # Remet en forme les ACs acs = r.apprentissages if len(acs) != 3: @@ -223,12 +225,25 @@ for sem in ressources: if len(ressem) != nbre_ressources_semestre: __LOGGER.warning(f"Pb => il manque des ressources au {sem}") - matrices[sem] = [[False]*nbre_ressources_semestre]*nbre_acs + matrices[sem] = [ [False]*nbre_ressources_semestre for i in range(nbre_acs)] + for (i, r) in enumerate(ressem): # pour chaque ressource - for comp in r.apprentissages: # pour chaque comp + for comp in range(len(r.apprentissages)): # pour chaque comp for (j, ac) in enumerate(les_codes_acs): # pour chaque ac if ac in r.apprentissages[comp]: # si l'ac est prévue dans la ressource matrices[r.semestre][j][i] = True -print(matrices["S1"]) + print("Matrice du semestre " + sem) + ligne = "{:20s} | " + "{:4s} | "*nbre_ressources_semestre + valeurs = ("" for i in range(nbre_ressources_semestre+1)) + trait = "-"*len(ligne.format(*valeurs)) + # print(matrices["S1"]) + valeurs = [""] + [r.code if r.code else "????" for r in ressem] + [""]*(nbre_ressources_semestre-len(ressem)) + valeurs = tuple(valeurs) + print(ligne.format(*valeurs), trait, sep="\n") + for (j, ac) in enumerate(les_codes_acs): + valeurs = [ac] + [("X" if matrices[sem][j][i] == True else "") for i in range(nbre_ressources_semestre)] + valeurs = tuple(valeurs) + print(ligne.format(*valeurs)) + diff --git a/python/pn/ressources.yml b/python/pn/ressources.yml index 2b66d85..ba243b6 100644 --- a/python/pn/ressources.yml +++ b/python/pn/ressources.yml @@ -16,7 +16,7 @@ S1: R115: "Gestion de projet" S2: R201: "Technologie de l'Internet" - R202: "Administration système" + R202: "Administration système et fondamentaux de la virtualisation" R203: "Bases des services réseaux" R204: "Initiation à la téléphonie d'entreprise" R205: "Signaux et Systèmes pour les transmissions" @@ -25,7 +25,7 @@ S2: R208: "Analyse et traitement de données structurées" R209: "Initiation au développement Web" R210: "Développement de l'anglais technique" - R211: "Expression-Culture-Communication Professionnelles 2" + R211: "Expression-Culture-Communication Professionnelles (ECC2)" R212: "PPP: Formalisation du projet" R213: "Mathématiques des systèmes numériques" R214: "Analyse des signaux" diff --git a/python/ressource.py b/python/ressource.py index e159a82..073341b 100644 --- a/python/ressource.py +++ b/python/ressource.py @@ -14,6 +14,7 @@ with open("pn/acs.yml", 'r', encoding="utf8") as fid: DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader) class Ressource(): + """Classe modélisant les ressources""" def __init__(self, nom, brute): self.nom = nom self.brute = brute # les données brutes de la ressource @@ -36,7 +37,9 @@ class Ressource(): def nettoie_heure(champ): - """Nettoie le champ (horaire) (de la forme 46h ou 33...) pour n'en extraire que la valeur numérique""" + """Nettoie le champ (horaire) (de la forme 46h ou 33...) pour en extraire la valeur numérique : + le champ peut contenir 2 volumes (heures formation puis heures tp), auquel cas les 2 valeurs sont renvoyées + dans un tuple""" try: # champ contenant uniquement un nbre d'heure volumes = int(champ) return volumes @@ -47,8 +50,8 @@ def nettoie_heure(champ): elif len(volumes) == 2: volumes = sorted(volumes, reverse=True) return (int(volumes[0][:-1]), int(volumes[1][:-1])) - else: - __LOGGER.warning("Heures non détectées") + #else: + #__LOGGER.warning("Heures non détectées") def nettoie_code(champ): """Recherche les codes ressources de la forme RXXX dans champ"""