Matrice ACs vs ressources

This commit is contained in:
Cléo Baras 2021-03-29 22:11:17 +02:00
parent 83dfc1cb49
commit 5ed495fcf5
3 changed files with 27 additions and 9 deletions

View File

@ -170,9 +170,11 @@ for r in liste_ressources:
# Remet en forme le titre # Remet en forme le titre
if r.code: if r.code:
if supprime_accent_espace(r.nom) != supprime_accent_espace(DATA_RESSOURCES[r.semestre][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] r.nom = DATA_RESSOURCES[r.semestre][r.code]
# Remet en forme les ACs # Remet en forme les ACs
acs = r.apprentissages acs = r.apprentissages
if len(acs) != 3: if len(acs) != 3:
@ -223,12 +225,25 @@ for sem in ressources:
if len(ressem) != nbre_ressources_semestre: if len(ressem) != nbre_ressources_semestre:
__LOGGER.warning(f"Pb => il manque des ressources au {sem}") __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 (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 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 if ac in r.apprentissages[comp]: # si l'ac est prévue dans la ressource
matrices[r.semestre][j][i] = True 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))

View File

@ -16,7 +16,7 @@ S1:
R115: "Gestion de projet" R115: "Gestion de projet"
S2: S2:
R201: "Technologie de l'Internet" R201: "Technologie de l'Internet"
R202: "Administration système" R202: "Administration système et fondamentaux de la virtualisation"
R203: "Bases des services réseaux" R203: "Bases des services réseaux"
R204: "Initiation à la téléphonie d'entreprise" R204: "Initiation à la téléphonie d'entreprise"
R205: "Signaux et Systèmes pour les transmissions" R205: "Signaux et Systèmes pour les transmissions"
@ -25,7 +25,7 @@ S2:
R208: "Analyse et traitement de données structurées" R208: "Analyse et traitement de données structurées"
R209: "Initiation au développement Web" R209: "Initiation au développement Web"
R210: "Développement de l'anglais technique" R210: "Développement de l'anglais technique"
R211: "Expression-Culture-Communication Professionnelles 2" R211: "Expression-Culture-Communication Professionnelles (ECC2)"
R212: "PPP: Formalisation du projet" R212: "PPP: Formalisation du projet"
R213: "Mathématiques des systèmes numériques" R213: "Mathématiques des systèmes numériques"
R214: "Analyse des signaux" R214: "Analyse des signaux"

View File

@ -14,6 +14,7 @@ with open("pn/acs.yml", 'r', encoding="utf8") as fid:
DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader) DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader)
class Ressource(): class Ressource():
"""Classe modélisant les ressources"""
def __init__(self, nom, brute): def __init__(self, nom, brute):
self.nom = nom self.nom = nom
self.brute = brute # les données brutes de la ressource self.brute = brute # les données brutes de la ressource
@ -36,7 +37,9 @@ class Ressource():
def nettoie_heure(champ): 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 try: # champ contenant uniquement un nbre d'heure
volumes = int(champ) volumes = int(champ)
return volumes return volumes
@ -47,8 +50,8 @@ def nettoie_heure(champ):
elif len(volumes) == 2: elif len(volumes) == 2:
volumes = sorted(volumes, reverse=True) volumes = sorted(volumes, reverse=True)
return (int(volumes[0][:-1]), int(volumes[1][:-1])) return (int(volumes[0][:-1]), int(volumes[1][:-1]))
else: #else:
__LOGGER.warning("Heures non détectées") #__LOGGER.warning("Heures non détectées")
def nettoie_code(champ): def nettoie_code(champ):
"""Recherche les codes ressources de la forme RXXX dans champ""" """Recherche les codes ressources de la forme RXXX dans champ"""