From 2c230dd97730f79de0dfb81c121f55423a764eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20Baras?= Date: Fri, 2 Apr 2021 10:46:42 +0200 Subject: [PATCH] Correction de coquilles diverses --- latex/modeles/tableau_ressource.tex | 2 +- latex/pn_formation.tex | 6 +++ latex/referentiel_BUT1.tex | 16 +++++- latex/ressources/R107.tex | 47 +++++++++++++---- latex/ressources/R108.tex | 34 +++++++++++-- python/export_docx_to_yaml.py | 2 +- python/ressource.py | 79 ++++++++++++++--------------- 7 files changed, 127 insertions(+), 59 deletions(-) diff --git a/latex/modeles/tableau_ressource.tex b/latex/modeles/tableau_ressource.tex index 57d9b73..d0272fe 100644 --- a/latex/modeles/tableau_ressource.tex +++ b/latex/modeles/tableau_ressource.tex @@ -60,7 +60,7 @@ Aucun \xdef\CODE{#1} % le code de la ressource sous la forme AA \begin{tabular}[t]{@{}T@{}} - {\bfseries Ancrage et contexte professionnel :} \\ + % {\bfseries Ancrage et contexte professionnel :} \\ \csname ressourceancrage\CODE\endcsname \\ {\bfseries Contenus :} \\ \csname ressourcecontenudetaille\CODE\endcsname diff --git a/latex/pn_formation.tex b/latex/pn_formation.tex index f089e24..6f57c91 100644 --- a/latex/pn_formation.tex +++ b/latex/pn_formation.tex @@ -101,6 +101,12 @@ bottom=15mm \newpage } +\forLoop{1}{\value{cptressourceB}}{noressource}{ + %A\Alph{noressource} + \tableauRessource{B\Alph{noressource}} + \newpage +} + %\tableauRessource{AA} %\tableauRessource{AB} diff --git a/latex/referentiel_BUT1.tex b/latex/referentiel_BUT1.tex index fc2fb3e..bb6cfed 100644 --- a/latex/referentiel_BUT1.tex +++ b/latex/referentiel_BUT1.tex @@ -14,7 +14,7 @@ \input{ressources/R109.tex} \input{ressources/R110.tex} \input{ressources/R111.tex} -% \input{ressources/R112.tex} +\input{ressources/R112.tex} \input{ressources/R113.tex} \input{ressources/R114.tex} \input{ressources/R115.tex} @@ -23,3 +23,17 @@ % Semestre 2 \nouveausemestre{} +\input{ressources/R201.tex} +\input{ressources/R202.tex} +\input{ressources/R203.tex} +\input{ressources/R204.tex} +\input{ressources/R205.tex} +\input{ressources/R206.tex} +\input{ressources/R207.tex} +\input{ressources/R208.tex} +\input{ressources/R209.tex} +\input{ressources/R210.tex} +\input{ressources/R211.tex} +\input{ressources/R212.tex} +\input{ressources/R213.tex} +\input{ressources/R214.tex} diff --git a/latex/ressources/R107.tex b/latex/ressources/R107.tex index 5ba35b7..871c029 100644 --- a/latex/ressources/R107.tex +++ b/latex/ressources/R107.tex @@ -1,34 +1,58 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ressources %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \nouvelleressource{R107}{Fondamentaux de la programmation} + \ajoutheures{41}{30} + %% Les compétences et les ACs \ajoutcompetence{RT1-Administrer}{\niveauA} + + \ajoutcompetence{RT2-Connecter}{\niveauA} + + \ajoutcompetence{RT3-Programmer}{\niveauA} + % Les SAE \ajoutsae{SAÉ15}{Traiter des données} + % Les pre-requis + % Le descriptif \ajoutancrage{ -Elle fournit les bases conceptuelles et pratiques pour concevoir et spécifier formellement un traitement automatisé de l'information. Ces bases pourront venir en appui de nombreuses compétences techniques (en informatique, en réseau, en télécommunication, ...) que le professionnel R\&T doit développer et s’inscrivent dans de nombreuses situations professionnelles que rencontrent le professionnel R\&T, notamment le développement d’outils informatiques à usage interne d'une équipe (compétence RT3-Programmer) ou l’automatisation du déploiement et de la maintenance des outils logiciels (compétence RT1-Administrer). +Elle fournit les bases conceptuelles et pratiques pour concevoir et +spécifier formellement un traitement automatisé de l'information. Ces +bases pourront venir en appui de nombreuses compétences techniques (en +informatique, en réseau, en télécommunication, \ldots) que le +professionnel R\&T doit développer et s'inscrivent dans de nombreuses +situations professionnelles que rencontrent le professionnel R\&T, +notamment le développement d'outils informatiques à usage interne d'une +équipe (compétence RT3-Programmer) ou l'automatisation du déploiement et +de la maintenance des outils logiciels (compétence RT1-Administrer). } + % Contenus \ajoutcontenudetaille{ En utilisant un langage de programmation, comme par exemple Python, les -contenus suivants seront traités : * Notions d'algorithmique : -\begin{verbatim} -* Variables, types de base (nombres, chaînes, listes/tableaux). -* Structures de contrôle : tests, répétitions. -* Fonctions et procédures. -* Portée des variables. -\end{verbatim} +contenus suivants seront traités : \begin{itemize} -\tightlist +\item + Notions d'algorithmique : + \begin{itemize} + \item + Variables, types de base (nombres, chaînes, listes/tableaux). + \item + Structures de contrôle : tests, répétitions. + \item + Fonctions et procédures. + \item + Portée des variables. + \end{itemize} \item Tests et corrections d'un programme. \item @@ -43,9 +67,10 @@ contenus suivants seront traités : * Notions d'algorithmique : Interaction avec le système d'exploitation et la ligne de commande : arguments, lancement de commandes. \item - Suivi de versions (git, svn, \ldots). L'utilisation de l'anglais est - préconisée pour la documentation du code. + Suivi de versions (git, svn, \ldots). \end{itemize} +L'utilisation de l'anglais est préconisée pour la documentation du code. } + % Mots-clés \ajoutmotscles{Algorithmes, langages de programmation, méthodologie de développement, suivi de versions} diff --git a/latex/ressources/R108.tex b/latex/ressources/R108.tex index 8259258..150d6a5 100644 --- a/latex/ressources/R108.tex +++ b/latex/ressources/R108.tex @@ -1,28 +1,53 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ressources %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \nouvelleressource{R108}{Bases des systèmes d'exploitation} + \ajoutheures{27}{21} + %% Les compétences et les ACs \ajoutcompetence{RT1-Administrer}{\niveauA} + \ajoutac{RT1}{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} \ajoutac{RT1}{Installer un poste client} + \ajoutcompetence{RT2-Connecter}{\niveauA} + + \ajoutcompetence{RT3-Programmer}{\niveauA} + % Les SAE \ajoutsae{SAÉ15}{Traiter des données} + % Les pre-requis + % Le descriptif \ajoutancrage{ -Cette ressource traite des bases de l’utilisation d’un poste client et de son système d’exploitation. -Elle est essentielle pour la prise en main pratique d’un système informatique en abordant notamment la gestion des données dans un espace de stockage (organisation, recherche, droits) et la maîtrise d’un environnement numérique, deux thèmes attendus par le référentiel PIX (https://pix.fr/competences). Cette ressource introduit également un usage avancé du système d’exploitation nécessaire au besoin d’un professionnel R\&T. Elle vise la maîtrise de commandes en ligne pour gérer l’arborescence de fichiers, les programmes et les processus du système d’exploitation, par exemple pour exécuter un programme ou configurer les éléments d’un site Web (compétence RT3-Programmer). Elle vise également l’emploi des principales commandes réseau, dans des scripts simples. Ces commandes sont les bases d’appui pour administrer - par la suite - un réseau et de ses services (compétence RT1-Administrer). Elle contribue donc aux apprentissages critiques mentionnés précédemment. +Cette ressource traite des bases de l'utilisation d'un poste client et +de son système d'exploitation. +Elle est essentielle pour la prise en main pratique d'un système +informatique en abordant notamment la gestion des données dans un espace +de stockage (organisation, recherche, droits) et la maîtrise d'un +environnement numérique, deux thèmes attendus par le référentiel PIX +(https://pix.fr/competences). Cette ressource introduit également un +usage avancé du système d'exploitation nécessaire au besoin d'un +professionnel R\&T. Elle vise la maîtrise de commandes en ligne pour +gérer l'arborescence de fichiers, les programmes et les processus du +système d'exploitation, par exemple pour exécuter un programme ou +configurer les éléments d'un site Web (compétence RT3-Programmer). Elle +vise également l'emploi des principales commandes réseau, dans des +scripts simples. Ces commandes sont les bases d'appui pour administrer - +par la suite - un réseau et de ses services (compétence +RT1-Administrer). Elle contribue donc aux apprentissages critiques +mentionnés précédemment. } + % Contenus \ajoutcontenudetaille{ \begin{itemize} -\tightlist \item Systèmes d'exploitations Windows/Linux, Interface-Homme-Machine et ligne de commande @@ -46,5 +71,6 @@ Elle est essentielle pour la prise en main pratique d’un système informatique commandes, aux structures de contrôle \end{itemize} } + % Mots-clés -\ajoutmotscles{Programmation, arborescence, processus, scripts, variables d’environnement, PIX.} +\ajoutmotscles{Programmation, arborescence, processus, scripts, variables d'environnement, PIX.} diff --git a/python/export_docx_to_yaml.py b/python/export_docx_to_yaml.py index 27b25ab..657f99a 100644 --- a/python/export_docx_to_yaml.py +++ b/python/export_docx_to_yaml.py @@ -17,7 +17,7 @@ docu[1] # Tableau de synthèse des ressources nbre_ressources = 0 -ENTETES = ["Nom", "Code", "Semestre", "formation encadrée", "dont heures de TP", +ENTETES = ["Nom", "Code", "Semestre", "Heures de formation", "dont heures de TP", "SAÉ", "Prérequis", "Descriptif", "Mots"] def get_indice(champ): """Récupère l'indice d'une entête""" diff --git a/python/ressource.py b/python/ressource.py index 42bfdf0..2c53f73 100644 --- a/python/ressource.py +++ b/python/ressource.py @@ -52,9 +52,9 @@ class RessourceDocx(): "acs": self.apprentissages, "sae": self.sae, "prerequis": self.prerequis, - "contexte": folded(self.contexte), - "contenu": folded(self.contenu), - "motscles": self.mots if self.mots else "" + "contexte": folded(caracteres_recalcitrants(self.contexte)), + "contenu": folded(caracteres_recalcitrants(self.contenu)), + "motscles": caracteres_recalcitrants(self.mots) if self.mots else "" } # output = yaml.dump(dico, #Dumper=yaml.Dumper, # sort_keys=False, allow_unicode=True) @@ -245,7 +245,7 @@ def split_description(r): 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) - if indicea>=0: + if True in [ligne.startswith("Contexte et ") for ligne in champs]: contexte = champs[indicea+1:indicec] else: contexte = champs[:indicec] @@ -271,7 +271,12 @@ def remove_link(contenu): def remove_ligne_vide(contenus): """Supprime les lignes vides""" - return [c for c in contenus if c.rstrip()] + if isinstance(contenus, list): + return [c for c in contenus if c.rstrip()] + else: # contenu = chaine + temp = contenus.split("\n") + temp = [t for t in temp if t.replace("\t", "").rstrip()] + return "\n".join(temp) def get_marqueur_numerique(contenu): """Revoie la liste des marqueurs numériques""" @@ -307,9 +312,9 @@ def get_marqueur(ligne, marqueurs): def nettoie_contenus(r): # suppression des \t - contenu = r.contenu.replace(" / ", "/").replace(u'\xa0', ' ') # supprime les nbsp + contenu = r.contenu.replace(" / ", "/") # supprime les nbsp - if r.code == "R102": + if r.code == "R113": print("ici") marqueurs_numeriques = get_marqueur_numerique(contenu) @@ -381,43 +386,28 @@ class Ressource(): # préparation du contexte contexte = self.ressource["contexte"] + contexte = contexte.replace("\n", "\n\n").replace("\n" * 4, + "\n") # corrige les suppressions de ligne à la relecture du yaml + output = pypandoc.convert_text(contexte, 'tex', format='md', + extra_args=['--atx-headers']) + output = output.replace("\r\n", "\n") + contexte = caracteres_recalcitrants(output) + contexte = remove_ligne_vide(contexte) + + # contexte = remove_ligne_vide(contexte) # préparation du contenu - # if self.ressource["code"] == "R107": - # print("ici") + if self.ressource["code"] == "R107": + print("ici") contenu = self.ressource["contenu"] #supprime les passages à la ligne - # marqueurs = ["*", "\t*"] # les marqueurs de Markdown - # - # for marq in marqueurs[::-1]: - # premier_marqueur = False - # contenu_balise = contenu.split("\n") - # contenu_latex = [] - # - # for (i, ligne) in enumerate(contenu_balise): # pour le contenu latex actuel - # un_marqueur = get_marqueur(ligne, [marq]) - # if un_marqueur: # le marqueur est trouvé - # if premier_marqueur == False: - # contenu_latex.append("\\begin{itemize}") - # premier_marqueur = True - # contenu_latex.append( ligne.replace(marq, "\\item")) - # elif premier_marqueur == True: # le marqueur n'est plus trouvé - # contenu_latex.append( ligne.replace(marq, "\\item")) - # contenu_latex.append("\\end{itemize}") - # premier_marqueur = False - # else: - # contenu_latex.append(ligne) # la ligne d'origine - # if i == len(contenu_balise) -1 and premier_marqueur == True: - # contenu_latex.append("\\end{itemize}") - # premier_marqueur = True # ferme la dernière balise - # - # # contenu_balise = contenu_latex[:] - # contenu = "\n".join(contenu_latex) # stocke le contenu - # - # contenu = "\n".join(contenu_latex) + contenu = contenu.replace("\n", "\n\n").replace("\n"*4, "\n") # corrige les suppressions de ligne à la relecture du yaml output = pypandoc.convert_text(contenu, 'tex', format='md', extra_args=['--atx-headers']) + output = output.replace("\r\n", "\n") + contenu = caracteres_recalcitrants(output) + contenu = remove_ligne_vide(contenu) chaine = "" chaine = TemplateLatex(modlatex).substitute(code=self.ressource["code"], @@ -428,14 +418,21 @@ class Ressource(): compRT2=compRT[1], compRT3=compRT[2], saes=saes, - motscles=self.ressource["motscles"], + motscles=caracteres_recalcitrants(self.ressource["motscles"]), prerequis=prerequis, - contexte=contexte, - contenu=output.replace("\r\n", "\n").replace("\n\n", "\n") + contexte=caracteres_recalcitrants(contexte), + contenu=contenu, ) - chaine = chaine.replace("&", "\&").replace("\n\n", "\n") + # chaine = chaine.replace("&", "\&") + + chaine = chaine.replace("\\tightlist\n", "") return chaine +def caracteres_recalcitrants(contenu): + contenu = contenu.replace("è", "è").replace("’", "'").replace("é", "é") + contenu = contenu.replace("â", "â").replace(b'a\xcc\x82'.decode("utf8"), "â") + contenu = contenu.replace('\xa0', ' ') # le nbsp + return contenu if __name__=="__main__": # Eléments de test