QA: add a list of team's exercices
This commit is contained in:
parent
911bcb032e
commit
ea334a8a2f
5 changed files with 154 additions and 23 deletions
|
|
@ -96,6 +96,9 @@ angular.module("FICApp")
|
|||
.factory("TodoWorked", function($resource) {
|
||||
return $resource("api/qa_mywork.json")
|
||||
})
|
||||
.factory("MyExercices", function($resource) {
|
||||
return $resource("api/qa_myexercices.json")
|
||||
})
|
||||
.factory("ExercicesTested", function($resource) {
|
||||
return $resource("api/qa_exercices.json")
|
||||
})
|
||||
|
|
@ -240,6 +243,14 @@ angular.module("FICApp")
|
|||
};
|
||||
})
|
||||
|
||||
.controller("MyExercicesController", function($scope, MyExercices, $location) {
|
||||
$scope.my_exercices = MyExercices.query();
|
||||
|
||||
$scope.show = function(id) {
|
||||
$location.url("/exercices/" + id);
|
||||
};
|
||||
})
|
||||
|
||||
.controller("ThemesListController", function($scope, Theme, $location, $rootScope, $http) {
|
||||
$scope.themes = Theme.query();
|
||||
$scope.fields = ["name", "authors", "headline"];
|
||||
|
|
@ -322,7 +333,7 @@ angular.module("FICApp")
|
|||
$scope.exercice = new ThemedExercice();
|
||||
} else {
|
||||
$scope.exercice = Exercice.get({ exerciceId: $routeParams.exerciceId });
|
||||
}
|
||||
}
|
||||
$http({
|
||||
url: "api/themes.json",
|
||||
method: "GET"
|
||||
|
|
@ -342,7 +353,27 @@ angular.module("FICApp")
|
|||
})
|
||||
|
||||
.controller("ExerciceQAController", function($scope, $rootScope, ExerciceQA, $routeParams, $location, $http) {
|
||||
$scope.queries = ExerciceQA.query({ exerciceId: $routeParams.exerciceId });
|
||||
if ($routeParams.exerciceId) {
|
||||
$scope.queries = ExerciceQA.query({ exerciceId: $routeParams.exerciceId });
|
||||
} else {
|
||||
$scope.queries = ExerciceQA.query({ exerciceId: $scope.todo.id_exercice });
|
||||
}
|
||||
$scope.queriesNSolved = "N/A"
|
||||
$scope.queriesNClosed = "N/A"
|
||||
$scope.queries.$promise.then(function (queries) {
|
||||
var nbResolved = 0;
|
||||
var nbClosed = 0;
|
||||
queries.forEach(function(q) {
|
||||
if (q.solved) {
|
||||
nbResolved++;
|
||||
}
|
||||
if (q.closed) {
|
||||
nbClosed++;
|
||||
}
|
||||
})
|
||||
$scope.queriesNSolved = queries.length - nbResolved
|
||||
$scope.queriesNClosed = queries.length - nbClosed
|
||||
})
|
||||
$scope.fields = ["state", "subject", "user", "creation"];
|
||||
$scope.namedFields = {
|
||||
"state": "État",
|
||||
|
|
|
|||
|
|
@ -1,25 +1,56 @@
|
|||
<div class="jumbotron text-light bg-dark">
|
||||
<h1 class="display-5">Interface QA du challenge</h1>
|
||||
<div class="jumbotron">
|
||||
<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-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]">
|
||||
Commenté <span ng-if="!exo_done[todo.id_exercice] || exo_done[todo.id_exercice] != 'solved'">mais pas testé</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ mytheme.name }}
|
||||
</td>
|
||||
<td>
|
||||
{{ myexercice.title }}
|
||||
</td>
|
||||
</tr>
|
||||
<div class="col-6" ng-controller="ToDoController">
|
||||
<h3>Challenges à valider</h3>
|
||||
<table class="table table-stripped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Avancement</th>
|
||||
<th>Scénario</th>
|
||||
<th>Défi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="todo in todos" ng-controller="MyTodoExerciceController" ng-class="{'text-light': !tododone[todo.id_exercice] && !exo_done[todo.id_exercice], 'table-dark': !tododone[todo.id_exercice] && !exo_done[todo.id_exercice], 'table-warning': !tododone[todo.id_exercice] && exo_done[todo.id_exercice] == 'access', 'table-info': !tododone[todo.id_exercice] && (exo_done[todo.id_exercice] == 'tried' || exo_done[todo.id_exercice] == 'solved'), 'table-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]">
|
||||
Commenté <span ng-if="!exo_done[todo.id_exercice] || exo_done[todo.id_exercice] != 'solved'">mais pas testé</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ mytheme.name }}
|
||||
</td>
|
||||
<td>
|
||||
{{ myexercice.title }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-6" ng-controller="MyExercicesController">
|
||||
<h3>Vos challenges</h3>
|
||||
<table class="table table-stripped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Défi</th>
|
||||
<th>Requêtes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="todo in my_exercices" ng-controller="ExerciceQAController" ng-class="{'table-success': queries.length > 0, 'table-warning': queriesNSolved > 0}" ng-click="show(todo.id_exercice)">
|
||||
<td ng-controller="MyTodoExerciceController">
|
||||
<span ng-if="mytheme.name">{{ mytheme.name }} –</span>
|
||||
{{ myexercice.title }}
|
||||
</td>
|
||||
<td>
|
||||
{{ queriesNSolved }} / {{ queriesNClosed }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Reference in a new issue