Add rank
This commit is contained in:
parent
0247c89b02
commit
3aafb15f19
|
@ -98,7 +98,7 @@ func nginxGenTeam() (string, error) {
|
|||
type exportedTeam struct {
|
||||
Name string `json:"name"`
|
||||
Color string `json:"color"`
|
||||
Rank int64 `json:"rank"`
|
||||
Rank int `json:"rank"`
|
||||
Points int64 `json:"score"`
|
||||
Members []fic.Member `json:"members"`
|
||||
}
|
||||
|
@ -106,6 +106,8 @@ type exportedTeam struct {
|
|||
func exportTeams() (interface{}, error) {
|
||||
if teams, err := fic.GetTeams(); err != nil {
|
||||
return nil, err
|
||||
} else if rank, err := fic.GetRank(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
ret := map[string]exportedTeam{}
|
||||
for _, team := range teams {
|
||||
|
@ -117,7 +119,7 @@ func exportTeams() (interface{}, error) {
|
|||
ret[fmt.Sprintf("%d", team.Id)] = exportedTeam{
|
||||
team.Name,
|
||||
fmt.Sprintf("#%x", team.Color),
|
||||
1,
|
||||
rank[team.Id],
|
||||
points,
|
||||
members,
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@ angular.module("FICApp", ["ngRoute"])
|
|||
templateUrl: "views/team-edit.html"
|
||||
})
|
||||
.when("/rank", {
|
||||
controller: "TeamListController",
|
||||
templateUrl: "views/team-list.html"
|
||||
controller: "RankController",
|
||||
templateUrl: "views/rank.html"
|
||||
})
|
||||
.when("/:theme", {
|
||||
controller: "ExerciceController",
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<p><input type="search" class="form-control" placeholder="Rechercher" ng-model="query"></p>
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th ng-repeat="field in fields" ng-click="order(field)">
|
||||
{{ field }}
|
||||
<span class="glyphicon" ng-show="rankOrder === field" ng-class="{'glyphicon-up': !reverse, 'glyphicon-down': reverse}"></span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="team in rank | filter: query | orderBy:rankOrder:reverse" ng-click="show(team.id)" ng-show="team.rank">
|
||||
<td ng-repeat="field in fields">
|
||||
{{ team[field] }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
|
@ -81,6 +81,32 @@ func (t Team) GetPoints() (int64, error) {
|
|||
}
|
||||
}
|
||||
|
||||
func GetRank() (map[int64]int, error) {
|
||||
if rows, err := DBQuery("SELECT id_team, SUM(E.gain) AS score, MAX(S.time) FROM exercice_solved S INNER JOIN exercices E ON E.id_exercice = S.id_exercice GROUP BY id_team HAVING score > 0 ORDER BY score ASC, time ASC"); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
defer rows.Close()
|
||||
|
||||
rank := map[int64]int{}
|
||||
nteam := 0
|
||||
for rows.Next() {
|
||||
nteam += 1
|
||||
var tid int64
|
||||
var score int64
|
||||
var tzzz int64
|
||||
if err := rows.Scan(&tid, &score, &tzzz); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rank[tid] = nteam
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return rank, nil
|
||||
}
|
||||
}
|
||||
|
||||
func (t Team) HasAccess(e Exercice) bool {
|
||||
if e.Depend == nil {
|
||||
return true
|
||||
|
|
Loading…
Reference in New Issue