import org.lilie.services.eliot.notes.AbstractNotesController
import org.lilie.services.eliot.notes.page.Page
-import org.lilie.services.eliot.notes.NotesDroitService
import org.lilie.services.eliot.droits.Action
import org.lilie.services.eliot.scolarite.StructureEnseignement
import org.lilie.services.eliot.notes.scolarite.NotesStructureEnseignementService
import org.lilie.services.eliot.notes.scolarite.NotesPersonneService
import org.lilie.services.eliot.impression.TemplateDocument
import org.lilie.services.eliot.impression.donnees.eleve.EleveImpressionInfo
-import org.lilie.services.eliot.impression.ImpressionRequetageService
-import org.lilie.services.eliot.impression.ImpressionMoteurService
import org.lilie.services.eliot.notes.impression.ImpressionRequetageBulletinReleveService
import org.lilie.services.eliot.impression.donnees.eleve.SelectionAdresseResponsableEnum
-import org.lilie.services.eliot.notes.NotesFonction
-import org.lilie.services.eliot.annuaire.FonctionEnum
import org.lilie.services.eliot.notes.exception.PeriodeNonPublieException
import org.lilie.services.eliot.urllabel.breadcrumbs.BreadCrumbsItemInfo
import org.lilie.services.eliot.annuaire.SecuriteSession
import org.lilie.services.eliot.notes.NotesFonctionnalite
-import org.lilie.services.eliot.scolarite.Etablissement
/**
* @author bper
*/
class ConsultationReleveController extends AbstractNotesController {
- NotesDroitService notesDroitService
NotesStructureEnseignementService notesStructureEnseignementService
ReleveService releveService
NotesPersonneService notesPersonneService
ImpressionRequetageBulletinReleveService impressionRequetageBulletinReleveService
- ImpressionMoteurService impressionMoteurService
/**
* @author bper
*/
def index = {
+ verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_CONSULT_RELEVE_BULLETIN)
+
if (traiteChangementEtablissement(params, Page.CONSULTATION_RELEVE_DE_NOTES)) {
return
}
- Etablissement etablissement = etablissementCourant()
-
- Closure verifieDroitFonctionsNonParametrables = {
- verifieAutorisation(securiteSession, etablissement)
- }
-
- notesDroitService.verifieDroitSurFonctionnaliteParametrable(
- securiteSession,
- etablissement,
- NotesFonctionnalite.NOTES_CONSULT_RELEVE_BULLETIN,
- verifieDroitFonctionsNonParametrables
- )
-
Map result = wrapResultat {
StructureEnseignement classe = null
String message = null
Boolean relevesPublies = true
- List<StructureEnseignement> classes = listeClasses(securiteSession, etablissement)
+ List<StructureEnseignement> classes = listeClasses()
if (isAccesDirect(params)) {
classe = StructureEnseignement.get(params.classeId)
resultat.publie = relevesPublies
resultat.messagePublication = message
- resultat.isEleveOuParent = securiteSession.hasFonctionIn(
- [FonctionEnum.PERS_REL_ELEVE, FonctionEnum.ELEVE])
+ // périmètre élève
+ resultat.isEleveOuParent =
+ notesDroitService.hasPerimetreEleve(securiteSession)
}
resultat = ajouteAnnotations(resultat)
render(view: '/consultation/releve/index', model: result)
}
+
/**
* Retourne true si les params permettent d'accéder directement au bon relevé
*/
params.eleveId
}
- private def verifieAutorisation(SecuriteSession securiteSession,
- Etablissement etablissement) {
-
- notesDroitService.verifieAutorisationByEtablissement(
- securiteSession,
- etablissement,
- Action.CONSULTATION,
- (List) (NotesFonction.ENSEIGNANT_ASSIMILE +
- NotesFonction.DIRECTION_ASSIMILE +
- [FonctionEnum.ELEVE, FonctionEnum.PERS_REL_ELEVE]
- )
- )
- }
-
- private List<StructureEnseignement> listeClasses(SecuriteSession securiteSession, Etablissement etablissement) {
+ private List<StructureEnseignement> listeClasses() {
// La liste des classes auxquelles l'utilisateur a l'accès
List<StructureEnseignement> classes = notesStructureEnseignementService.
findAllClasseForUtilisateur(
securiteSession,
- etablissement,
+ etablissementCourant(),
Action.CONSULTATION)
classes.sort {a, b -> cc.compare(a.code, b.code)}
return classes
}
+
private List<Personne> listeEleves(SecuriteSession securiteSession,
StructureEnseignement classe) {
return eleves
}
+
/**
* Message que les releves ne sont pas encore disponible pour une periode donnee
- * @param periode
- * @return
*/
private String getMessageReleveNonPublie(Periode periode) {
return message(code: 'eliot.notes.consultation.releve.relevePasDispo',
args: [getTypePeriodeLibelle(periode.typePeriode)])
}
+
/**
* Relevé de notes
* @param eleveId L'id de la Personne
- * @param periodeId
* @author bper
*/
def releveDeNotes = {
Map result = getResultIfNullParams(['eleveId', 'periodeId'])
if (!result) {
result = tryCatch {
- Closure verifieDroitFonctionsNonParametrables = {
- notesDroitService.verifieAutorisationByEtablissement(
- securiteSession,
- etablissementCourant(),
- Action.CONSULTATION,
- (List) (NotesFonction.ENSEIGNANT_ASSIMILE +
- NotesFonction.DIRECTION_ASSIMILE +
- [FonctionEnum.ELEVE, FonctionEnum.PERS_REL_ELEVE]
- )
- )
- }
-
- notesDroitService.verifieDroitSurFonctionnaliteParametrable(
- securiteSession,
- etablissementCourant(),
- NotesFonctionnalite.NOTES_CONSULT_RELEVE_BULLETIN,
- verifieDroitFonctionsNonParametrables
- )
+ verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_CONSULT_RELEVE_BULLETIN)
Periode periode = Periode.get(Long.valueOf(params.periodeId))
Personne eleve = Personne.get(Long.valueOf(params.eleveId))
}
}
- // D E M O
- def imprimerReleve = {
- redirect(action: "imprimerpdf", params: params)
- }
- def imprimerpdf = {
+ def imprimerReleve = {
+ verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_CONSULT_RELEVE_BULLETIN)
Periode periode = Periode.get(Long.valueOf(params.periodeId))
String libelleTypePeriode = getTypePeriodeLibelle(periode.typePeriode)
)
}
+
/**
* Gestion du breadCrumbs
*/