package org.lilie.services.eliot.notes.domaine
import grails.converters.JSON
+import org.lilie.services.eliot.applications.notes.ReleveOptionsService
+import org.lilie.services.eliot.notes.BulletinOptionsPortee
+import org.lilie.services.eliot.notes.ReleveOptions
import org.lilie.services.eliot.notes.scolarite.NotesPeriodeService
import org.lilie.services.eliot.scolarite.Periode
import org.lilie.services.eliot.scolarite.StructureEnseignement
NotesPeriodeService notesPeriodeService
NotesStructureEnseignementService notesStructureEnseignementService
BulletinOptionsService bulletinOptionsService
+ ReleveOptionsService releveOptionsService
- String portee = 'CONSULTATION'
-
+ private static final PORTEE = BulletinOptionsPortee.CONSULTATION
/**
* Retourne la liste des périodes pour une classe
Map result = tryCatch{
verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_PARAM)
- BulletinOptions bulletinOptions
+ StructureEnseignement classe = StructureEnseignement.get(params.classeId)
- def bulletinOptionsId = params.bulletinOptionsId
- if (bulletinOptionsId){
- bulletinOptions = BulletinOptions.get(Long.valueOf(bulletinOptionsId))
- } else {
- StructureEnseignement classe = params.classeId ? StructureEnseignement.get(params.classeId) : null
- bulletinOptions = BulletinOptions.findByClasseAndPortee(classe, portee)
- if (!bulletinOptions){
- bulletinOptions = new BulletinOptions()
- bulletinOptions.templateDocument = getTemplateDocumentForImpressionDirecteBulletin()
- bulletinOptions.classe = classe
- bulletinOptions.portee = portee
- }
+ if (!classe){
+ throw new IllegalArgumentException("La classe avec l'id = ${params.classeId} n'existe pas")
}
- if (!bulletinOptions.classe){
- throw new IllegalArgumentException("La classe concernée par les options de publication ne peut pas être nulle")
- }
-
- bulletinOptionsService.enregistre(bulletinOptions, params)
+ verifieDroitAccesObjetDomaine(classe)
+ bulletinOptionsService.enregistre(classe, params, PORTEE)
+ releveOptionsService.enregistre(classe, params)
}
render result as JSON
def getOptionsPublication = {
- BulletinOptions bulletinOptions = null
-
Map result = tryCatch{
verifieDroitFonctionnalite(NotesFonctionnalite.NOTES_PARAM)
- StructureEnseignement classe = params.classeId ? StructureEnseignement.get(params.classeId) : null
- if (classe){
- bulletinOptions = BulletinOptions.findByClasseAndPortee(classe, portee)
- if (!bulletinOptions){
- bulletinOptions = new BulletinOptions(
- templateDocument : getTemplateDocumentForImpressionDirecteBulletin(),
- moyenneGenerale : true,
- coefficient : true,
- moyennePrecedente : false,
- moyenneMinMax : true,
- nombreNotes : false,
- rangs : false,
- classe : classe,
- portee: portee
- )
- bulletinOptionsService.enregistre(bulletinOptions)
- }
- } else {
- throw new IllegalArgumentException("La classe concernée par les options de publication ne peut pas être nulle")
+ StructureEnseignement classe = StructureEnseignement.get(params.classeId)
+
+ if (!classe){
+ throw new IllegalArgumentException("La classe avec l'id = ${params.classeId} n'existe pas")
}
- }
- result.optionsDePublication = bulletinOptions
+ verifieDroitAccesObjetDomaine(classe)
+
+ BulletinOptions bulletinOptions =
+ bulletinOptionsService.findOrCree(classe, PORTEE)
+
+ ReleveOptions releveOptions = releveOptionsService.findOrCree(classe)
+
+ [optionsDePublication: [bulletin: bulletinOptions, releve: releveOptions]]
+ }
render result as JSON
}