Miscs improvements (Interro02)
This commit is contained in:
@@ -7,6 +7,7 @@ from collections.abc import Iterable
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from copienator import configuration
|
||||
from copienator.configuration import ALWAYS_CROP
|
||||
|
||||
EVALUATION = "${evaluation}"
|
||||
@@ -18,6 +19,7 @@ class ArgumentSpec:
|
||||
label: str
|
||||
kind: str = "text" # text, int, bool, choice, path
|
||||
flag: str | None = None
|
||||
false_flag: str | None = None
|
||||
default: object = ""
|
||||
choices: tuple[str, ...] = ()
|
||||
help: str = ""
|
||||
@@ -87,6 +89,38 @@ def build_workflow(show_personal_steps: bool) -> list[StepDefinition]:
|
||||
ident, label, None, "manual"
|
||||
)
|
||||
|
||||
return_answer_arguments = ()
|
||||
if configuration.RETURN_ANSWERS_ENABLED:
|
||||
return_answer_arguments = (
|
||||
ArgumentSpec(
|
||||
"return_answers_context",
|
||||
"Inclure le contexte dans answers",
|
||||
"bool",
|
||||
"--return-answers-context",
|
||||
"--no-return-answers-context",
|
||||
default=configuration.RETURN_ANSWERS_CONTEXT,
|
||||
help="Inclut les pages de contexte applicables avant chaque réponse individuelle publiée dans answers.",
|
||||
),
|
||||
ArgumentSpec(
|
||||
"return_answers_question",
|
||||
"Inclure l’énoncé dans answers",
|
||||
"bool",
|
||||
"--return-answers-question",
|
||||
"--no-return-answers-question",
|
||||
default=configuration.RETURN_ANSWERS_QUESTION,
|
||||
help="Inclut l’énoncé actuel avant chaque réponse individuelle publiée dans answers.",
|
||||
),
|
||||
ArgumentSpec(
|
||||
"return_answers_solution",
|
||||
"Inclure la correction dans answers",
|
||||
"bool",
|
||||
"--return-answers-solution",
|
||||
"--no-return-answers-solution",
|
||||
default=configuration.RETURN_ANSWERS_SOLUTION,
|
||||
help="Inclut la correction actuelle avant chaque réponse individuelle publiée dans answers.",
|
||||
),
|
||||
)
|
||||
|
||||
steps = [
|
||||
StepDefinition(
|
||||
"inputs",
|
||||
@@ -533,10 +567,10 @@ def build_workflow(show_personal_steps: bool) -> list[StepDefinition]:
|
||||
arg_target("le dossier de l’évaluation"),
|
||||
ArgumentSpec(
|
||||
"update_score",
|
||||
"Réappliquer les score.json",
|
||||
"Régénérer avec les nouveaux énoncés/corrigés et les score.json",
|
||||
"bool",
|
||||
"--update-score",
|
||||
help="Réutilise les valeurs présentes dans les fichiers score.json pour remplacer les scores lus dans les annotations.",
|
||||
help="Régénère les images avec les PDF actuels d’énoncé et de correction ; pour chaque label, le score.json existant prévaut sur le score relu dans l’annotation manuscrite.",
|
||||
),
|
||||
ArgumentSpec(
|
||||
"refaire",
|
||||
@@ -556,7 +590,7 @@ def build_workflow(show_personal_steps: bool) -> list[StepDefinition]:
|
||||
help="Indique le dossier d’annotations du passage principal dans lequel intégrer les questions refaites.",
|
||||
variants=("grouped",),
|
||||
),
|
||||
),
|
||||
) + return_answer_arguments,
|
||||
),
|
||||
StepDefinition(
|
||||
"giving_names",
|
||||
@@ -575,6 +609,13 @@ def build_workflow(show_personal_steps: bool) -> list[StepDefinition]:
|
||||
help="Choisissez le dossier d’annotations utilisé pour construire les fichiers nommés dans A Rendre.",
|
||||
positional=True,
|
||||
),
|
||||
ArgumentSpec(
|
||||
"update",
|
||||
"Mettre à jour uniquement les images de answers",
|
||||
"bool",
|
||||
"--update",
|
||||
help="Met à jour uniquement les images du dossier answers de chaque élève existant, en identifiant la copie par le numéro final entre parenthèses et sans modifier le nom du dossier ni les autres fichiers.",
|
||||
),
|
||||
),
|
||||
artifacts=("A Rendre",),
|
||||
),
|
||||
@@ -632,7 +673,9 @@ def build_workflow(show_personal_steps: bool) -> list[StepDefinition]:
|
||||
"final_score",
|
||||
"Étapes personnelles",
|
||||
"Ajouter le score final",
|
||||
"Génère les fichiers de diffusion avec le score final.",
|
||||
"Prérequis immédiat : gestion_classe wse doit avoir été exécuté juste avant. "
|
||||
"Génère ensuite les dossiers de diffusion avec le score final, puis copie "
|
||||
"gestion_classe/Staging/histogramme.pdf dans le dossier Server/copies de l’évaluation.",
|
||||
(python("default", "Score final", "add-final-score", supports_verbose=False),),
|
||||
arguments=(arg_target("le dossier de l’évaluation"),),
|
||||
personal=True,
|
||||
@@ -782,6 +825,8 @@ def build_command(
|
||||
if spec.kind == "bool":
|
||||
if bool(value) and spec.flag:
|
||||
options.append(spec.flag)
|
||||
elif not bool(value) and spec.false_flag:
|
||||
options.append(spec.false_flag)
|
||||
continue
|
||||
if value is None or str(value).strip() == "":
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user