From f9e1cf66912dce00f180821d83959fedf03cf35a Mon Sep 17 00:00:00 2001 From: nemunaire Date: Fri, 7 Sep 2018 19:41:54 +0200 Subject: [PATCH] sync: add a new section to allow locking file waiting flag validation --- admin/sync/README.md | 4 ++++ admin/sync/exercice_defines.go | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/admin/sync/README.md b/admin/sync/README.md index 8aaf5dba..11ec0fa2 100644 --- a/admin/sync/README.md +++ b/admin/sync/README.md @@ -19,6 +19,8 @@ Tous les textes doivent utiliser l'encodage UTF8. * `raw = 'MieH2athxuPhai6u'` : drapeau exact à trouver ; * `ignorecase = true` : (facultatif, par défaut : `false`) ignore la case de ce drapeau ; * `help = "Indication"` : (facultatif) chaîne de caractères placée sous le champ du formulaire, idéale pour donner une indication de format ; + * `[[flag.unlock_file]]` : bloque l'accès à un fichier tant que le flag n'est pas obtenu : + + `filename = "toto.txt"` : nom du fichier tel qu'il apparaît dans le dossier `files` ; - `[[flag_mcq]]` : drapeau sous forme de question à choix multiple (cases à cocher) : * `label = "Intitulé du groupe"` : (facultatif) intitulé du groupe de choix ; * `[[flag_mcq.choice]]` : représente un choix, répétez autant de fois qu'il y a de choix : @@ -33,6 +35,8 @@ Tous les textes doivent utiliser l'encodage UTF8. * `[[flag_ucq.choice]]` : représente un choix, répétez autant de fois qu'il y a de choix : + `value = "response"` : valeur qui sera retournée pour comparaison avec la valeur `raw` du ucq, + `label = "Intitulé de la réponse"` : (facultatif, par défaut identique à `value`) ; + * `[[flag_ucq.unlock_file]]` : bloque l'accès à un fichier tant que le flag n'est pas obtenu : + + `filename = "toto.txt"` : nom du fichier tel qu'il apparaît dans le dossier `files` ; - `[[hint]]` : paramètres pour un indice : * `filename = "toto.txt"` : (mutuellement exclusif avec `content`) nom du fichier tel qu'il apparaît dans le dossier `hints` ; * `content = "Contenu de l'indice"` : (mutuellement exclusif avec `filename`) contenu de l'indice affiché, en markdown ; diff --git a/admin/sync/exercice_defines.go b/admin/sync/exercice_defines.go index 6be57b80..01f82fc3 100644 --- a/admin/sync/exercice_defines.go +++ b/admin/sync/exercice_defines.go @@ -26,6 +26,12 @@ type ExerciceFlag struct { Raw string IgnoreCase bool `toml:",omitempty"` Help string `toml:",omitempty"` + LockedFile []ExerciceFlag `toml:unlock_file",omitempty"` +} + +// ExerciceUnlockFile holds parameters related to a locked file. +type ExerciceFlag struct { + Filename string `toml:",omitempty"` } // ExerciceFlagMCQChoice holds a choice for an MCQ flag. @@ -54,6 +60,7 @@ type ExerciceFlagUCQ struct { DisplayAs string `toml:",omitempty"` Choices_Cost int64 `toml:",omitempty"` Choice []ExerciceFlagUCQChoice + LockedFile []ExerciceFlag `toml:unlock_file",omitempty"` } // ExerciceParams contains values parsed from defines.txt.