forked from viennet/Referentiels
Ajoute l'extraction des apprentissages critiques en se basant sur les noms/codes officiels donnés dans acs.yml
This commit is contained in:
parent
91805de87f
commit
8fad2e9ea1
@ -142,6 +142,22 @@ for r in RESSOURCES:
|
|||||||
if r.code:
|
if r.code:
|
||||||
r.nom = 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:
|
||||||
|
__LOGGER.warning(f"Problème dans le nombre de compétences de {r.nom}")
|
||||||
|
for comp in range(3):
|
||||||
|
donnees = acs[comp] # chaine de caractères listant les ACS
|
||||||
|
# donnees = donnees.replace("\t", "").replace("-", "") # supprime les tabulations
|
||||||
|
acs_avec_code = devine_acs_by_code(donnees)
|
||||||
|
acs_avec_nom = devine_acs_by_nom(donnees)
|
||||||
|
acs_finaux = sorted(list(set(acs_avec_code + acs_avec_nom)))
|
||||||
|
r.apprentissages[comp] = acs_finaux
|
||||||
|
|
||||||
|
# ************************************************************************
|
||||||
|
# Affichages divers
|
||||||
|
|
||||||
|
|
||||||
# Bilan des heures & Calcul somme des heures
|
# Bilan des heures & Calcul somme des heures
|
||||||
ligne = "{:20s} | {:75s} | {:10s} | {:10s} |"
|
ligne = "{:20s} | {:75s} | {:10s} | {:10s} |"
|
||||||
trait = "-"*len(ligne.format("", "", "", ""))
|
trait = "-"*len(ligne.format("", "", "", ""))
|
||||||
|
20
python/pn/acs.yml
Normal file
20
python/pn/acs.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
RT1:
|
||||||
|
AC111: "Maîtriser les lois fondamentales de l'électricité afin d'intervenir sur des équipements de réseaux et télécommunications"
|
||||||
|
AC112: "Comprendre l'architecture des systèmes numériques et les principes du codage de l'information"
|
||||||
|
AC113: "Configurer les fonctions de base du réseau local"
|
||||||
|
AC114: "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"
|
||||||
|
AC115: "Identifier les dysfonctionnements du réseau local"
|
||||||
|
AC116: "Installer un poste client"
|
||||||
|
RT2:
|
||||||
|
AC211: "Mesurer et analyser les signaux"
|
||||||
|
AC212: "Caractériser des systèmes de transmissions élémentaires et découvrir la modélisation mathématique de leur fonctionnement"
|
||||||
|
AC213: "Déployer des supports de transmission"
|
||||||
|
AC214: "Connecter les systèmes de ToIP"
|
||||||
|
AC215: "Communiquer avec un client ou un collaborateur"
|
||||||
|
RT3:
|
||||||
|
AC311: "Utiliser un système informatique et ses outils"
|
||||||
|
AC312: "Lire, exécuter, corriger et modifier un programme"
|
||||||
|
AC313: "Traduire un algorithme, dans un langage et pour un environnement donné"
|
||||||
|
AC314: "Connaître l'architecture et les technologies d'un site Web"
|
||||||
|
AC315: "Choisir les mécanismes de gestion de données adaptés au développement de l'outil"
|
||||||
|
AC316: "S'intégrer dans un environnement propice au développement et au travail collaboratif"
|
@ -6,8 +6,12 @@ import unicodedata
|
|||||||
|
|
||||||
__LOGGER = logging.getLogger(__name__)
|
__LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# Récupère les informations officielles sur les ressources (code/nom)
|
||||||
with open("pn/ressources.yml", 'r', encoding="utf8") as fid:
|
with open("pn/ressources.yml", 'r', encoding="utf8") as fid:
|
||||||
DATA_RESSOURCES = yaml.load(fid.read(), Loader=yaml.Loader)
|
DATA_RESSOURCES = yaml.load(fid.read(), Loader=yaml.Loader)
|
||||||
|
# Récupère les données officielles des ACs
|
||||||
|
with open("pn/acs.yml", 'r', encoding="utf8") as fid:
|
||||||
|
DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader)
|
||||||
|
|
||||||
class Ressource():
|
class Ressource():
|
||||||
def __init__(self, nom, brute):
|
def __init__(self, nom, brute):
|
||||||
@ -66,8 +70,33 @@ def get_code_from_nom(ressource):
|
|||||||
if nom.startswith(nom_data):
|
if nom.startswith(nom_data):
|
||||||
return code
|
return code
|
||||||
|
|
||||||
|
def devine_acs_by_code(champ):
|
||||||
|
"""Recherche les codes ressources de la forme ACXXX ou AC0XXX dans champ ;
|
||||||
|
ramène les codes AC0XXX à 3 chiffres.
|
||||||
|
"""
|
||||||
|
codes3 = re.findall(r"(AC[0-9][0-9][0-9]\D)", champ) # de code à 3 chiffres
|
||||||
|
codes4 = re.findall(r"(AC0[0-9][0-9][0-9])", champ)
|
||||||
|
|
||||||
for sem in DATA_RESSOURCES:
|
codes3 += [ "AC" + c[-3:] for c in codes4] # supprime le 0 des acs (codage AC0111)
|
||||||
for code in DATA_RESSOURCES[sem]:
|
return sorted(list(set(codes3)))
|
||||||
nom_data = supprime_accent_espace(DATA_RESSOURCES[sem][code])
|
|
||||||
print(nom_data)
|
def devine_acs_by_nom(donnees):
|
||||||
|
"""Partant d'une chaine de caractères, détermine les codes des ACS
|
||||||
|
présent dans la donnée, en utilisant les infos officielles de
|
||||||
|
acs.yml"""
|
||||||
|
acs = []
|
||||||
|
donnees_purge = supprime_accent_espace(donnees)
|
||||||
|
|
||||||
|
for comp in DATA_ACS:
|
||||||
|
for code in DATA_ACS[comp]:
|
||||||
|
acs_purge = supprime_accent_espace(DATA_ACS[comp][code])
|
||||||
|
if acs_purge in donnees_purge:
|
||||||
|
acs += [code]
|
||||||
|
return sorted(list(set(acs)))
|
||||||
|
|
||||||
|
if __name__=="__main__":
|
||||||
|
# Eléments de test
|
||||||
|
for sem in DATA_RESSOURCES:
|
||||||
|
for code in DATA_RESSOURCES[sem]:
|
||||||
|
nom_data = supprime_accent_espace(DATA_RESSOURCES[sem][code])
|
||||||
|
print(nom_data)
|
||||||
|
Loading…
Reference in New Issue
Block a user