diff --git a/admin/api_theme.go b/admin/api_theme.go index 68b5d092..9ac92252 100644 --- a/admin/api_theme.go +++ b/admin/api_theme.go @@ -20,6 +20,7 @@ type exportedExercice struct { Title string `json:"title"` Gain int64 `json:"gain"` Solved int64 `json:"solved"` + Tried int64 `json:"tried"` } type exportedTheme struct { @@ -43,6 +44,7 @@ func exportThemes() (interface{}, error) { exercice.Title, exercice.Gain, exercice.SolvedCount(), + exercice.TriedTeamCount(), } } ret[fmt.Sprintf("%d", theme.Id)] = exportedTheme{ diff --git a/libfic/exercice.go b/libfic/exercice.go index d197192e..8162286f 100644 --- a/libfic/exercice.go +++ b/libfic/exercice.go @@ -158,6 +158,24 @@ func (e Exercice) SolvedCount() int64 { } } +func (e Exercice) TriedTeamCount() int64 { + var nb int64 + if err := DBQueryRow("SELECT COUNT(DISTINCT id_team) FROM exercice_tries WHERE id_exercice = ?", e.Id).Scan(&nb); err != nil { + return 0 + } else { + return nb + } +} + +func (e Exercice) TriedCount() int64 { + var nb int64 + if err := DBQueryRow("SELECT COUNT(id_team) FROM exercice_tries WHERE id_exercice = ?", e.Id).Scan(&nb); err != nil { + return 0 + } else { + return nb + } +} + func (e Exercice) CheckResponse(resps map[string]string, t Team) (bool, error) { s, _, _ := t.HasSolved(e) if s {