*/
abstract class AbstractEliotController {
- CsvExportService csvExportService
-
@SuppressWarnings('GrailsStatelessService')
GrailsApplication grailsApplication
+ CsvExportService csvExportService
EliotDroitsService eliotDroitsService
/**
package org.lilie.services.eliot.absences
-import org.lilie.services.eliot.annuaire.TypeStructureEnum
import org.lilie.services.eliot.scolarite.Etablissement
import org.lilie.services.eliot.scolarite.anneescolaire.AnneeScolaireService
-import org.lilie.services.eliot.absences.page.Page
import org.lilie.services.eliot.menu.MenuInfo
import org.lilie.services.eliot.AbstractEliotController
-import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.LieuIncidentService
-import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.AbsencesTypeIncidentService
-import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.PartenaireAPrevenirService
-import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.QualiteProtagonisteService
import java.text.SimpleDateFormat
-import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.AbsencesTypePunitionService
-import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.AbsencesTypeSanctionService
import org.lilie.services.eliot.parametrages.motifs.MotifService
-import org.lilie.services.eliot.absences.consultation.ConsultationService
import org.lilie.services.eliot.scolarite.Personne
-import org.lilie.services.eliot.scolarite.Calendrier
-import org.lilie.services.eliot.scolarite.personne.LocalPersonneService
-import org.lilie.services.eliot.securite.impl.Autorite
-import org.lilie.services.eliot.parametrages.calendrier.CalendrierSessionService
-import org.lilie.services.eliot.CodeComparator
import org.lilie.services.eliot.scolarite.etablissement.PreferencesEtablissementAbsencesService
import org.lilie.services.eliot.scolarite.personne.PersonneAnnuaireService
import org.lilie.services.eliot.applications.absences.BasicCriteresRecherche
import org.lilie.services.eliot.urllabel.UrlLabelInfo
import org.lilie.services.eliot.absences.breadcrumbs.MenuAideAbsencesService
import org.lilie.services.eliot.urllabel.aide.AideItemInfo
-import grails.converters.JSON
import org.lilie.services.eliot.menu.MenuService
import org.lilie.services.eliot.menu.MenuApplication
import org.lilie.services.eliot.absences.menu.description.MenuEntete
import org.lilie.services.eliot.absences.menu.description.MenuSousMenu
import org.lilie.services.eliot.absences.securite.DroitsService
-import org.lilie.services.eliot.scolarite.StructureEnseignement
import org.lilie.services.eliot.constantes.ConstDate
+import org.lilie.services.eliot.CodeComparator
/**
* Classe ancêtre embarquant des traitements génériques à tous les controleurs d'absences
abstract class AbstractAbsencesController extends AbstractEliotController {
MenuService menuService
+ MenuAideAbsencesService menuAideAbsencesService
PreferencesEtablissementAbsencesService preferencesEtablissementAbsencesService
PreferencesUtilisateurAbsencesSessionService preferencesUtilisateurAbsencesSessionService
AnneeScolaireService anneeScolaireService
- LieuIncidentService lieuIncidentService
- AbsencesTypeIncidentService absencesTypeIncidentService
- PartenaireAPrevenirService partenaireAPrevenirService
- QualiteProtagonisteService qualiteProtagonisteService
- AbsencesTypePunitionService absencesTypePunitionService
- AbsencesTypeSanctionService absencesTypeSanctionService
MotifService motifService
- ConsultationService consultationService
- LocalPersonneService localPersonneService
- CalendrierSessionService calendrierSessionService
PersonneAnnuaireService personneAnnuaireService
- MenuAideAbsencesService menuAideAbsencesService
DroitsService droitsService
CodeComparator comparateurLogique = new CodeComparator()
- final static Long VALEUR_TOUS = -1
-
+ public static final String FORMAT_DATE = 'absences.format.dateJJMMAAAA'
+ final static Long VALEUR_TOUS = -1
private MenuApplication getMenuApplication() {
return breadCrumbsInfo
}
-/**
- * Retourne le dernier établissement utilisé par l'utilisateur courant
- * @return un Etablissement
- */
- protected Etablissement etablissementCourant() {
- (Etablissement) getSecuriteSession().etablissementCourant
- }
-
- /**
- * Retourne l'ensemble des lieux d'incidents sous la forme suivante
- * - id : identifiant du lieu
- * - libelle ; le libellé du lieu
- * @author bahj
- */
- protected List<Map> getAllLieuxIncident() {
- PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
- List<Map> resultats = parseDataForJSON(
- lieuIncidentService.getLieuxIncident(pref)
- )
-
- return resultats
- }
-
- /**
- * Retourne l'ensemble de qualité protagoniste sous la forme suivante:
- * - id : identifiant de la qualité protagoniste
- * - libelle : le libellé de la qualité
- * @author bahj
- */
- protected List<Map> getAllQualitesProtagoniste() {
- PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
- List<Map> resultats = parseDataForJSON(
- qualiteProtagonisteService.getQualitesProtagoniste(pref)
- )
-
- return resultats
- }
-
- /**
- * retourne l'ensemble de types d'incidences sous la forme suivante:
- * - id : identifiant du type d'incident
- * - libellé : le libellé du type de l'incident
- * @author bahj
- */
- protected List<Map> getAllTypesIncident() {
- PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
- List<Map> resultats = parseDataForJSON(
- absencesTypeIncidentService.getTypesIncident(pref)
- )
-
- return resultats
- }
-
- /**
- * retourne l'ensemble des partenaires à prévenir sous la forme suivante:
- * - id : identifiant du partenaire
- * - libelle : le libellé du partenaire
- * @author bahj
- */
- protected List<Map> getAllPartenairesAPrevenir() {
- PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
- List<Map> resultats = parseDataForJSON(
- partenaireAPrevenirService.getParteniresAPrevenir(pref)
- )
-
- return resultats
- }
-
- /**
- * retourne l'ensemble de types de punition sous la forme suivante:
- * - id : identifiant du partenaire
- * - libelle : le libellé du partenaire
- * @author bahj
- */
- protected List<Map> getAllTypesPunition() {
- PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
- List<Map> resultats = parseDataForJSON(
- absencesTypePunitionService.getTypesPunition(pref)
- )
- return resultats
- }
-
- /**
- * retourne l'ensemble de types de sanction sous la forme suivante:
- * - id : identifiant du partenaire
- * - libelle : le libellé du partenaire
- * @author bahj
- */
- protected List<Map> getAllTypesSanction() {
- PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
- List<Map> resultats = parseDataForJSON(
- absencesTypeSanctionService.getTypesSanction(pref)
- )
- return resultats
- }
-
protected List<Map> getAllMotifs(Boolean exclureMotifsNonModifables) {
List<Motif> motifs = motifService.getMotifsForPreferencesEtablissement(
getPreferencesEtablissementCourant(),
return listeMotifs
}
- /**
- * Retourne une liste de motifs sous la forme de maps contenant id et libelle
- * La liste peut-être filtrée sur une liste de groupe de motifs
- * @param listeGroupeMotifId : liste d'id de groupe de motifs pour filtrage
- * @return une liste de Map
- */
- protected List getMotifsForJSON(List<Motif> motifs) {
- def result = []
- motifs.each {
- Motif motif ->
- result << [id: motif.id, libelle: motif.libelle]
- }
- return result
- }
-
- protected Personne getPersonneForIdAutorite(Long id) {
- return localPersonneService.findPersonneByAutorite(
- Autorite.get(id)
- )
- }
-
/**
* Permet de parser des objets
* @author bahj
return formatHeure.format(date)
}
- /**
- * Parse une chaine du format dd/mm/yyyy,hh:mm en date
- * @author bahj
- */
- protected Date parseDateComplete(String dateComplete) {
- String parse = ConstDate.DATE_JJMMAAA +
- ',' +
- ConstDate.HEURE_HHMM
- SimpleDateFormat formatDate = new SimpleDateFormat(parse, Locale.FRANCE)
- return formatDate.parse(dateComplete)
- }
-
- /**
- * Parse une cahine du format dd/MM/yyyy en date
- * @author bahj
- */
- protected Date parseDate(String date) {
- SimpleDateFormat formatDate = new SimpleDateFormat(ConstDate.DATE_JJMMAAA, Locale.FRANCE)
- return formatDate.parse(date)
- }
-
-
/**
* Retourne la liste des enseignants de l'établissement courant
* @return une List de Maps contenant l'id et le nomAffichage de chaque
return result
}
- /**
- * Retourne la liste des jours de fermeture hebdomadaire
- * @return une List<String>
- */
- protected List<String> getListeJoursFermetureHebdo(PreferencesEtablissementAbsences pref) {
-
- Calendrier calendrier = calendrierSessionService.
- getCalendrierForEtablissement(pref.etablissement)
- List<String> result = []
- result << (calendrier.jourSemaineFerie % 7).toString()
- return result
-
- }
-
/**
* Traduction d'un message fournie par l'application
*/
return result
}
- protected Boolean traiteChangementEtablissement(Map params, Page page) {
- Boolean changeEtab = false
- if (params.etablissementId) {
- Long etablissementId = Long.parseLong(params.etablissementId)
- if (etablissementId != etablissementCourantId()) {
- changeEtab = true
- redirect(
- controller: 'application',
- action: 'changeEtablissement',
- params: [
- id: etablissementId,
- page: page,
- params: params as JSON
- ]
- )
- }
- }
- return changeEtab
- }
-
- protected List getAllClassesAccessibles() {
- List<StructureEnseignement> structures = droitsService.
- findAllStructureEnseignementAccessibles(
- securiteSession,
- etablissementCourant(),
- TypeStructureEnum.CLASSE
- )
-
- structures.sort {a, b -> comparateurLogique.compare(a.code, b.code)}
- return structures.collect { [id: it.id, libelle: it.code]}
- }
-
-
}
--- /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.absences
+
+import org.lilie.services.eliot.scolarite.StructureEnseignement
+import org.lilie.services.eliot.absences.page.Page
+import grails.converters.JSON
+import org.lilie.services.eliot.scolarite.Calendrier
+import java.text.SimpleDateFormat
+import org.lilie.services.eliot.constantes.ConstDate
+import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.AbsencesTypePunitionService
+import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.QualiteProtagonisteService
+import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.PartenaireAPrevenirService
+import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.AbsencesTypeIncidentService
+import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.LieuIncidentService
+import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.AbsencesTypeSanctionService
+import org.lilie.services.eliot.CodeComparator
+import org.lilie.services.eliot.scolarite.Personne
+import org.lilie.services.eliot.securite.impl.Autorite
+import org.lilie.services.eliot.parametrages.calendrier.CalendrierSessionService
+import org.lilie.services.eliot.scolarite.personne.LocalPersonneService
+
+/**
+ * Classe générique de controleur pour les pages Incident, punition, sanction
+ * @author othe
+ */
+class AbstractIncidentPunitionSanctionController extends AbstractAbsencesController {
+
+ LieuIncidentService lieuIncidentService
+ AbsencesTypeIncidentService absencesTypeIncidentService
+ PartenaireAPrevenirService partenaireAPrevenirService
+ QualiteProtagonisteService qualiteProtagonisteService
+ AbsencesTypePunitionService absencesTypePunitionService
+ AbsencesTypeSanctionService absencesTypeSanctionService
+ LocalPersonneService localPersonneService
+ CalendrierSessionService calendrierSessionService
+
+ protected Personne getPersonneForIdAutorite(Long id) {
+ return localPersonneService.findPersonneByAutorite(
+ Autorite.get(id)
+ )
+ }
+
+ /**
+ * Retourne la liste des jours de fermeture hebdomadaire
+ * @return une List<String>
+ */
+ protected List<String> getListeJoursFermetureHebdo(PreferencesEtablissementAbsences pref) {
+
+ Calendrier calendrier = calendrierSessionService.
+ getCalendrierForEtablissement(pref.etablissement)
+ List<String> result = []
+ result << (calendrier.jourSemaineFerie % 7).toString()
+ return result
+
+ }
+
+
+ protected List getAllClassesAccessibles() {
+ List<StructureEnseignement> structures = droitsService.
+ findAllStructureEnseignementAccessibles(
+ securiteSession,
+ etablissementCourant(),
+ org.lilie.services.eliot.annuaire.TypeStructureEnum.CLASSE
+ )
+
+ structures.sort {a, b -> comparateurLogique.compare(a.code, b.code)}
+ return structures.collect { [id: it.id, libelle: it.code]}
+ }
+
+ /**
+ * Parse une cahine du format dd/MM/yyyy en date
+ * @author bahj
+ */
+ protected Date parseDate(String date) {
+ SimpleDateFormat formatDate = new SimpleDateFormat(ConstDate.DATE_JJMMAAA, Locale.FRANCE)
+ return formatDate.parse(date)
+ }
+
+ /**
+ * Parse une chaine du format dd/mm/yyyy,hh:mm en date
+ * @author bahj
+ */
+ protected Date parseDateComplete(String dateComplete) {
+ String parse = ConstDate.DATE_JJMMAAA +
+ ',' +
+ ConstDate.HEURE_HHMM
+ SimpleDateFormat formatDate = new SimpleDateFormat(parse, Locale.FRANCE)
+ return formatDate.parse(dateComplete)
+ }
+
+ /**
+ * retourne l'ensemble de types de punition sous la forme suivante:
+ * - id : identifiant du partenaire
+ * - libelle : le libellé du partenaire
+ * @author bahj
+ */
+ protected List<Map> getAllTypesPunition() {
+ PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
+ List<Map> resultats = parseDataForJSON(
+ absencesTypePunitionService.getTypesPunition(pref)
+ )
+ return resultats
+ }
+
+ /**
+ * retourne l'ensemble de types de sanction sous la forme suivante:
+ * - id : identifiant du partenaire
+ * - libelle : le libellé du partenaire
+ * @author bahj
+ */
+ protected List<Map> getAllTypesSanction() {
+ PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
+ List<Map> resultats = parseDataForJSON(
+ absencesTypeSanctionService.getTypesSanction(pref)
+ )
+ return resultats
+ }
+
+ /**
+ * retourne l'ensemble des partenaires à prévenir sous la forme suivante:
+ * - id : identifiant du partenaire
+ * - libelle : le libellé du partenaire
+ * @author bahj
+ */
+ protected List<Map> getAllPartenairesAPrevenir() {
+ PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
+ List<Map> resultats = parseDataForJSON(
+ partenaireAPrevenirService.getParteniresAPrevenir(pref)
+ )
+
+ return resultats
+ }
+
+ /**
+ * retourne l'ensemble de types d'incidences sous la forme suivante:
+ * - id : identifiant du type d'incident
+ * - libellé : le libellé du type de l'incident
+ * @author bahj
+ */
+ protected List<Map> getAllTypesIncident() {
+ PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
+ List<Map> resultats = parseDataForJSON(
+ absencesTypeIncidentService.getTypesIncident(pref)
+ )
+
+ return resultats
+ }
+
+ /**
+ * Retourne l'ensemble de qualité protagoniste sous la forme suivante:
+ * - id : identifiant de la qualité protagoniste
+ * - libelle : le libellé de la qualité
+ * @author bahj
+ */
+ protected List<Map> getAllQualitesProtagoniste() {
+ PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
+ List<Map> resultats = parseDataForJSON(
+ qualiteProtagonisteService.getQualitesProtagoniste(pref)
+ )
+
+ return resultats
+ }
+
+ /**
+ * Retourne l'ensemble des lieux d'incidents sous la forme suivante
+ * - id : identifiant du lieu
+ * - libelle ; le libellé du lieu
+ * @author bahj
+ */
+ protected List<Map> getAllLieuxIncident() {
+ PreferencesEtablissementAbsences pref = getPreferencesEtablissementCourant()
+ List<Map> resultats = parseDataForJSON(
+ lieuIncidentService.getLieuxIncident(pref)
+ )
+
+ return resultats
+ }
+
+}
CalendrierService calendrierService
EleveAnnuaireService eleveAnnuaireService
AbsencesPreparationExportCSVService absencesPreparationExportCSVService
+ ConsultationService consultationService
def nbLignesParPages = ConfigurationHolder.config.eliot.
absences.bilan.nombreLignesParPage
)
}
- /**
- * @return une chaine contenant les id des motifs par defaut, séparés par
- * des virgules
- */
- private String getMotifIdsDefaut() {
- List<Motif> motifDefauts = motifService.findAllMotifForPriseEnCompteMotif(
- preferencesEtablissementCourant,
- PriseEnCompteMotif.STATS,
- false
- )
- return motifDefauts*.id.join(',')
- }
-
def departsIndex = {
verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_CONSULT_DIR)
// construction du modèle
return resultatConsultation
}
+ protected Boolean traiteChangementEtablissement(Map params, Page page) {
+ Boolean changeEtab = false
+ if (params.etablissementId) {
+ Long etablissementId = Long.parseLong(params.etablissementId)
+ if (etablissementId != etablissementCourantId()) {
+ changeEtab = true
+ redirect(
+ controller: 'application',
+ action: 'changeEtablissement',
+ params: [
+ id: etablissementId,
+ page: page,
+ params: params as JSON
+ ]
+ )
+ }
+ }
+ return changeEtab
+ }
+
+ /**
+ * @return une chaine contenant les id des motifs par defaut, séparés par
+ * des virgules
+ */
+ private String getMotifIdsDefaut() {
+ List<Motif> motifDefauts = motifService.findAllMotifForPriseEnCompteMotif(
+ preferencesEtablissementCourant,
+ PriseEnCompteMotif.STATS,
+ false
+ )
+ return motifDefauts*.id.join(',')
+ }
+
}
package org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction
import org.lilie.services.eliot.absences.page.Page
-import org.lilie.services.eliot.absences.AbstractAbsencesController
import grails.converters.JSON
import org.lilie.services.eliot.absences.PreferencesEtablissementAbsences
import org.lilie.services.eliot.absences.parametrage.incidentpunitionsanction.exceptions.LibelleLongException
import org.lilie.services.eliot.urllabel.breadcrumbs.BreadCrumbsItemInfo
import org.lilie.services.eliot.urllabel.UrlLabelInfo
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
+import org.lilie.services.eliot.absences.AbstractIncidentPunitionSanctionController
/**
* @author bahj
* @author ywan
*/
@SuppressWarnings('ReturnNullFromCatchBlock')
-class ParametrageIncPunSanController extends AbstractAbsencesController {
+class ParametrageIncPunSanController extends AbstractIncidentPunitionSanctionController {
def index = {
verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_PARAM_INC_PUN_SAN)
import org.lilie.services.eliot.absences.publipostage.PublipostageDiffereService
import org.lilie.services.eliot.impression.constantes.TemplateTypeFonctionnaliteEnum
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
+import org.lilie.services.eliot.absences.Motif
+import org.lilie.services.eliot.temps.DateUtil
class PublipostageController extends AbstractConsultationController {
+
CalendrierService calendrierService
LocalStructureEnseignementService localStructureEnseignementService
PublipostageAbsencesService publipostageAbsencesService
return result
}
+ /**
+ * Retourne une liste de motifs sous la forme de maps contenant id et libelle
+ * La liste peut-être filtrée sur une liste de groupe de motifs
+ * @param listeGroupeMotifId : liste d'id de groupe de motifs pour filtrage
+ * @return une liste de Map
+ */
+ protected List getMotifsForJSON(List<Motif> motifs) {
+ def result = []
+ motifs.each {
+ Motif motif ->
+ result << [id: motif.id, libelle: motif.libelle]
+ }
+ return result
+ }
+
+/**
+ * Récupère les paramètres de dates
+ * @param params : les paramètres de la requêtes
+ * @return un BilanCriteria complété avec les dates
+ * @author jbui
+ */
+ protected void parseBilanCriteriaDates(Map params, BasicCriteresRecherche criteria) {
+ String dateDebut = params.dateDebut
+ String dateFin = params.dateFin
+
+ criteria.dateDebut.setTime(
+ DateUtil.parseDateJavascript(dateDebut)
+ )
+
+ criteria.dateFin.setTime(
+ DateUtil.parseDateJavascript(dateFin)
+ )
+
+ DateUtil.setFinJour(criteria.dateFin)
+ }
+
}
import org.lilie.services.eliot.urllabel.breadcrumbs.BreadCrumbsItemInfo
import org.lilie.services.eliot.urllabel.UrlLabelInfo
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
+import org.lilie.services.eliot.AbstractEliotController
/**
* @author jbui
* @author ywan
*/
-class SuiviImpressionController extends AbstractAbsencesController {
+class SuiviImpressionController extends AbstractEliotController {
DemandeTraitementService demandeTraitementService
PublipostageStockageFichierService publipostageStockageFichierService
Calendrier calendrier =
calendrierService.getCalendrierForEtablissement(
- preferencesEtablissementCourant.etablissement
+ etablissementCourant()
)
SimpleDateFormat sdf = new SimpleDateFormat('dd/MM/yyyy', Locale.FRANCE)
import org.lilie.services.eliot.securite.impl.Autorite
import java.util.regex.Pattern
+import org.lilie.services.eliot.scolarite.personne.LocalPersonneService
class SaisieController extends AbstractAbsencesController {
AppelEleveMarshallerService appelEleveMarshallerService
AppelSaisieAccueilService appelSaisieAccueilService
CalendrierService calendrierService
+ LocalPersonneService localPersonneService
private static final String OPTION_SAISIE = 'optionSaisie'
private static final String ID_ELEVE = 'eleveId'
package org.lilie.services.eliot.absences.saisie.demipensioninternat
-import org.lilie.services.eliot.absences.AbstractAbsencesController
import org.lilie.services.eliot.absences.page.Page
import org.lilie.services.eliot.scolarite.Calendrier
import grails.converters.JSON
import org.lilie.services.eliot.urllabel.breadcrumbs.BreadCrumbsItemInfo
import org.lilie.services.eliot.urllabel.UrlLabelInfo
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
+import org.lilie.services.eliot.absences.AbstractIncidentPunitionSanctionController
/**
* @author ywan
* @author bahj
*/
-class SaisieDemiPensionInternatController extends AbstractAbsencesController {
+
+class SaisieDemiPensionInternatController extends AbstractIncidentPunitionSanctionController {
CalendrierService calendrierService
LocalStructureEnseignementService localStructureEnseignementService
import org.lilie.services.eliot.scolarite.Personne
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
import org.lilie.services.eliot.constantes.ConstController
+import org.lilie.services.eliot.absences.AbstractIncidentPunitionSanctionController
/**
* @author bahj
* @author ywan
* @author jbui
*/
-class SaisieIncidentController extends AbstractAbsencesController {
+class SaisieIncidentController extends AbstractIncidentPunitionSanctionController {
AbsencesIncidentService absencesIncidentService
CalendrierService calendrierService
import org.lilie.services.eliot.scolarite.Calendrier
import grails.converters.JSON
import org.lilie.services.eliot.absences.page.Page
-import org.lilie.services.eliot.absences.AbstractAbsencesController
import org.lilie.services.eliot.parametrages.calendrier.CalendrierService
import org.lilie.services.eliot.absences.saisie.discipline.incident.ProfilCenseur
import org.codehaus.groovy.grails.commons.ConfigurationHolder
import org.lilie.services.eliot.scolarite.StructureEnseignement
-
import java.text.SimpleDateFormat
import org.lilie.services.eliot.absences.saisie.discipline.punition.exceptions.PunitionException
import org.lilie.services.eliot.absences.TypePunition
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
import org.lilie.services.eliot.constantes.ConstController
import org.lilie.services.eliot.constantes.ConstDate
+import org.lilie.services.eliot.absences.AbstractIncidentPunitionSanctionController
/**
* @author ywan
* @author bahj
*/
-class SaisiePunitionController extends AbstractAbsencesController {
+class SaisiePunitionController extends AbstractIncidentPunitionSanctionController {
CalendrierService calendrierService
LocalStructureEnseignementService localStructureEnseignementService
package org.lilie.services.eliot.absences.saisie.discipline.sanction
import groovy.time.TimeCategory
-import org.lilie.services.eliot.absences.AbstractAbsencesController
import org.lilie.services.eliot.absences.page.Page
import org.lilie.services.eliot.absences.PreferencesEtablissementAbsences
import org.lilie.services.eliot.scolarite.Calendrier
import org.lilie.services.eliot.absences.Sanction
import org.lilie.services.eliot.scolarite.StructureEnseignement
import org.lilie.services.eliot.scolarite.structureenseignement.LocalStructureEnseignementService
-
import java.text.SimpleDateFormat
import org.lilie.services.eliot.securite.impl.Autorite
import org.lilie.services.eliot.absences.TypeSanction
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
import org.lilie.services.eliot.constantes.ConstController
import org.lilie.services.eliot.constantes.ConstDate
+import org.lilie.services.eliot.absences.AbstractIncidentPunitionSanctionController
/**
* @author bahj
*/
-class SaisieSanctionController extends AbstractAbsencesController {
+class SaisieSanctionController extends AbstractIncidentPunitionSanctionController {
CalendrierService calendrierService
AbsencesSanctionService absencesSanctionService
import org.lilie.services.eliot.absences.PreferencesEtablissementAbsences
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
import org.lilie.services.eliot.constantes.ConstDate
+import org.lilie.services.eliot.CodeComparator
/**
* @author ywan
* @author jbui
* @author bahj
*/
-
class SaisieHebdomadaireController extends AbstractAbsencesController {
CalendrierService calendrierService
import org.lilie.services.eliot.StringUtils
import org.lilie.services.eliot.absences.ScolariteService
import org.lilie.services.eliot.absences.AbsencesFonctionnalite
+import org.lilie.services.eliot.CodeComparator
class JsonScolariteController extends AbstractAbsencesController {