Guide d'utilisateur du GUI
This commit is contained in:
1 parent
a56fc6e680
commit
5b7d4b611e
4 files changed
+49
No files matched your search
@@ -198,6 +198,8 @@ ou
|
||||
|
||||
* Documentation complémentaire
|
||||
|
||||
- [[file:docs/guide_utilisateur_gui.md][Guide utilisateur de l’interface graphique]] : actions,
|
||||
vérifications et cas particuliers pour chaque étape du parcours non personnel.
|
||||
- [[file:Script.org][Référence des étapes et des scripts]] : commandes, arguments,
|
||||
prérequis, fichiers produits et parcours alternatifs.
|
||||
- [[file:docs/final_output.md][Fichiers finaux dans A Rendre]] : contenu du JPEG, sélection et
|
||||
|
||||
@@ -279,6 +279,7 @@ class CopienatorApp(tk.Tk):
|
||||
self.refaire_panel: RefaireSelection | None = None
|
||||
self.giving_names_panel: GivingNamesPanel | None = None
|
||||
self.complete_giving_names_button: ttk.Button | None = None
|
||||
self.label_groups_button: ttk.Button | None = None
|
||||
self.pending_refaire_commands: list[list[str]] = []
|
||||
self.refaire_command_index = 0
|
||||
self._correction_progress_buffer = ""
|
||||
@@ -833,6 +834,7 @@ class CopienatorApp(tk.Tk):
|
||||
self.refaire_panel = None
|
||||
self.giving_names_panel = None
|
||||
self.complete_giving_names_button = None
|
||||
self.label_groups_button = None
|
||||
entry = self.state_store.step(step.id) if self.state_store.evaluation else {}
|
||||
saved_variant = entry.get("variant", step.variants[0].id)
|
||||
if saved_variant not in {variant.id for variant in step.variants}:
|
||||
@@ -946,6 +948,22 @@ class CopienatorApp(tk.Tk):
|
||||
self._update_controls()
|
||||
|
||||
def _render_context_controls(self, step: StepDefinition, row: int) -> int:
|
||||
if step.id == "annotation" and self.variant_var.get() == "grouped":
|
||||
controls = ttk.Frame(self.form)
|
||||
controls.grid(row=row, column=0, columnspan=2, sticky="ew", pady=(0, 8))
|
||||
self.label_groups_button = ttk.Button(
|
||||
controls,
|
||||
text="Ouvrir les groupes de questions",
|
||||
command=self._open_label_groups,
|
||||
)
|
||||
self.label_groups_button.pack(side="left")
|
||||
ttk.Label(
|
||||
controls,
|
||||
text="Une ligne = un groupe. Vérifiez et enregistrez le fichier avant d’exécuter BGnot.",
|
||||
wraplength=470,
|
||||
justify="left",
|
||||
).pack(side="left", padx=(10, 0))
|
||||
return row + 1
|
||||
if step.id == "personal_read":
|
||||
controls = ttk.Frame(self.form)
|
||||
controls.grid(row=row, column=0, columnspan=2, sticky="w", pady=8)
|
||||
@@ -1208,6 +1226,13 @@ class CopienatorApp(tk.Tk):
|
||||
evaluation = self.evaluation
|
||||
self._open_desktop_path(evaluation / "Persp" if evaluation else None, "dossier Persp")
|
||||
|
||||
def _open_label_groups(self) -> None:
|
||||
evaluation = self.evaluation
|
||||
self._open_desktop_path(
|
||||
evaluation / "label_groups" if evaluation else None,
|
||||
"fichier label_groups",
|
||||
)
|
||||
|
||||
def _open_selected_copy(self) -> None:
|
||||
self._open_desktop_path(self.copy_paths.get(self.copy_var.get()), "copie")
|
||||
|
||||
|
||||
@@ -17,6 +17,9 @@ if [[ $# -eq 0 ]]; then
|
||||
folder="${candidate%/}"
|
||||
folder="${folder##*/}"
|
||||
case "$folder" in
|
||||
[Ee]xample|[Ee]xamples|[Dd]oc|[Dd]ocs|[Dd]ocumentation)
|
||||
continue
|
||||
;;
|
||||
copienator|copienator_gui|tests|OLD|__pycache__|build|dist|*.egg-info|venv|env|node_modules)
|
||||
continue
|
||||
;;
|
||||
|
||||
@@ -210,6 +210,25 @@ class GuiConvenienceTests(unittest.TestCase):
|
||||
)
|
||||
self.assertNotEqual(self.app.current_step.id, "giving_names")
|
||||
|
||||
def test_grouped_annotation_can_open_label_groups(self):
|
||||
label_groups = self.evaluation / "label_groups"
|
||||
label_groups.write_text("Ex 1 : 1), Ex 1 : 2)\n", encoding="utf-8")
|
||||
self.app.state_store.update_step("annotation", variant="grouped")
|
||||
self.app.tree.selection_set("annotation")
|
||||
self.app.update()
|
||||
|
||||
self.assertIsNotNone(self.app.label_groups_button)
|
||||
self.assertEqual(
|
||||
self.app.label_groups_button.cget("text"),
|
||||
"Ouvrir les groupes de questions",
|
||||
)
|
||||
with patch("copienator_gui.app.open_path") as opened:
|
||||
self.app.label_groups_button.invoke()
|
||||
opened.assert_called_once_with(label_groups)
|
||||
|
||||
self.app._select_variant(0)
|
||||
self.assertIsNone(self.app.label_groups_button)
|
||||
|
||||
def test_batch_status_waits_until_all_jobs_are_ready(self):
|
||||
self.app.state_store.update_step("correction", variant="batch", last_run_variant="batch")
|
||||
self.app._populate_tree()
|
||||
|
||||
Reference in new issue
Block a user