Commit d0649a9e2368447e6f3dbbf7d573dceca7c9bc35

Authored by Geoffrey PREUD'HOMME
1 parent d9dcc2ef

Gestion des non étudiants

app/routes/ApiRtes.js
... ... @@ -136,11 +136,9 @@ sessionData = function (session, cb) {
136 136 if (err) {
137 137 cb(err);
138 138 } else {
139   - session.nom = res[0].nom;
140   - session.section = res[0].section;
  139 + for (var attrname in res[0]) { session[attrname] = res[0][attrname]; }
141 140 session.membre = res[1];
142 141 session.bureau = res[2];
143   - // TODO session.personnel
144 142 cb(null, session);
145 143 }
146 144 });
... ... @@ -258,26 +256,21 @@ api.get('/ninfo', reqAuth, function(req, res) {
258 256 NinfoServ.list(function (err, participants) {
259 257 async.reduce(NinfoServ.equipes, {}, function(memo, nomEquipe, cb) {
260 258 async.filter(participants, function concerne(participant, cbf) {
261   - console.log(270);
262 259 cbf(participant.equipe == nomEquipe);
263 260 }, function addInfos(membres) {
264   - console.log(272, membres);
265 261 async.map(membres, function (membre, cba) {
266   - console.log(274, membre);
267 262 async.parallel([function(cbp) {
268   - PolyUserServ.grabInfos(membre.login, cbp);
  263 + PolyUserServ.get(membre.login, cbp);
269 264 }, function(cbp) {
270 265 NinfoServ.simpleData(membre, cbp);
271 266 }], function(err, results) {
272 267 var membreFinal = results[0];
273 268 membreFinal.equipe = results[1].equipe;
274 269 membreFinal.comment = results[1].comment;
275   - console.log(276, membreFinal);
276 270 cba(null, membreFinal);
277 271 });
278 272 }, function (err, membres) {
279 273 memo[nomEquipe] = membres;
280   - console.log(278, memo);
281 274 cb(null, memo);
282 275 });
283 276 });
... ...
app/services/PolyUserServ.js
... ... @@ -85,9 +85,22 @@ var PolyUserServ = module.exports = {
85 85 if (err) {
86 86 cb(err);
87 87 } else {
  88 + var nom = (passwd && passwd.GECOS) ? passwd.GECOS : login.toUpperCase();
  89 + var section = (group && group.name) ? group.name.toUpperCase() : ((passwd && passwd.GID) ? passwd.GID : 'Inconnu');
  90 + var ancien = !!section.match("[0-9]{4}");
  91 + var enseignant = !!section.match("ENS$");
  92 + var personnel = enseignant;
  93 + var etudiant = !personnel;
  94 + var enCours = etudiant && !ancien;
88 95 cb(null, {
89   - nom: (passwd && passwd.GECOS) ? passwd.GECOS : login.toUpperCase(),
90   - section: (group && group.name) ? group.name.toUpperCase() : ((passwd && passwd.GID) ? passwd.GID : 'Inconnu')
  96 + nom: nom,
  97 + prenom: nom.split(' ')[0],
  98 + section: section,
  99 + ancien: ancien,
  100 + enseignant: enseignant,
  101 + personnel: personnel,
  102 + etudiant: etudiant,
  103 + enCours: enCours
91 104 });
92 105 }
93 106 });
... ...
public/js/controllers/NinfoCtrl.js
... ... @@ -6,25 +6,31 @@ angular.module('NinfoCtrl', ['SessionsServ', 'ApiServ', 'NotifyServ'])
6 6 $scope.session = SessionServ.cur;
7 7 SessionServ.onChange(function () {
8 8 $scope.session = SessionServ.cur;
  9 + actualiser();
9 10 });
  11 + actualiser();
10 12  
11   - if ($scope.session) {
12   - ApiServ("récupération des préférence Nuit de l'Info", 'get', 'profile/ninfo', null, function (err, ninfo) {
13   - if (!err)
14   - $scope.ninfo = ninfo;
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   - });
  13 + function actualiser() {
  14 + if ($scope.session) {
  15 + ApiServ("récupération des préférence Nuit de l'Info", 'get', 'profile/ninfo', null, function (err, ninfo) {
  16 + if (!err)
  17 + $scope.ninfo = ninfo;
  18 + });
  19 + ApiServ("récupération de la liste des participants à Nuit de l'Info", 'get', 'ninfo', null, function (err, equipes) {
  20 + if (!err)
  21 + $scope.equipes = equipes;
  22 + });
  23 + }
20 24 }
21 25  
22 26 $scope.save = function () {
23 27 var not = NotifyServ.promise("Sauvegarde...");
24 28 $scope.saving = true;
25 29 ApiServ("sauvegarde des préférences Nuit de l'Info", 'put', 'profile/ninfo', $scope.ninfo, function (err, membre) {
26   - if (!err)
  30 + if (!err) {
  31 + actualiser();
27 32 not.success("Sauvegardé !");
  33 + }
28 34 $scope.saving = false;
29 35 });
30 36 };
... ...
public/views/ninfo.html
... ... @@ -31,7 +31,7 @@
31 31  
32 32 <div ng-show="session">
33 33 <h2>Je souhaite participer à la Nuit de l'Info</h2>
34   - <form ng-hide="ninfo.equipe == 'ima5'">
  34 + <form ng-show="session.enCours && 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">
37 37 <label for="equipe">Dans quelle équipe souhaites-tu participer ?</label><br/>
... ... @@ -47,9 +47,16 @@
47 47 </div>
48 48 <button type="submit" ladda="saving" class="btn btn-primary" ng-click="save()">Enregistrer les préférences</button>
49 49 </form>
  50 +
50 51 <p ng-show="ninfo.equipe == 'ima5'">
51 52 Tu es déjà inscrit dans l'équipe des IMA5 (référent : <a href="mailto:jwasilew@polytech-lille.net">Jean Wasilewski</a>) ! Enjoy ;)
52 53 </p>
  54 +
  55 + <p ng-hide="session.enCours">
  56 + Seuls les étudiants avec une année en cours peuvent participer. Vous ne pouvez donc pas vous inscrire.<br/>
  57 + Si vous pensez que c'est une erreur, merci d'envoyer <a href="mailto:cinforma@polytech-lille.net">un mail au Club Info</a>.
  58 + </p>
  59 +
53 60 <h2>Participants à la Nuit de l'Info</h2>
54 61 <h3>Équipe Informatiquement Vôtre <span class="badge">{{ equipes.ci.length }}</span></h3>
55 62 <div class="panel panel-default" ng-repeat="membre in equipes.ci">
... ...