admin: add wchoices in team_history.json
This commit is contained in:
parent
1b75547308
commit
f3eabd74fc
4 changed files with 26 additions and 6 deletions
|
@ -18,10 +18,13 @@ const indextpl = `<!DOCTYPE html>
|
|||
white-space: nowrap;
|
||||
}
|
||||
.bg-mfound {
|
||||
background-color: #7bcfd0;
|
||||
background-color: #7bcfd0 !important;
|
||||
}
|
||||
.bg-ffound {
|
||||
background-color: #7bdfc0;
|
||||
background-color: #7bdfc0 !important;
|
||||
}
|
||||
.bg-wchoices {
|
||||
background-color: #c07bdf !important;
|
||||
}
|
||||
</style>
|
||||
<base href="{{.urlbase}}">
|
||||
|
|
|
@ -16,10 +16,13 @@
|
|||
white-space: nowrap;
|
||||
}
|
||||
.bg-mfound {
|
||||
background-color: #7bcfd0;
|
||||
background-color: #7bcfd0 !important;
|
||||
}
|
||||
.bg-ffound {
|
||||
background-color: #7bdfc0;
|
||||
background-color: #7bdfc0 !important;
|
||||
}
|
||||
.bg-wchoices {
|
||||
background-color: #c07bdf !important;
|
||||
}
|
||||
</style>
|
||||
<base href="/admin/">
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="col-lg-4">
|
||||
<table ng-controller="TeamHistoryController" class="table table-hover table-striped table-bordered bg-primary text-light">
|
||||
<tbody>
|
||||
<tr ng-repeat="row in history" ng-class="{'bg-ffound': row.kind == 'flag_found', 'bg-mfound': row.kind == 'mcq_found', 'bg-success': row.kind == 'solved', 'bg-info': row.kind == 'hint', 'bg-warning': row.kind == 'key_found'}">
|
||||
<tr ng-repeat="row in history" ng-class="{'bg-ffound': row.kind == 'flag_found', 'bg-mfound': row.kind == 'mcq_found', 'bg-wchoices': row.kind == 'wchoices', 'bg-success': row.kind == 'solved', 'bg-info': row.kind == 'hint', 'bg-warning': row.kind == 'tries'}">
|
||||
<td>
|
||||
<nobr>{{ row.time | date:"mediumTime" }}</nobr><br>{{ row.kind }}
|
||||
</td>
|
||||
|
|
|
@ -8,7 +8,13 @@ import (
|
|||
func (t Team) GetHistory() ([]map[string]interface{}, error) {
|
||||
hist := make([]map[string]interface{}, 0)
|
||||
|
||||
if rows, err := DBQuery(`SELECT id_team, "tries" AS kind, time, E.id_exercice, E.title, NULL, NULL FROM exercice_tries T INNER JOIN exercices E ON E.id_exercice = T.id_exercice WHERE id_team = ? UNION SELECT id_team, "solved" AS kind, time, E.id_exercice, E.title, coefficient, NULL FROM exercice_solved S INNER JOIN exercices E ON E.id_exercice = S.id_exercice WHERE id_team = ? UNION SELECT id_team, "hint" AS kind, time, E.id_exercice, E.title, H.id_hint, H.title FROM team_hints T INNER JOIN exercice_hints H ON H.id_hint = T.id_hint INNER JOIN exercices E ON E.id_exercice = H.id_exercice WHERE id_team = ? UNION SELECT id_team, "flag_found" AS kind, time, E.id_exercice, E.title, K.id_flag, K.type FROM flag_found F INNER JOIN exercice_flags K ON K.id_flag = F.id_flag INNER JOIN exercices E ON K.id_exercice = E.id_exercice WHERE id_team = ? UNION SELECT id_team, "mcq_found" AS kind, time, E.id_exercice, E.title, Q.id_mcq, Q.title FROM mcq_found F INNER JOIN exercice_mcq Q ON Q.id_mcq = F.id_mcq INNER JOIN exercices E ON Q.id_exercice = E.id_exercice WHERE id_team = ? ORDER BY time DESC`, t.Id, t.Id, t.Id, t.Id, t.Id); err != nil {
|
||||
if rows, err := DBQuery(`SELECT id_team, "tries" AS kind, time, E.id_exercice, E.title, NULL, NULL FROM exercice_tries T INNER JOIN exercices E ON E.id_exercice = T.id_exercice WHERE id_team = ? UNION
|
||||
SELECT id_team, "solved" AS kind, time, E.id_exercice, E.title, coefficient, NULL FROM exercice_solved S INNER JOIN exercices E ON E.id_exercice = S.id_exercice WHERE id_team = ? UNION
|
||||
SELECT id_team, "hint" AS kind, time, E.id_exercice, E.title, H.id_hint, H.title FROM team_hints T INNER JOIN exercice_hints H ON H.id_hint = T.id_hint INNER JOIN exercices E ON E.id_exercice = H.id_exercice WHERE id_team = ? UNION
|
||||
SELECT id_team, "wchoices" AS kind, time, E.id_exercice, E.title, F.id_flag, F.type FROM team_wchoices W INNER JOIN exercice_flags F ON F.id_flag = W.id_flag INNER JOIN exercices E ON E.id_exercice = F.id_exercice WHERE id_team = ? UNION
|
||||
SELECT id_team, "flag_found" AS kind, time, E.id_exercice, E.title, K.id_flag, K.type FROM flag_found F INNER JOIN exercice_flags K ON K.id_flag = F.id_flag INNER JOIN exercices E ON K.id_exercice = E.id_exercice WHERE id_team = ? UNION
|
||||
SELECT id_team, "mcq_found" AS kind, time, E.id_exercice, E.title, Q.id_mcq, Q.title FROM mcq_found F INNER JOIN exercice_mcq Q ON Q.id_mcq = F.id_mcq INNER JOIN exercices E ON Q.id_exercice = E.id_exercice WHERE id_team = ?
|
||||
ORDER BY time DESC`, t.Id, t.Id, t.Id, t.Id, t.Id, t.Id); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
defer rows.Close()
|
||||
|
@ -64,6 +70,14 @@ func (t Team) DelHistoryItem(kind string, h time.Time, primary *int64, secondary
|
|||
} else {
|
||||
return nb, err
|
||||
}
|
||||
} else if kind == "wchoices" && primary != nil {
|
||||
if res, err := DBExec("DELETE FROM team_wchoices WHERE id_team = ? AND time = ? AND id_flag = ?", t.Id, h, *secondary); err != nil {
|
||||
return 0, err
|
||||
} else if nb, err := res.RowsAffected(); err != nil {
|
||||
return 0, err
|
||||
} else {
|
||||
return nb, err
|
||||
}
|
||||
} else if kind == "flag_found" && secondary != nil {
|
||||
if res, err := DBExec("DELETE FROM flag_found WHERE id_team = ? AND time = ? AND id_flag = ?", t.Id, h, *secondary); err != nil {
|
||||
return 0, err
|
||||
|
|
Reference in a new issue