Commit 446e0b330d72cf780d75e1d68a26bc7cb089be8c

Authored by Geoffrey PREUD'HOMME
1 parent 6106436c

Affichage des participants à la Nuit de l'Info

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>