diff --git a/TODO.md b/TODO.md index 66c0ab0..9e515d4 100644 --- a/TODO.md +++ b/TODO.md @@ -1,5 +1,7 @@ ## TODO +Passer en options toutes les chaînes de caractères naturellement initialisées à "" + Faire une documentation correcte... Types de documents : diff --git a/documentex/constantes_document_latex.py b/documentex/constantes_document_latex.py index 0827146..2eaf909 100644 --- a/documentex/constantes_document_latex.py +++ b/documentex/constantes_document_latex.py @@ -123,3 +123,14 @@ annee_scolaire = ['09', '10', '11', '12', '01', '02', '03', '04', '05'] # mois annee_scolaire_plus_un = ['01', '02', '03', '04', '05'] annee_scolaire_en_cours = ['09', '10', '11', '12'] annees_valables = [str(i) for i in range(2018, 2070)] + + +""" +Fonctions de validations génériques +""" +def entier(x): + try: + int(x) + return True + except: + return "Doit être un entier" diff --git a/documentex/documentex.py b/documentex/documentex.py index 2ed19f6..d8dc7f3 100644 --- a/documentex/documentex.py +++ b/documentex/documentex.py @@ -7,6 +7,7 @@ import shutil from . import constantes_document_latex as constantes from . import lib_annee_scolaire as annee_scolaire import click +from PyInquirer.prompt import prompt template_dir = constantes.jinja_template_dir @@ -37,18 +38,20 @@ def validate_dossier(ctx, param, value): def documentex(dossier: str, type_document: str): """ Entrée: + ------- dossier : chaîne de caractère spécifiant le nom du dossier à créer type_document : chaîne de caractère spécifiant le type de document à créer Sortie : + -------- - Aucune. On crée dans le dossier $dossier tous les fichiers d'en-tête LaTeX nécessaire en - fonction du type de document à créer. + Aucune. On crée dans le dossier $dossier tous les fichiers d'en-tête LaTeX nécessaire en fonction du type de document à créer. Exemple : + --------- documentex 01_algebre-lineaire td @@ -57,12 +60,19 @@ def documentex(dossier: str, type_document: str): # Initialisation des variables # contenu,tex_file,fancyhead,type_document,short_title,lycee,classe,title,auteur,semaine,liste_noms,td,ds_numero,annee date = datetime.now().strftime("%Y-%m-%d") + title = "" + semaine = "" + nom1 = "" + nom2 = "" + nom3 = "" + classe = "" + lycee = "" + ds_numero = "" numero, nom_fichier = dossier tex_file = constantes.tex_file # nom du fichier dans lequel on écrit du LaTeX - contenu,td,fancyhead,appartenance = constantes.dictionnaire_type_document[type_document] + contenu, td, fancyhead, appartenance = constantes.dictionnaire_type_document[type_document] short_title = type_document.upper()+' '+numero - title,semaine,nom1,nom2,nom3 = constantes.initialiser_variables() # c'est moche... auteur = constantes.auteur annee = annee_scolaire.annee_scolaire() institution = constantes.institution @@ -76,27 +86,101 @@ def documentex(dossier: str, type_document: str): if appartenance: classe = constantes.classe_appartenance lycee = constantes.lycee_appartenance - else: - classe = '' - lycee = '' - ds_numero = '' # Initialisation des variables suivant le type d'écrit if contenu: - title = click.prompt("Quel titre long pour ce document ? ") - short_title = click.prompt("Quel titre court pour ce document ? ") + questions = [ + { + "type": "input", + "name": "title", + "message": "Titre LONG du document", + }, + { + "type": "input", + "name": "title", + "message": "Titre COURT du document", + } + ] + answers = prompt(questions) + title = answers["title"] + short_title = answers["short_title"] if type_document == 'dm': + questions = [ + { + "type": "input", + "name": "date", + "message": "À rendre pour le : ", + } + ] + short_title += ' : à rendre pour le ' - short_title += click.prompt('à rendre pour le : ? ') + answers = prompt(questions) + short_title += answers["date"] if type_document == 'cr': - lycee = click.prompt('Quel lycée ? ') - classe = click.prompt('Quelle classe ? ') - semaine = click.prompt('Quelle semaine ? ') - nom1 = click.prompt('Premier candidat ? ') - nom2 = click.prompt('Deuxième candidat ? ') - nom3 = click.prompt('Troisième candidat ? ') + questions = [ + { + "type": "list", + "name": "lycee", + "message": "Nom du lycée", + "choices": [ + "LLW", + "Lycée de Cachan", + ] + }, + { + "type": "list", + "name": "classe", + "message": "Nom de la classe", + "choices": [ + "PTSI", + "PT*", + "PT", + ] + }, + { + "type": "input", + "name": "semaine", + "message": "Numéro de la semaine", + "validate": constantes.entier, + }, + + { + "type": "input", + "name": "nom1", + "message": "Nom du premier candidat", + "default": "", + }, + { + "type": "input", + "name": "nom2", + "message": "Nom du deuxième candidat", + "default": "", + }, + { + "type": "input", + "name": "nom3", + "message": "Nom du troisième candidat", + "default": "", + }, + ] + answers = prompt(questions) + + lycee = answers["lycee"] + classe = answers["classe"] + semaine = answers["semaine"] + nom1 = answers["nom1"] + nom2 = answers["nom2"] + nom3 = answers["nom3"] if type_document == 'ob': - nom1 = click.prompt('Nom du candidat ? ') + questions = [ + { + "type": "input", + "name": "nom1", + "message": "Nom du candidat ", + } + ] + answers = prompt(questions) + nom1 = answers["nom1"] os.mkdir(nom_fichier) os.mkdir(os.path.join(nom_fichier, "Utils")) diff --git a/documentex/templates/example.tex b/documentex/templates/example.tex index 93f5188..a969e2c 100644 --- a/documentex/templates/example.tex +++ b/documentex/templates/example.tex @@ -45,6 +45,11 @@ Je connais <++> car celui-ci a effectué sa deuxième année de classe préparat % Raisonner : /5 % Dialoguer : /3 +% Si pas de question de cours +% Tableau exercice : /4 +% Raisonner : /11 +% Dialoguer : /5 + \subsection*{Question de cours :} <++> diff --git a/setup.py b/setup.py index 0f0b3cb..5730db2 100644 --- a/setup.py +++ b/setup.py @@ -15,6 +15,7 @@ setup( install_requires=[ "jinja2", "Click", + "PyInquirer", ], author = "David Denoncin",