diff --git a/frontend/ui/src/components/ExerciceFlags.svelte b/frontend/ui/src/components/ExerciceFlags.svelte index 1deeefcd..12c87377 100644 --- a/frontend/ui/src/components/ExerciceFlags.svelte +++ b/frontend/ui/src/components/ExerciceFlags.svelte @@ -8,6 +8,7 @@ Icon, ListGroup, ListGroupItem, + Progress, Spinner, } from 'sveltestrap'; @@ -97,6 +98,16 @@ Faire son rapport + {#if exercice.flags.length != exercice.nb_flags} + + {exercice.flags.length}/{exercice.nb_flags} + + {/if} {#if exercice.tries || exercice.submitted || sberr} {#if exercice.solved_time && exercice.tries} diff --git a/libfic/team_my.go b/libfic/team_my.go index 943d6699..c8718087 100644 --- a/libfic/team_my.go +++ b/libfic/team_my.go @@ -61,6 +61,7 @@ type myTeamExercice struct { Gain int `json:"gain"` Files []myTeamFile `json:"files,omitempty"` Flags []myTeamFlag `json:"flags,omitempty"` + NbFlags int `json:"nb_flags,omitempty"` SolveDist int64 `json:"solve_dist,omitempty"` SolvedTime *time.Time `json:"solved_time,omitempty"` SolvedRank int64 `json:"solved_rank,omitempty"` @@ -189,6 +190,13 @@ func MyJSONTeam(t *Team, started bool) (interface{}, error) { return nil, err } else { for _, k := range flags { + exercice.NbFlags += 1 + + if !DisplayAllFlags && t != nil && !t.CanSeeFlag(k) { + // Dependancy missing, skip the flag for now + continue + } + flag := myTeamFlag{ Id: k.Id, Type: k.Type, @@ -196,11 +204,6 @@ func MyJSONTeam(t *Team, started bool) (interface{}, error) { Help: k.Help, } - if !DisplayAllFlags && t != nil && !t.CanSeeFlag(k) { - // Dependancy missing, skip the flag for now - continue - } - // Retrieve solved state or solution for public iface if t == nil { flag.IgnoreCase = k.IgnoreCase @@ -255,6 +258,8 @@ func MyJSONTeam(t *Team, started bool) (interface{}, error) { return nil, err } else { for _, mcq := range mcqs { + exercice.NbFlags += 1 + if !DisplayAllFlags && t != nil && !t.CanSeeFlag(mcq) { // Dependancy missing, skip the flag for now continue