Commit d0649a9e2368447e6f3dbbf7d573dceca7c9bc35
1 parent
d9dcc2ef
Gestion des non étudiants
Showing
4 changed files
with
41 additions
and
22 deletions
Show diff stats
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"> | ... | ... |