sync: MCQ justifications are given in the choice tag directly

This commit is contained in:
nemunaire 2019-09-06 22:58:30 +02:00
parent d7f0425d8a
commit 33f7d104e4
2 changed files with 9 additions and 10 deletions

View File

@ -27,13 +27,6 @@ type ExerciceUnlockFile struct {
Filename string `toml:",omitempty"` Filename string `toml:",omitempty"`
} }
// ExerciceFlagChoice holds informations about a choice (for MCQ and UCQ).
type ExerciceFlagChoice struct {
Label string `toml:",omitempty"`
Value interface{} `toml:",omitempty"`
Justification *ExerciceFlag `toml:",omitempty""`
}
// ExerciceFlag holds informations about one flag. // ExerciceFlag holds informations about one flag.
type ExerciceFlag struct { type ExerciceFlag struct {
Id int64 Id int64
@ -52,6 +45,12 @@ type ExerciceFlag struct {
NoShuffle bool NoShuffle bool
} }
// ExerciceFlagChoice holds informations about a choice (for MCQ and UCQ).
type ExerciceFlagChoice struct {
ExerciceFlag
Value interface{} `toml:",omitempty"`
}
// ExerciceParams contains values parsed from defines.txt. // ExerciceParams contains values parsed from defines.txt.
type ExerciceParams struct { type ExerciceParams struct {
Gain int64 Gain int64

View File

@ -233,7 +233,7 @@ func buildExerciceFlags(i Importer, exercice fic.Exercice) (flags map[int64]impo
for cid, choice := range flag.Choice { for cid, choice := range flag.Choice {
var val bool var val bool
if choice.Justification != nil { if choice.Raw != nil {
if hasOne && !isJustified { if hasOne && !isJustified {
errs = append(errs, fmt.Sprintf("%q: error MCQ #%d: all true items has to be justified in this MCQ.", path.Base(exercice.Path), nline+1)) errs = append(errs, fmt.Sprintf("%q: error MCQ #%d: all true items has to be justified in this MCQ.", path.Base(exercice.Path), nline+1))
continue continue
@ -259,8 +259,8 @@ func buildExerciceFlags(i Importer, exercice fic.Exercice) (flags map[int64]impo
Response: val, Response: val,
}) })
if isJustified && choice.Justification != nil { if isJustified && choice.Raw != nil {
addedFlag, choices, berrs := buildKeyFlag(exercice, *choice.Justification, nline+1, "Flag correspondant") addedFlag, choices, berrs := buildKeyFlag(exercice, choice.ExerciceFlag, nline+1, "Flag correspondant")
if len(berrs) > 0 { if len(berrs) > 0 {
errs = append(errs, berrs...) errs = append(errs, berrs...)
} }