diff --git a/qa/api/todo.go b/qa/api/todo.go index 94222e93..9aa7cbc8 100644 --- a/qa/api/todo.go +++ b/qa/api/todo.go @@ -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 diff --git a/qa/static/js/qa.js b/qa/static/js/qa.js index d5e658fe..b4894d19 100644 --- a/qa/static/js/qa.js +++ b/qa/static/js/qa.js @@ -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) { diff --git a/qa/static/views/home.html b/qa/static/views/home.html index 16c4420a..29733a15 100644 --- a/qa/static/views/home.html +++ b/qa/static/views/home.html @@ -3,12 +3,15 @@
- - + +
+
À tester + À commenter + - Testé + Commenté mais pas testé {{ mytheme.name }}