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 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>
... ...