Commit 446e0b330d72cf780d75e1d68a26bc7cb089be8c
1 parent
6106436c
Affichage des participants à la Nuit de l'Info
Showing
4 changed files
with
60 additions
and
12 deletions
Show diff stats
app/routes/ApiRtes.js
... | ... | @@ -246,15 +246,6 @@ api.delete('/membres/:_id', reqBureau, getSubject(MembresServ), delSubject(Membr |
246 | 246 | // Obtenir les préférences |
247 | 247 | api.get('/profile/ninfo', reqAuth, addLogin, function(req, res) { |
248 | 248 | NinfoServ.getLogin(req.body.login, function(err, ninfo) { |
249 | - console.log(err); | |
250 | - if (err) { // TODO Tester si on peut pas créer un objet directement et | |
251 | - // récupérer les valeurs par défaut de la BDD | |
252 | - ninfo = { | |
253 | - equipe: 'nope', | |
254 | - comment: '' | |
255 | - }; | |
256 | - } | |
257 | - console.log(ninfo); | |
258 | 249 | NinfoServ.simpleData(ninfo, giveBack(res, 200)); |
259 | 250 | }); |
260 | 251 | }); |
... | ... | @@ -262,6 +253,39 @@ api.get('/profile/ninfo', reqAuth, addLogin, function(req, res) { |
262 | 253 | // Mettre à jour les préférences |
263 | 254 | api.put('/profile/ninfo', reqAuth, addLogin, assertSubject(NinfoServ), addSubject(NinfoServ)); |
264 | 255 | |
256 | +// Lister les participants | |
257 | +api.get('/ninfo', reqAuth, function(req, res) { | |
258 | + NinfoServ.list(function (err, participants) { | |
259 | + async.reduce(NinfoServ.equipes, {}, function(memo, nomEquipe, cb) { | |
260 | + async.filter(participants, function concerne(participant, cbf) { | |
261 | + console.log(270); | |
262 | + cbf(participant.equipe == nomEquipe); | |
263 | + }, function addInfos(membres) { | |
264 | + console.log(272, membres); | |
265 | + async.map(membres, function (membre, cba) { | |
266 | + console.log(274, membre); | |
267 | + async.parallel([function(cbp) { | |
268 | + PolyUserServ.grabInfos(membre.login, cbp); | |
269 | + }, function(cbp) { | |
270 | + NinfoServ.simpleData(membre, cbp); | |
271 | + }], function(err, results) { | |
272 | + var membreFinal = results[0]; | |
273 | + membreFinal.equipe = results[1].equipe; | |
274 | + membreFinal.comment = results[1].comment; | |
275 | + console.log(276, membreFinal); | |
276 | + cba(null, membreFinal); | |
277 | + }); | |
278 | + }, function (err, membres) { | |
279 | + memo[nomEquipe] = membres; | |
280 | + console.log(278, memo); | |
281 | + cb(null, memo); | |
282 | + }); | |
283 | + }); | |
284 | + }, function gb(err, data) { | |
285 | + res.status(200).json(data); | |
286 | + }); | |
287 | + }); | |
288 | +}); | |
265 | 289 | |
266 | 290 | // Dossiers |
267 | 291 | ... | ... |
app/services/NinfoServ.js
... | ... | @@ -6,7 +6,7 @@ var NinfoServ = module.exports = { |
6 | 6 | |
7 | 7 | equipes: ['nope', 'ci', 'imagis', 'ima5'], |
8 | 8 | |
9 | - simple: ['equipe', 'comment'], | |
9 | + simple: ['login', 'equipe', 'comment'], | |
10 | 10 | |
11 | 11 | simpleData: function (ninfoD, cb) { |
12 | 12 | var ninfo = {}; |
... | ... | @@ -42,6 +42,10 @@ var NinfoServ = module.exports = { |
42 | 42 | ninfo.comment = data.comment; |
43 | 43 | ninfo.save(cb); |
44 | 44 | }); |
45 | - } | |
45 | + }, | |
46 | + | |
47 | + list: function (cb) { | |
48 | + NinfoModl.find({}, cb); | |
49 | + }, | |
46 | 50 | |
47 | 51 | }; | ... | ... |
public/js/controllers/NinfoCtrl.js
... | ... | @@ -13,6 +13,10 @@ angular.module('NinfoCtrl', ['SessionsServ', 'ApiServ', 'NotifyServ']) |
13 | 13 | if (!err) |
14 | 14 | $scope.ninfo = ninfo; |
15 | 15 | }); |
16 | + ApiServ("récupération de la liste des participants à Nuit de l'Info", 'get', 'ninfo', null, function (err, equipes) { | |
17 | + if (!err) | |
18 | + $scope.equipes = equipes; | |
19 | + }); | |
16 | 20 | } |
17 | 21 | |
18 | 22 | $scope.save = function () { | ... | ... |
public/views/ninfo.html
... | ... | @@ -30,7 +30,7 @@ |
30 | 30 | </div> |
31 | 31 | |
32 | 32 | <div ng-show="session"> |
33 | - <h2>Je souhaite participer à la nuit de l'info</h2> | |
33 | + <h2>Je souhaite participer à la Nuit de l'Info</h2> | |
34 | 34 | <form ng-hide="ninfo.equipe == 'ima5'"> |
35 | 35 | <p>Ça c'est cool ! On a juste deux petites questions à te poser.</p> |
36 | 36 | <div class="form-group"> |
... | ... | @@ -49,6 +49,22 @@ |
49 | 49 | <p ng-show="ninfo.equipe == 'ima5'"> |
50 | 50 | Tu es déjà inscrit dans l'équipe des IMA5 (référent : <a href="mailto:jwasilew@polytech-lille.net">Jean Wasilewski</a>) ! Enjoy ;) |
51 | 51 | </p> |
52 | + <h2>Participants à la Nuit de l'Info</h2> | |
53 | + <h3>Équipe Informatiquement Vôtre <span class="badge">{{ equipes.ci.length }}</span></h3> | |
54 | + <div class="panel panel-default" ng-repeat="membre in equipes.ci"> | |
55 | + <div class="panel-heading"><strong>{{ membre.nom }}</strong> ({{ membre.section }})</div> | |
56 | + <div class="panel-body" ng-show="membre.comment">{{ membre.comment }}</div> | |
57 | + </div> | |
58 | + <h3>Équipe 404 Brain Not Found <span class="badge">{{ equipes.imagis.length }}</span></h3> | |
59 | + <div class="panel panel-default" ng-repeat="membre in equipes.imagis"> | |
60 | + <div class="panel-heading"><strong>{{ membre.nom }}</strong> ({{ membre.section }})</div> | |
61 | + <div class="panel-body" ng-show="membre.comment">{{ membre.comment }}</div> | |
62 | + </div> | |
63 | + <h3>Équipe IMA5 (fermée) <span class="badge">{{ equipes.ima5.length }}</span></h3> | |
64 | + <div class="panel panel-default" ng-repeat="membre in equipes.ima5"> | |
65 | + <div class="panel-heading"><strong>{{ membre.nom }}</strong> ({{ membre.section }})</div> | |
66 | + <div class="panel-body" ng-show="membre.comment">{{ membre.comment }}</div> | |
67 | + </div> | |
52 | 68 | </div> |
53 | 69 | <br/> |
54 | 70 | </div> | ... | ... |