--- /dev/null
+/*
+ * Copyright © FYLAB and the Conseil Régional d'Île-de-France, 2009
+ * This file is part of L'Interface Libre et Interactive de l'Enseignement (Lilie).
+ *
+ * Lilie is free software. You can redistribute it and/or modify since
+ * you respect the terms of either (at least one of the both license) :
+ * - under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ * - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ * License, or any later version
+ *
+ * There are special exceptions to the terms and conditions of the
+ * licenses as they are applied to this software. View the full text of
+ * the exception in file LICENSE.txt in the directory of this software
+ * distribution.
+ *
+ * Lilie is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * Licenses for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the CeCILL-C along with Lilie. If not, see :
+ * <http://www.gnu.org/licenses/> and
+ * <http://www.cecill.info/licences.fr.html>.
+ */
+
+package org.lilie.services.eliot.notes.saisie
+
+import grails.converters.JSON
+import org.lilie.services.eliot.scolarite.Periode
+import org.lilie.services.eliot.notes.archive.EleveArchiveService
+import org.lilie.services.eliot.notes.archive.EleveArchive
+import java.text.SimpleDateFormat
+import org.lilie.services.eliot.notes.AbstractNotesController
+import org.lilie.services.eliot.notes.NotesFonctionnalite
+
+/*
+ * Gère les élèves qui n'ont pas de notes ni d'appréciations et qui ont changé de
+ * classe ou qui sont sortis de l'établissement
+ */
+class EleveArchiveController extends AbstractNotesController {
+
+ EleveArchiveService eleveArchiveService
+
+ def getElevesSortisSansDonnees = {
+ Map resultats = tryCatch{
+ Periode periode = Periode.get(params.periodeId)
+
+ verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_SAISIE_SYNTH)
+ verifieDroitAccesObjetDomaine(periode.classe)
+
+ List<EleveArchive> eleveArchives =
+ eleveArchiveService.findAllEleveArchiveSansDonnees(periode)
+
+ SimpleDateFormat sdf = new SimpleDateFormat('dd/MM/yyyy')
+
+ List eleveArchiveMaps = eleveArchives.collect {
+ [
+ id: it.eleve.id,
+ nomPrenom: it.eleve.nomAffichage(),
+ classe: it.actif ? it.classe.code : "(${it.classe.code})",
+ dateSortie: sdf.format(it.dateSortie),
+ affiche: it.affiche
+ ]
+ }
+
+ [eleveArchives: eleveArchiveMaps]
+ }
+
+ render resultats as JSON
+ }
+
+
+ def modifieAffichageElevesSortisSansDonnees = {
+ Map resultats = tryCatch{
+ Periode periode = Periode.get(params.periodeId)
+
+ verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_SAISIE_SYNTH)
+ verifieDroitAccesObjetDomaine(periode.classe)
+
+ Map mapEleveIdAffiche = [:]
+
+ JSON.parse((String) params.elevesModifies).each {
+ Long eleveId = (Long) it.id.toLong()
+ Boolean affiche = Boolean.valueOf((String)it.affiche)
+ mapEleveIdAffiche.put(eleveId, affiche)
+ }
+
+ eleveArchiveService.modifieAffichageEleves(periode, mapEleveIdAffiche)
+ }
+
+ render resultats as JSON
+ }
+}