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,15 +246,6 @@ api.delete('/membres/:_id', reqBureau, getSubject(MembresServ), delSubject(Membr | ||
246 | // Obtenir les préférences | 246 | // Obtenir les préférences |
247 | api.get('/profile/ninfo', reqAuth, addLogin, function(req, res) { | 247 | api.get('/profile/ninfo', reqAuth, addLogin, function(req, res) { |
248 | NinfoServ.getLogin(req.body.login, function(err, ninfo) { | 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 | NinfoServ.simpleData(ninfo, giveBack(res, 200)); | 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,6 +253,39 @@ api.get('/profile/ninfo', reqAuth, addLogin, function(req, res) { | ||
262 | // Mettre à jour les préférences | 253 | // Mettre à jour les préférences |
263 | api.put('/profile/ninfo', reqAuth, addLogin, assertSubject(NinfoServ), addSubject(NinfoServ)); | 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 | // Dossiers | 290 | // Dossiers |
267 | 291 |
app/services/NinfoServ.js
@@ -6,7 +6,7 @@ var NinfoServ = module.exports = { | @@ -6,7 +6,7 @@ var NinfoServ = module.exports = { | ||
6 | 6 | ||
7 | equipes: ['nope', 'ci', 'imagis', 'ima5'], | 7 | equipes: ['nope', 'ci', 'imagis', 'ima5'], |
8 | 8 | ||
9 | - simple: ['equipe', 'comment'], | 9 | + simple: ['login', 'equipe', 'comment'], |
10 | 10 | ||
11 | simpleData: function (ninfoD, cb) { | 11 | simpleData: function (ninfoD, cb) { |
12 | var ninfo = {}; | 12 | var ninfo = {}; |
@@ -42,6 +42,10 @@ var NinfoServ = module.exports = { | @@ -42,6 +42,10 @@ var NinfoServ = module.exports = { | ||
42 | ninfo.comment = data.comment; | 42 | ninfo.comment = data.comment; |
43 | ninfo.save(cb); | 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,6 +13,10 @@ angular.module('NinfoCtrl', ['SessionsServ', 'ApiServ', 'NotifyServ']) | ||
13 | if (!err) | 13 | if (!err) |
14 | $scope.ninfo = ninfo; | 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 | $scope.save = function () { | 22 | $scope.save = function () { |
public/views/ninfo.html
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | </div> | 30 | </div> |
31 | 31 | ||
32 | <div ng-show="session"> | 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 | <form ng-hide="ninfo.equipe == 'ima5'"> | 34 | <form ng-hide="ninfo.equipe == 'ima5'"> |
35 | <p>Ça c'est cool ! On a juste deux petites questions à te poser.</p> | 35 | <p>Ça c'est cool ! On a juste deux petites questions à te poser.</p> |
36 | <div class="form-group"> | 36 | <div class="form-group"> |
@@ -49,6 +49,22 @@ | @@ -49,6 +49,22 @@ | ||
49 | <p ng-show="ninfo.equipe == 'ima5'"> | 49 | <p ng-show="ninfo.equipe == 'ima5'"> |
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 ;) | 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 | </p> | 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 | </div> | 68 | </div> |
53 | <br/> | 69 | <br/> |
54 | </div> | 70 | </div> |