qa: Add multiple color on home page
Some checks reported errors
continuous-integration/drone/push Build was killed

This commit is contained in:
nemunaire 2020-09-09 21:17:09 +02:00
parent 4490eb7036
commit 95ca255d75
3 changed files with 38 additions and 4 deletions

View File

@ -10,11 +10,38 @@ import (
)
func init() {
router.GET("/api/qa_exercices.json", apiHandler(getExerciceTested))
router.GET("/api/qa_mywork.json", apiHandler(getQAWork))
router.GET("/api/qa_work.json", apiHandler(getQATodo))
router.POST("/api/qa_work.json", apiHandler(createQATodo))
}
type exerciceTested map[int64]string
func getExerciceTested(u QAUser, ps httprouter.Params, body []byte) (interface{}, error) {
if team, err := fic.GetTeam(u.TeamId); err != nil {
return nil, err
} else if exercices, err := fic.GetExercices(); err != nil {
return nil, err
} else {
ret := exerciceTested{}
for _, exercice := range exercices {
if team.HasAccess(exercice) {
if ok, _ := team.HasSolved(exercice); ok {
ret[exercice.Id] = "solved"
} else if cnt, _ := team.CountTries(exercice); cnt > 0 {
ret[exercice.Id] = "tried"
} else {
ret[exercice.Id] = "access"
}
}
}
return ret, nil
}
}
func getQAWork(u QAUser, ps httprouter.Params, body []byte) (interface{}, error) {
if team, err := fic.GetTeam(u.TeamId); err != nil {
return nil, err

View File

@ -96,6 +96,9 @@ angular.module("FICApp")
.factory("TodoWorked", function($resource) {
return $resource("api/qa_mywork.json")
})
.factory("ExercicesTested", function($resource) {
return $resource("api/qa_exercices.json")
})
.factory("Team", function($resource) {
return $resource("api/teams/:teamId", { teamId: '@id' }, {
'update': {method: 'PUT'},
@ -222,8 +225,9 @@ angular.module("FICApp")
$scope.v = Version.get();
})
.controller("ToDoController", function($scope, Todo, TodoWorked, $location) {
.controller("ToDoController", function($scope, Todo, TodoWorked, ExercicesTested, $location) {
$scope.todos = Todo.query();
$scope.exo_done = ExercicesTested.get();
$scope.tododone = {}
$scope.work = TodoWorked.query(function(tw) {
tw.forEach(function(t) {

View File

@ -3,12 +3,15 @@
<div class="row">
<div class="col" ng-controller="ToDoController">
<table class="table table-stripped">
<tr ng-repeat="todo in todos" ng-controller="MyTodoExerciceController" ng-class="{'bg-warning': !tododone[todo.id_exercice], 'bg-success': tododone[todo.id_exercice]}" ng-click="show(todo.id_exercice)">
<td ng-if="!tododone[todo.id_exercice]">
<tr ng-repeat="todo in todos" ng-controller="MyTodoExerciceController" ng-class="{'bg-dark': !tododone[todo.id_exercice] && !exo_done[todo.id_exercice], 'bg-warning': !tododone[todo.id_exercice] && exo_done[todo.id_exercice] == 'access', 'bg-info': !tododone[todo.id_exercice] && (exo_done[todo.id_exercice] == 'tried' || exo_done[todo.id_exercice] == 'solved'), 'bg-success': tododone[todo.id_exercice]}" ng-click="show(todo.id_exercice)">
<td ng-if="!tododone[todo.id_exercice] && (!exo_done[todo.id_exercice] || exo_done[todo.id_exercice] == 'access')">
À tester
</td>
<td ng-if="!tododone[todo.id_exercice] && exo_done[todo.id_exercice] && exo_done[todo.id_exercice] != 'access'">
À commenter
</td>
<td ng-if="tododone[todo.id_exercice]">
Testé
Commenté <span ng-if="!exo_done[todo.id_exercice] || exo_done[todo.id_exercice] != 'solved'">mais pas testé</span>
</td>
<td>
{{ mytheme.name }}