From 4fb8649071a263ec4142297c72f328d32d6ee9f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20Baras?= Date: Mon, 12 Apr 2021 11:32:09 +0200 Subject: [PATCH] =?UTF-8?q?Ajoute=20pr=C3=A9-requis=20de=20lyc=C3=A9e=20+?= =?UTF-8?q?=20nettoyage=20du=20contexte=20(avec=20d=C3=A9tection=20de=20li?= =?UTF-8?q?stes=20=C3=A0=20puces)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- latex/macros_formations.sty | 7 ++++++ latex/modeles/tableau.tex | 27 +++++++++++++---------- latex/pn_formation.tex | 2 ++ latex/ressources/R110.tex | 13 ++++++++--- latex/ressources/R112.tex | 17 +++++++-------- latex/ressources/R115.tex | 18 +++++++-------- latex/ressources/R201.tex | 22 +++++++++---------- latex/ressources/R202.tex | 22 +++++++++---------- latex/ressources/R203.tex | 40 ++++++++++++++++++---------------- latex/ressources/R204.tex | 2 +- latex/ressources/R207.tex | 18 +++++++-------- latex/ressources/R208.tex | 39 ++++++++++++++++----------------- python/export_yaml_to_latex.py | 6 +++-- python/officiel.py | 2 ++ python/ressource.py | 22 ++++++++++++------- python/ressourcedocx.py | 34 +++++++++++++++++++---------- 16 files changed, 166 insertions(+), 125 deletions(-) diff --git a/latex/macros_formations.sty b/latex/macros_formations.sty index 2b932bf..ec962fc 100644 --- a/latex/macros_formations.sty +++ b/latex/macros_formations.sty @@ -150,6 +150,13 @@ % **************************** % Ajout des prerequis +%% pré-requis autre qu'une ressource (ex: A2-B1 en anglais) +\def\ajoutRprerequislycee#1{ + \begingroup\let\+\relax + \expandafter\gdef\csname Rprerequislycee\currentRressource\endcsname{#1} % descriptif + \endgroup +} + \def\ajoutRprerequis#1#2{ \addtocounter{cptRprerequis\currentRressource}{1} % le compteur du prerequis dans la ressource \xdef\currentprerequis{\Alph{cptRprerequis\currentRressource}} % La lettre diff --git a/latex/modeles/tableau.tex b/latex/modeles/tableau.tex index aece035..378349a 100644 --- a/latex/modeles/tableau.tex +++ b/latex/modeles/tableau.tex @@ -67,18 +67,23 @@ % Liste des pré-requis \newcommand*{\listePrerequis}[1]{% \xdef\CODE{#1} % le code de la ressource sous la forme AA - \ifthenelse{\equal{\value{cptRprerequis\CODE}}{0}}{ % Si pas de prérequis -Aucun -}{ % Si des pré-requis -\begin{tabular}[t]{@{}T@{}}% + \ifcsdef{Rprerequislycee\CODE}{ % si pre-requis simple + {\csname Rprerequislycee\CODE\endcsname} + } + { + \ifthenelse{\equal{\value{cptRprerequis\CODE}}{0}}{ % Si pas de prérequis + Aucun + }{ % Si des pré-requis + \begin{tabular}[t]{@{}T@{}}% - \forLoop{1}{\value{cptRprerequis\CODE}}{noligne}{ - \xdef\rescode{\csname Rprerequiscode\CODE\Alph{noligne}\endcsname} - \hyperlink{res:\rescode}{\textcolor{ressourceC}{\rescode}} {\csname Rprerequisname\CODE\Alph{noligne}\endcsname} - \tabularnewline % - } -\end{tabular}% -} + \forLoop{1}{\value{cptRprerequis\CODE}}{noligne}{ + \xdef\rescode{\csname Rprerequiscode\CODE\Alph{noligne}\endcsname} + \hyperlink{res:\rescode}{\textcolor{ressourceC}{\rescode}} {\csname Rprerequisname\CODE\Alph{noligne}\endcsname} + \tabularnewline % + } + \end{tabular}% + } + } }% diff --git a/latex/pn_formation.tex b/latex/pn_formation.tex index 13f3ccc..f5652ba 100644 --- a/latex/pn_formation.tex +++ b/latex/pn_formation.tex @@ -153,6 +153,8 @@ Document de travail formulant les propositions de l'ACD R\&T pour l'ensemble de \end{center} \clearpage +\RprerequislyceeAJ + % ------ TABLE DES MATIERES (en version draft seulement) %\ifdef{\draft}{ %\section*{Table des matières} diff --git a/latex/ressources/R110.tex b/latex/ressources/R110.tex index 6e9ce83..b4854ec 100644 --- a/latex/ressources/R110.tex +++ b/latex/ressources/R110.tex @@ -32,14 +32,21 @@ \ajoutRsae{SAÉ15}{Traiter des données} % Les pre-requis - +\ajoutRprerequislycee{A2-B1} % Le descriptif -\ajoutRancrage{} +\ajoutRancrage{Cette ressource apporte le socle de connaissances langagières pour les +compétences de cœur de métier \og Administrer les réseaux et +l'Internet\fg{} (RT1) et \og Connecter les entreprises et les +usagers\fg{} (RT2). Elle contribue aussi à la compétence \og Créer des +outils et applications informatiques pour les R\&T\fg{} (RT3) à travers +des mises en situations, jeux de rôle, dialogues qui permettent la prise +de parole en continu et en interaction, en développant les compétences +de compréhension dans un contexte professionnel technique.} % Contenus \ajoutRcontenudetaille{ -Objectifs visés +\vspace{-5pt} \begin{itemize} \item Développer sa confiance en soi diff --git a/latex/ressources/R112.tex b/latex/ressources/R112.tex index d7d5f11..eddb7c2 100644 --- a/latex/ressources/R112.tex +++ b/latex/ressources/R112.tex @@ -31,11 +31,8 @@ % Le descriptif -\ajoutRancrage{} - -% Contenus -\ajoutRcontenudetaille{ -\vspace{-5pt} +\ajoutRancrage{Le Projet Personnel et Professionnel des semestres 1 et 2 de la première +année de B.U.T. permet à l'étudiant : \begin{itemize} \item s'approprier son champ d'activité ; @@ -59,10 +56,12 @@ d'avoir une compréhension exhaustive du référentiel de compétences de la formation et des éléments le structurant (composantes essentielles, niveaux, apprentissages - critiques, famille de situations) - ; -\end{itemize} -Activités notamment proposées dans cette ressource : + critiques, famille de situations). +\end{itemize}} + +% Contenus +\ajoutRcontenudetaille{ +Les activités pouvant être proposées dans cette ressource sont : \begin{itemize} \item rencontres d'entrepreneurs, de chefs de service, de techniciens et diff --git a/latex/ressources/R115.tex b/latex/ressources/R115.tex index a4b28f5..fc3a5e5 100644 --- a/latex/ressources/R115.tex +++ b/latex/ressources/R115.tex @@ -49,34 +49,34 @@ Dans le cadre de cette ressource transversale, l'étudiant devra : Utilisation avancée du courriel : création d'une adresse générique, utilisation du \textabbrv{CC} et du \textabbrv{CCi}. \item - Utilisation d'outils collaboratifs adaptés (par ex : Mattermost, + Utilisation d'outils collaboratifs adaptés (par exemple Mattermost, Slack, MSTeams, Google Drive, - OnlyOffice) + OnlyOffice). \end{itemize} \item Organiser son travail et celui de l'équipe à partir d'outils de - planification (Gantt, \textabbrv{PERT}) + planification (Gantt, \textabbrv{PERT}). \item Prendre sa place dans une équipe en connaissant les différents rôles - d'une équipe projet + d'une équipe projet. \item Conceptualiser les étapes des tâches à réaliser à l'aide d'outils adaptés (cartes mentales, infographies, - etc.) + etc.). \item Prendre conscience des délais et échéances dans un travail en mode - projet + projet. \item Savoir s'adapter à des profils professionnels différents (manager, collaborateur, client) qui interviennent - dans un projet + dans un projet. \item Apprendre à faire un bilan régulier sur l'avancée d'un projet : points - bloquants, solutions apportées + bloquants, solutions apportées. \item Appliquer la critique constructive dans l'intérêt du projet \item - Organiser des réunions de projet + Organiser des réunions de projet. \item Présenter un projet selon ses spécificités et le public visé. \end{itemize} diff --git a/latex/ressources/R201.tex b/latex/ressources/R201.tex index 2ebbdfa..321ce37 100644 --- a/latex/ressources/R201.tex +++ b/latex/ressources/R201.tex @@ -37,16 +37,16 @@ % Le descriptif \ajoutRancrage{Cette ressource apporte le socle de connaissances et savoirs-faire pour -les compétences de cœur de métier \og Administrer les réseaux et -l'Internet\fg{} (RT1) et \og Connecter les entreprises et les -usagers\fg{} (RT2). Elle vise à fournir à l'étudiant les connaissances -et les compétences indispensables pour pouvoir concevoir, déployer et -maintenir les infrastructures réseaux grande distance (Internet), plus -précisément l'adressage, le routage et le transport de paquets. Une -première approche du filtrage (sécurité) y est aussi abordée.\\ -Elle contribue aussi à la compétence \og Créer des outils et -applications informatiques pour les R\&T\fg{} (RT3) à travers la -découverte du poste client et de son environnement logiciel.\\ +les compétences de cœur de métier ``Administrer les réseaux et +l'Internet'' (RT1) et ``Connecter les entreprises et les usagers'' +(RT2). Elle vise à fournir à l'étudiant les connaissances et les +compétences indispensables pour pouvoir concevoir, déployer et maintenir +les infrastructures réseaux grande distance (Internet), plus précisément +l'adressage, le routage et le transport de paquets. Une première +approche du filtrage (sécurité) y est aussi abordée.\\ +Elle contribue aussi à la compétence ``Créer des outils et applications +informatiques pour les R\&T'' (RT3) à travers la découverte du poste +client et de son environnement logiciel.\\ On introduira des notions de sécurité informatique (les ressources associées aux recommandations de l'\textabbrv{ANSSI}, CyberEdu, CyberMalveillance pourront servir de support)} @@ -69,4 +69,4 @@ pourront servir de support)} } % Mots-clés -\ajoutRmotscles{Plan d'adressage, routage état de lien, stratégies de filtrage, \textabbrv{CIDR}, \textabbrv{VLSM}, agrégation de routes, \textabbrv{IP}v6, \textabbrv{NDP}.} +\ajoutRmotscles{Plan d'adressage, Routage état de lien, Stratégies de filtrage, \textabbrv{CIDR}, \textabbrv{VLSM}, Agrégation de routes, \textabbrv{IP}v6, \textabbrv{NDP}.} diff --git a/latex/ressources/R202.tex b/latex/ressources/R202.tex index 18ee9c5..086101b 100644 --- a/latex/ressources/R202.tex +++ b/latex/ressources/R202.tex @@ -38,32 +38,32 @@ % Le descriptif \ajoutRancrage{Cette ressource apporte le socle de connaissances et savoir-faire pour -les compétences de cœur de métier \og Administrer les réseaux et -l'Internet\fg{} (RT1). Elle donne aux étudiants les compétences pour +les compétences de cœur de métier ``Administrer les réseaux et +l'Internet'' (RT1). Elle donne aux étudiants les compétences pour effectuer des tâches simples d'administration du système d'information de l'entreprise (processus, utilisateurs, automatisation) et pour utiliser des solutions de virtualisation, de conteneurisation.\\ -Elle contribue aussi à la compétence \og Créer des outils et -applications informatiques pour les R\&T\fg{} (RT3) à travers la -découverte du poste client et de son environnement logiciel.} +Elle contribue aussi à la compétence ``Créer des outils et applications +informatiques pour les R\&T'' (RT3) à travers la découverte du poste +client et de son environnement logiciel.} % Contenus \ajoutRcontenudetaille{ \vspace{-5pt} \begin{itemize} \item - Gestion des systèmes de fichiers (volumes, droits, types de fichiers) + Gestion des systèmes de fichiers (volumes, droits, types de fichiers). \item - Gestion de processus et services + Gestion de processus et services. \item - Gestion de ressources utilisateurs (comptes, quotas) + Gestion de ressources utilisateurs (comptes, quotas). \item - Scripts pour l'automatisation de séquences de commandes + Scripts pour l'automatisation de séquences de commandes. \item - Utilisation de fichiers de traces (logs) + Utilisation de fichiers de traces (logs). \item Initiation et mise en oeuvre d'infrastructures de virtualisation et/ou - de conteneurisation + de conteneurisation. \end{itemize} } diff --git a/latex/ressources/R203.tex b/latex/ressources/R203.tex index d773f40..e745606 100644 --- a/latex/ressources/R203.tex +++ b/latex/ressources/R203.tex @@ -39,12 +39,12 @@ \ajoutRancrage{Cette ressource apporte les connaissances et compétences de base nécessaires à la mise en oeuvre des services réseaux dans un système d'information\\ -Les services abordés sont des services essentiels à tout SI tels que le -\textabbrv{DNS}, le \textabbrv{DHCP} ou le transfert de fichiers pour les configurations -d'appareils réseaux pour n'en citer que quelques-uns. Cette découverte -des premiers protocoles applicatifs permettra également de sensibiliser -les étudiants aux risques de sécurité liés à la configuration de ces -services\\ +Les services abordés sont des services essentiels à tout système +d'information tels que le \textabbrv{DNS}, le \textabbrv{DHCP} ou le transfert de fichiers pour +les configurations d'appareils réseaux pour n'en citer que quelques-uns. +Cette découverte des premiers protocoles applicatifs permettra également +de sensibiliser les étudiants aux risques de sécurité liés à la +configuration de ces services\\ On introduira des notions de sécurité informatique (les ressources associées aux recommandations de l'\textabbrv{ANSSI}, CyberEdu, CyberMalveillance pourront servir de support).} @@ -54,23 +54,25 @@ pourront servir de support).} \vspace{-5pt} \begin{itemize} \item - Rappels sur les protocoles de transport (\textabbrv{TCP}, \textabbrv{UDP}) + Rappels sur les protocoles de transport (\textabbrv{TCP}, \textabbrv{UDP}). \item - Utilisation de ssh pour l'accès distant + Utilisation de ssh pour l'accès distant. \item Principe, installation, configuration et tests des services : -\item - \textabbrv{DHCP} -\item - \textabbrv{DNS} (fonctions de base) -\item - \textabbrv{HTTP} -\item - \textabbrv{TFTP}, \textabbrv{FTP} -\item - \textabbrv{NTP} + \begin{itemize} + \item + \textabbrv{DHCP}; + \item + \textabbrv{DNS} (fonctions de base); + \item + \textabbrv{HTTP}; + \item + \textabbrv{TFTP}, \textabbrv{FTP}; + \item + \textabbrv{NTP}. + \end{itemize} \end{itemize} } % Mots-clés -\ajoutRmotscles{Protocoles et ports applicatifs, services, systèmes d'exploitation.} +\ajoutRmotscles{Protocoles et ports applicatifs, Services, Systèmes d'exploitation.} diff --git a/latex/ressources/R204.tex b/latex/ressources/R204.tex index 41f1c46..bd5d95f 100644 --- a/latex/ressources/R204.tex +++ b/latex/ressources/R204.tex @@ -72,4 +72,4 @@ informatique. } % Mots-clés -\ajoutRmotscles{\textabbrv{IPBX}, \textabbrv{PABX}, \textabbrv{TDM}/\textabbrv{IP}, Postes et services téléphoniques, Visiophonie, Plan de numérotation, Réseaux téléphoniques publics.} +\ajoutRmotscles{\textabbrv{IPBX}, \textabbrv{PABX}, \textabbrv{TDM}/\textabbrv{IP}, postes et services téléphoniques, visiophonie, plan de numérotation, réseaux téléphoniques publics.} diff --git a/latex/ressources/R207.tex b/latex/ressources/R207.tex index 92f6ed3..616845f 100644 --- a/latex/ressources/R207.tex +++ b/latex/ressources/R207.tex @@ -40,15 +40,15 @@ % Le descriptif \ajoutRancrage{Le professionnel R\&T traite un grand nombre de données (par ex: l'annuaire des utilisateurs du réseau ou l'état des équipements -informatiques). Elles peuvent servir à configurer et à administrer les +informatiques). Elles peuvent servir à configurer ou à administrer les services réseau d'une entreprise (RT1) ou à alimenter les pages d'un site Web (RT3). Il est donc amené à stocker, organiser, gérer, protéger -des données provenant de différentes sources (thématiques du PIX, -cf.~\url{https://pix.fr/competences}), mais aussi à les traiter en +des données provenant de différentes sources (thématiques du +\href{https://pix.fr/competences}{PIX}), mais aussi à les traiter en développant différents outils informatiques pour ses besoins personnels ou pour son équipe (RT3). Plus largement, il contribue activement à -l'exploitation et à la maintenance du système d'information de l' -entreprise.\\ +l'exploitation et à la maintenance du système d'information de +l'entreprise.\\ Cette ressource introduit les éléments fondamentaux des systèmes de gestion de base de données. Elle présente différentes alternatives technologiques pour le stockage et le codage de l'information, en @@ -63,12 +63,12 @@ langages et des scripts spécifiques qui seront introduits.} Stockage et accès aux données : \begin{itemize} \item - système de gestion de données (relationnel/non relationnel); + Système de gestion de données (relationnel/non relationnel); \item - structuration des données: fichiers (\textabbrv{CSV}, \textabbrv{JSON}), exemples de sources - ouvertes (open data), web scraping; + Structuration des données: fichiers (\textabbrv{CSV}, \textabbrv{JSON}), exemples de sources + ouvertes (\emph{open data}), \emph{web scraping}; \item - sensibilisation à la réglementation française et internationale + Sensibilisation à la réglementation française et internationale (\textabbrv{CNIL}, \textabbrv{RGPD}). \end{itemize} \item diff --git a/latex/ressources/R208.tex b/latex/ressources/R208.tex index 303699d..f3bad49 100644 --- a/latex/ressources/R208.tex +++ b/latex/ressources/R208.tex @@ -37,15 +37,14 @@ % Le descriptif \ajoutRancrage{Le professionnel R\&T est amené à développer différents outils -informatiques à usage personnel ou interne à l'équipe (compétence -RT3-Programmer). Ces outils peuvent traiter des données complexes, viser -des fonctionnalités multiples et être développé en équipe : il est alors -nécessaire - pour le professionnel R\&T - de structurer son travail, -tant sur les variables manipulant les données, les fichiers qui les -sauvegardent ou les restaurent, que sur l'organisation (arborescence) de -son projet. La ressource introduit ses éléments structurels en -contribuant à l'acquisition des apprentissages critiques mentionnés -précédemment.} +informatiques à usage personnel ou interne à l'équipe (RT3). Ces outils +peuvent traiter des données complexes, viser des fonctionnalités +multiples et être développé en équipe : il est alors nécessaire - pour +le professionnel R\&T - de structurer son travail, tant sur les +variables manipulant les données, les fichiers qui les sauvegardent ou +les restaurent, que sur l'organisation (arborescence) de son projet. La +ressource introduit ses éléments structurels en contribuant à +l'acquisition des apprentissages critiques mentionnés précédemment.} % Contenus \ajoutRcontenudetaille{ @@ -53,35 +52,35 @@ précédemment.} \begin{itemize} \item Structure d'un programme : arborescence de fichiers, modules et - packages + packages. \item - Contexte d'exécution : programme principal vs script + Contexte d'exécution : programme principal \emph{vs} script. \item Structure complexe de données : \begin{itemize} \item - listes \textabbrv{2D}, tableaux associatifs/dictionnaires + Listes \textabbrv{2D}, tableaux associatifs/dictionnaires; \item - notion de classes (instance, attributs, méthodes) + Notion de classes (instance, attributs, méthodes). \end{itemize} \item Manipulation de fichiers avancée : \begin{itemize} \item - fichiers structurés (\textabbrv{XML}, \textabbrv{CSV}, \textabbrv{JSON}, YAML) + Fichiers structurés (\textabbrv{XML}, \textabbrv{CSV}, \textabbrv{JSON}, YAML); \item - gestion de l'arborescence par le code + Gestion de l'arborescence par le code; \item - lecture/écriture de fichiers structurés + Lecture/écriture de fichiers structurés; \item - notion de sérialisation + Notion de sérialisation; \item - notion de persistance des données + Notion de persistance des données. \end{itemize} \item - Initiation aux expressions régulières + Initiation aux expressions régulières. \item - Introduction au traitement des erreurs + Introduction au traitement des erreurs. \end{itemize} L'utilisation de l'anglais est préconisée dans la documentation du code. } diff --git a/python/export_yaml_to_latex.py b/python/export_yaml_to_latex.py index 89433e8..7e876ce 100644 --- a/python/export_yaml_to_latex.py +++ b/python/export_yaml_to_latex.py @@ -1,6 +1,8 @@ import os +import glob import argparse import logging +import sys from config import Config @@ -36,8 +38,8 @@ REPERTOIRE_SYNTHESE = Config.ROOT + "/latex/synthese" # Chargement des ressources : depuis les versions définitives du répertoire yaml d'abord, # puis dans python/export si manquantes -fichiers_definitifs = os.listdir(REPERTOIRE_RESSOURCES_DEFINITIVES) -fichiers_temp = os.listdir(REPERTOIRE_TEMP) +fichiers_definitifs = [ os.path.split(x)[1] for x in glob.glob(REPERTOIRE_RESSOURCES_DEFINITIVES+'/*.yml') ] +fichiers_temp = [ os.path.split(x)[1] for x in glob.glob(REPERTOIRE_TEMP+'/*.yml') ] fichiers_ressources = [REPERTOIRE_RESSOURCES_DEFINITIVES + "/" + f for f in fichiers_definitifs] for f in fichiers_temp: if f not in fichiers_definitifs and f.startswith("R"): diff --git a/python/officiel.py b/python/officiel.py index a23b204..e5645fb 100644 --- a/python/officiel.py +++ b/python/officiel.py @@ -21,6 +21,8 @@ with open(Config.ROOT+"/yaml/competences/RT123.yml", 'r', encoding="utf8") as fi with open(Config.ROOT+"/yaml/abbreviations.yml", "r", encoding="utf8") as fid: DATA_ABBREVIATIONS = yaml.load(fid.read(), Loader=yaml.Loader) +AUCUN_PREREQUIS = "Aucun" + def supprime_accent_espace(chaine): """Met en minuscule, supprime les accents, les ponctuations et les espaces""" purge = chaine.lower().replace("'", "").replace("’", "") diff --git a/python/ressource.py b/python/ressource.py index 91c3976..1a7e134 100644 --- a/python/ressource.py +++ b/python/ressource.py @@ -70,17 +70,23 @@ class Ressource: ) # , code_latex)) saes = "\n".join(saesRT) - ajoutprerequis = "\\ajoutRprerequis{%s}{%s}" + if self.ressource["code"] == "R110": + print("ici") prerequis = "" - if self.ressource["prerequis"] == "Aucun": + if self.ressource["prerequis"] == AUCUN_PREREQUIS: prerequis = "" else: - liste = [] - for (no, mod) in enumerate(self.ressource["prerequis"]): - liste.append( - ajoutprerequis % (mod, get_officiel_ressource_name_by_code(mod)) - ) - prerequis = "\n".join(liste) + # est-une liste de ressources + if not self.ressource["prerequis"][0].startswith("R"): + prerequis = "\\ajoutRprerequislycee{%s}" % (self.ressource["prerequis"]) + else: + ajoutprerequis = "\\ajoutRprerequis{%s}{%s}" + liste = [] + for (no, mod) in enumerate(self.ressource["prerequis"]): + liste.append( + ajoutprerequis % (mod, get_officiel_ressource_name_by_code(mod)) + ) + prerequis = "\n".join(liste) # préparation du contexte contexte = self.ressource["contexte"] diff --git a/python/ressourcedocx.py b/python/ressourcedocx.py index d2f3728..06f4d7b 100644 --- a/python/ressourcedocx.py +++ b/python/ressourcedocx.py @@ -5,7 +5,6 @@ from officiel import supprime_accent_espace, get_code_from_nom_using_dict import ruamel.yaml from ruamel.yaml.scalarstring import FoldedScalarString as folded -from tools import caracteres_recalcitrants __LOGGER = logging.getLogger(__name__) @@ -15,6 +14,7 @@ class Docx(): def __init__(self, nom, brut): self.nom = nom + self.code = None # chargé ultérieurement self.brut = brut # les données brutes de la ressource/saé self.semestre = None # le semestre de la ressource/saé (chargé ultérieurement) self.apprentissages = None # les acs (chargés ultérieurement) @@ -129,8 +129,6 @@ class Docx(): avec_marqueur = False last_marqueur = 0 for (i, ligne) in enumerate(lignes): - if "d’API" in ligne: - print("ici") ligne = ligne.replace("\t", " "*2) if " *" in ligne and avec_marqueur == False: avec_marqueur = True @@ -207,10 +205,12 @@ class RessourceDocx(Docx): def nettoie_prerequis(self): """Nettoie les prérequis""" - if self.prerequis: - self.prerequis = nettoie_liste_ressources(self.prerequis) - if not self.prerequis: - self.prerequis = "Aucun" + if not self.prerequis or AUCUN_PREREQUIS.lower() in self.prerequis.lower(): + self.prerequis = AUCUN_PREREQUIS + else: + ressources = nettoie_liste_ressources(self.prerequis) + if ressources: + self.prerequis = ressources def nettoie_sae(self): """Nettoie le champ SAe d'une ressource en détectant les codes""" @@ -224,7 +224,7 @@ class RessourceDocx(Docx): """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""" - + volumes = None if self.heures_encadrees: # si les heures encadrées sont renseignées volumes = nettoie_champ_heure(self.heures_encadrees) if self.tp: @@ -252,8 +252,13 @@ class RessourceDocx(Docx): indicec = 0 contexte = [] - if True in [ligne.startswith("Contenus") for ligne in champs]: # la ligne commençant par Contenus - indicec = [ligne.startswith("Contenus") for ligne in champs].index(True) + marqueur = False + identifiants = ["Contenus", "Objectifs visés"] # Identifiant marquant la ligne des contenus + for id in identifiants: + presence = [ligne.startswith(id) for ligne in champs] + if True in presence and not marqueur: # la ligne commençant par l'identifiant + indicec = presence.index(True) + marqueur = True if True in [ligne.startswith("Contexte et ") for ligne in champs]: contexte = champs[indicea + 1:indicec] else: @@ -276,6 +281,12 @@ class RessourceDocx(Docx): contenu = self.contenu.replace(" / ", "/") self.contenu = convert_to_markdown(contenu) + def nettoie_contexte(self): + """Partant du contexte détaillé d'une ressource, la transforme + en markdown en générant les listes à puces""" + contexte = self.contexte.replace(" / ", "/") + self.contexte = convert_to_markdown(contexte) + def nettoie_champ(self): """Lance le nettoyage des champs""" self.nettoie_code() @@ -291,6 +302,7 @@ class RessourceDocx(Docx): # Remet en forme le descriptif self.split_description() + self.nettoie_contexte() self.nettoie_contenu() print(f"{self.code} {self.semestre}") @@ -543,8 +555,6 @@ class SAEDocx(Docx): def nettoie_ressources(self): """Nettoie le champ ressource d'une sae en détectant les codes""" - if "24" in self.code: - print("ici") self.ressources = nettoie_liste_ressources(self.ressources) if not self.ressources: SAEDocx.__LOGGER.warning(f"nettoie_ressources: dans {self.nom} pas de ressources (:")