String modifAppelPasDecompte = null
Integer modifAppelValeur = null
+ // Informations sur la saisie des incidents punitions par les enseignants
+ Boolean autoriseSaisieIncident = false
+ Boolean autoriseSaisiePunition = false
+ Boolean autoriseSaisieRetenue = false
+
static belongsto = [etablissement: Etablissement, anneeScolaire: AnneeScolaire]
static hasMany = [
--- /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>.
+ -->
+
+<databaseChangeLog
+ xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
+
+ <changeSet id="1" author="bbel">
+ <comment>
+ Ajout de paramétrage de saisie des incidents et punitions pour les
+ enseignants
+ </comment>
+
+ <addColumn
+ schemaName="enttemps" tableName="preference_etablissement_absences">
+
+ <column name="autorise_saisie_incident" type="boolean" defaultValue="false">
+ <constraints nullable="false"/>
+ </column>
+
+ <column name="autorise_saisie_punition" type="boolean" defaultValue="false">
+ <constraints nullable="false"/>
+ </column>
+
+ <column name="autorise_saisie_retenue" type="boolean" defaultValue="false">
+ <constraints nullable="false"/>
+ </column>
+ </addColumn>
+
+ </changeSet>
+
+</databaseChangeLog>
\ No newline at end of file
<include file="changelogs/securite/2014-10-01-0039436.xml"/>
<include file="changelogs/scolarite/2014-10-02-0039478.xml"/>
<include file="changelogs/scolarite/2014-09-29-0039331.xml"/>
+ <include file="changelogs/scolarite/2014-10-09-0039332.xml"/>
</databaseChangeLog>
String tauxAbsencesModeCalcul
+ def modificationAppelParEnseignantInfo
Map parseModificationAppelParEnseignantInfo
- def modificationAppelParEnseignantInfo
+ def saisiePunitionsInfo
+ Map parseSaisiePunitionsInfo
+
+ Boolean autoriseSaisieIncident
static constraints = {
modificationAppelParEnseignantInfo(validator: {
return 'invalidmodificationAppelParEnseignantInfo'
}
})
+
+ saisiePunitionsInfo(validator: {
+ String val, obj ->
+ obj.parseSaisiePunitionsInfo = JSON.parse(val)
+ if (obj.parseSaisiePunitionsInfo) {
+ return true
+ } else {
+ return 'invalidsaisiePunitionsInfo'
+ }
+ })
}
}
\ No newline at end of file
modele.modificationAppelParEnseignantInfo = marshallModificationAppelParEnseignant(pref)
+ modele.saisieIncidents = pref.autoriseSaisieIncident
+
+ modele.saisiePunitionsInfo = [
+ saisie: pref.autoriseSaisiePunition,
+ avecRetenu: pref.autoriseSaisieRetenue
+ ] as JSON
+
render(
view: '/parametrage/general/index',
model: modele
eliot.libelle.annulerModif=Annuler
eliot.libelle.annulerModifDescription=Annuler les modifications
-absences.parametrage.general.libelle.autorisationSaisie=Autoriser la saisie des appels en dehors de l'emploi du temps des enseignants
+absences.parametrage.general.libelle.autorisationSaisie=Saisie des appels en dehors de l'emploi du temps
absences.parametrage.general.libelle.affichageEdt=Afficher les emplois du temps des élèves lors de la saisie des absences
absences.parametrage.general.libelle.pasDeDecompte=Pas de décompte des absences
absences.parametrage.general.libelle.demiJour=Demi-journée
absences.parametrage.general.libelle.demiJour.minuscule=demi-journée(s)
absences.parametrage.general.libelle.jour.minuscule=jour(s)
absences.parametrage.general.libelle.typePlageHoraire=Durée d'une plage horaire
-absences.parametrage.general.libelle.tauxAbsencesModeCalcul=Calcul du taux d'absentéisme en fonction de
-absences.parametrage.general.libelle.interdieModifAppel=Intérdire la saisie des appels par les enseignants au-delà
+absences.parametrage.general.libelle.tauxAbsencesModeCalcul=Calcul du taux d'absentéisme en fonction
+absences.parametrage.general.libelle.interdieModifAppel=Intérdire la modification des appels après
absences.parametrage.general.libelle.longueur.heure=1 heure
absences.parametrage.general.libelle.longueur.demiheure=1/2 heure
absences.parametrage.general.message.enregistrerSucces=Les paramétrages généraux ont été enregistrés avec succès.
absences.parametrage.general.libelleBtnEnregistrer=Valider
absences.parametrage.general.libelle.plageHoraireEtab=des plages horaires ouvertes de l'établissement
absences.parametrage.general.libelle.edtEleves=de l'emploi du temps réel des élèves
+absences.parametrage.general.libelle.accesAuxFonctions = Accès aux fonctions - Profil Enseignants
+absences.parametrage.general.libelle.parametrages = Paramètrages
+absences.parametrage.general.libelle.saisieIncidents = Saisie des incidents
+absences.parametrage.general.libelle.saisiePunitions = Saisie des punitions
+absences.parametrage.general.libelle.avecRetenu = Avec les retenues
+absences.parametrage.general.libelle.sansRetenu = Sans les retenues
+
+
absences.parametrage.groupemotif.deplacement.succes=Le groupe motif a été déplacé
command.parseModificationAppelParEnseignantInfo.valeur
}
+ preferences.autoriseSaisieIncident = command.autoriseSaisieIncident
+
+ preferences.autoriseSaisiePunition = command.parseSaisiePunitionsInfo.saisie
+
+ preferences.autoriseSaisieRetenue = command.parseSaisiePunitionsInfo.avecRetenu
+
preferences.save(flush: true, failOnError: true)
}
<eliotjs:varString name="tauxAbsencesModeCalculSelectionne" value="${tauxAbsencesModeCalculSelectionne}"/>
<eliotjs:varJson name="listeTauxAbsencesModeCalcul" value="${listeTauxAbsencesModeCalcul}"/>
<eliotjs:varJson name="modificationAppelParEnseignantInfo" value="${modificationAppelParEnseignantInfo}"/>
+ <eliotjs:varBoolean name="saisieIncidents" value="${saisieIncidents}"/>
+ <eliotjs:varJson name="saisiePunitionsInfo" value="${saisiePunitionsInfo}"/>
</eliotjs:ns>
<eliotjs:ns name="libelle">
<eliotjs:varI18n name="typePlageHoraire" code="absences.parametrage.general.libelle.typePlageHoraire"/>
<eliotjs:varI18n name="tauxAbsencesModeCalcul" code="absences.parametrage.general.libelle.tauxAbsencesModeCalcul"/>
<eliotjs:varI18n name="interdieModifAppel" code="absences.parametrage.general.libelle.interdieModifAppel"/>
+ <eliotjs:varI18n name="accesAuxFonctions" code="absences.parametrage.general.libelle.accesAuxFonctions"/>
+ <eliotjs:varI18n name="parametrages" code="absences.parametrage.general.libelle.parametrages"/>
+ <eliotjs:varI18n name="saisieIncidents" code="absences.parametrage.general.libelle.saisieIncidents"/>
+ <eliotjs:varI18n name="saisiePunitions" code="absences.parametrage.general.libelle.saisiePunitions"/>
+ <eliotjs:varI18n name="avecRetenu" code="absences.parametrage.general.libelle.avecRetenu"/>
+ <eliotjs:varI18n name="sansRetenu" code="absences.parametrage.general.libelle.sansRetenu"/>
</eliotjs:ns>
<eliotjs:ns name="message">
/* Motifs */
.motifAucun {
- background-image: url(../images/sansmotif.gif);
+ background-image: url(../images/sansmotif.gif);
}
.departClasse {
- background-image: url(../images/depart.png);
- background-repeat: no-repeat;
- float: right;
- width: 14px;
- height: 14px;
+ background-image: url(../images/depart.png);
+ background-repeat: no-repeat;
+ float: right;
+ width: 14px;
+ height: 14px;
}
.retardClasse {
- background-image: url(../images/retard.png);
- background-repeat: no-repeat;
- float: left;
- width: 14px;
- height: 14px;
+ background-image: url(../images/retard.png);
+ background-repeat: no-repeat;
+ float: left;
+ width: 14px;
+ height: 14px;
}
.motifNonValable {
- background-image: url(../images/absnonvalable.png);
- background-color: transparent;
- background-repeat: repeat-x;
- height: 14px;
+ background-image: url(../images/absnonvalable.png);
+ background-color: transparent;
+ background-repeat: repeat-x;
+ height: 14px;
}
.motifAbsPrevisionnelle {
- background-image: url(../images/absprevisionnelle.png);
- height: 14px;
+ background-image: url(../images/absprevisionnelle.png);
+ height: 14px;
}
/*Utilisé pour la présentation des motifs dans l'arbre des motifs*/
.motif {
- margin: 3px;
- border: 1px black solid;
- font-size: 9px;
+ margin: 3px;
+ border: 1px black solid;
+ font-size: 9px;
}
#sansMotif {
- background-image: url(../images/sansmotif.gif);
+ background-image: url(../images/sansmotif.gif);
}
/* Important pour les grilles sur lesquelles on implique une fixation de colonne */
.x-grid3-row {
- height: 22px;
+ height: 22px;
}
.no-row-height .x-grid3-row {
- height: auto;
+ height: auto;
}
.txtSaisieArrivDep {
- font-size: 12px;
+ font-size: 12px;
}
.divConteneurInfoBulle {
- height: 20px;
- width: 1px;
+ height: 20px;
+ width: 1px;
}
#txtInfoBulle {
- height: 20px;
+ height: 20px;
}
.formretardAbsence td {
- padding: 5px;
+ padding: 5px;
}
.infoBulle {
- background-color: #DDDDDD;
- position: absolute;
- z-index: 1000;
- width: 154px;
- height: 210px;
- padding: 4px;
+ background-color: #DDDDDD;
+ position: absolute;
+ z-index: 1000;
+ width: 154px;
+ height: 210px;
+ padding: 4px;
}
.grilleElevesSeance {
- border: none;
+ border: none;
}
.btnFermerInfobulle {
- width: 20px;
- vertical-align: top;
+ width: 20px;
+ vertical-align: top;
}
.btnOkInfobulle {
- width: 60px;
- height: 20px;
- font-size: 8px;
- border-style: outset;
- margin: 4px;
+ width: 60px;
+ height: 20px;
+ font-size: 8px;
+ border-style: outset;
+ margin: 4px;
}
.btnSupprimerInfobulle {
- width: 60px;
- height: 20px;
- font-size: 8px;
- border-style: outset;
- margin: 4px;
+ width: 60px;
+ height: 20px;
+ font-size: 8px;
+ border-style: outset;
+ margin: 4px;
}
.btnValiderAppel {
- float: right;
- margin-right: 15px;
- margin-top: 5px;
+ float: right;
+ margin-right: 15px;
+ margin-top: 5px;
}
.tblHeureModif td {
- vertical-align: middle;
- border-spacing: 0px;
- border-collapse: collapse;
+ vertical-align: middle;
+ border-spacing: 0px;
+ border-collapse: collapse;
}
.formLayout {
- padding: 0;
- overflow: auto;
+ padding: 0;
+ overflow: auto;
}
.cellGridEleveSeance {
- padding: 0;
- height: 20px;
+ padding: 0;
+ height: 20px;
}
.gridEleve tr {
- height: 20px;
+ height: 20px;
}
.msgBoxMotif label {
- text-align: right;
- margin-top: 4px;
+ text-align: right;
+ margin-top: 4px;
}
.msgBoxMotif input {
- margin-top: 4px;
+ margin-top: 4px;
}
/* Ext.js */
.x-form-field-wrap .x-form-spinner-trigger {
- background-image: url("../images/spinner.gif");
+ background-image: url("../images/spinner.gif");
}
.x-form-field-wrap .x-form-spinner-splitter {
- background-image: url("../images/spinner-split.gif");
+ background-image: url("../images/spinner-split.gif");
}
.no-icon {
- display: none;
+ display: none;
}
.itemPasDeDecompteCls {
- margin-top: 20px;
- margin-left: 20px;
- overflow: auto;
+ margin-top: 20px;
+ margin-left: 20px;
+ overflow: auto;
}
.tabs-calendrier {
- margin-right: 0px;
- margin-left: 0px;
+ margin-right: 0px;
+ margin-left: 0px;
}
.tabs-calendrier ul.x-tab-strip li a {
- padding-right: 0px;
- padding-right: 0px;
+ padding-right: 0px;
+ padding-right: 0px;
}
.ux-menu ul li a.menuCoche {
- padding-left: 15px;
- background-image: url("../images/checkmenu.png");
- background-repeat: no-repeat;
- background-position: center left;
+ padding-left: 15px;
+ background-image: url("../images/checkmenu.png");
+ background-repeat: no-repeat;
+ background-position: center left;
}
.ux-menu ul li a.menuDeCoche {
- padding-left: 15px;
+ padding-left: 15px;
}
/*padding pour les boutons */
.ext-gecko .x-btn button, .ext-webkit .x-btn button {
- padding-left: 4px;
- padding-right: 4px;
+ padding-left: 4px;
+ padding-right: 4px;
}
/*.x-btn-icon .x-btn-small .x-btn-text {*/
/*}*/
.x-row-editor-header {
- height: 2px;
- overflow: hidden;
- background: transparent url(../images/row-editor-bg.gif) repeat-x 0 0;
+ height: 2px;
+ overflow: hidden;
+ background: transparent url(../images/row-editor-bg.gif) repeat-x 0 0;
}
.errorTip .x-tip-body ul {
- list-style-type: disc;
- margin-left: 15px;
+ list-style-type: disc;
+ margin-left: 15px;
}
.x-column custom-class {
- float: right;
- margin: 0;
- overflow: hidden;
- padding: 0;
+ float: right;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
}
.cdt_icon {
- background-image: url(../images/book_open.png) !important;
+ background-image: url(../images/book_open.png) !important;
}
/*Appel effectue*/
.appelEffectue {
- background: url(../images/appelEffectue.png) no-repeat;
+ background: url(../images/appelEffectue.png) no-repeat;
}
/*Appel effectue*/
.appelEffectueDirty {
- background: url(../images/appelEffectueDirty.png) no-repeat;
+ background: url(../images/appelEffectueDirty.png) no-repeat;
}
.absenceNonExcusee {
- color: #FF0000;
- font-weight: bold;
+ color: #FF0000;
+ font-weight: bold;
}
.portal-default_table thead {
- font-size: 11px;
- font-weight: bold;
- color: #3F61A0;
- text-align: center;
- background-color: #D7DCE7;
+ font-size: 11px;
+ font-weight: bold;
+ color: #3F61A0;
+ text-align: center;
+ background-color: #D7DCE7;
}
.portal-default_table .footer tr td {
- font-size: 11px;
- font-weight: bold; /*color: #3F61A0;*/
- text-align: center;
- background-color: #D7DCE7;
+ font-size: 11px;
+ font-weight: bold; /*color: #3F61A0;*/
+ text-align: center;
+ background-color: #D7DCE7;
}
.portal-default_table th td {
- border: 1px solid #728CBD;
- font-size: 11px;
- padding: 5px;
- text-align: center;
- width: auto;
+ border: 1px solid #728CBD;
+ font-size: 11px;
+ padding: 5px;
+ text-align: center;
+ width: auto;
}
.gridLineFoncee .x-grid3-row td.x-grid3-cell {
- border-right-color: #BBBBBB;
+ border-right-color: #BBBBBB;
}
.gridLineFoncee .x-grid3-row {
- border-color: #FFFFFF #FFFFFF #BBBBBB;
+ border-color: #FFFFFF #FFFFFF #BBBBBB;
}
.edt-colonne {
- background: url(../images/cms_calendar.png) no-repeat right;
- height: 16px;
+ background: url(../images/cms_calendar.png) no-repeat right;
+ height: 16px;
}
.edt-cell {
- background: url(../images/cms_calendar.png) no-repeat;
- float: left;
- height: 16px;
- width: 16px;
+ background: url(../images/cms_calendar.png) no-repeat;
+ float: left;
+ height: 16px;
+ width: 16px;
}
.bordertop {
- border-top: 1px solid #BBBBBB;
+ border-top: 1px solid #BBBBBB;
}
/*patch colonne non alignés sous chrome*/
.x-grid3-cell {
- box-sizing: border-box;
+ box-sizing: border-box;
}
div.popUpChoix div.text div.x-panel-body {
- font-size: 12px;
+ font-size: 12px;
}
div.popUpChoix label.x-form-cb-label {
- font-weight: normal;
- color: rgb(51, 51, 51);
+ font-weight: normal;
+ color: rgb(51, 51, 51);
}
div.popUpChoix div.x-form-item {
- margin-left: 40px;
- margin-top: 20px;
+ margin-left: 40px;
+ margin-top: 20px;
}
div.ux-lovcombo-item-text.inactif {
- color: red;
+ color: red;
+}
+
+.parametrage-label-1 {
+ font-size: 14px;
+}
+
+.parametrage-label-3 .x-form-cb-label {
+ color: #000000;
+ font-weight: normal;
}
autoriseSaisie:generalController.autoriseSaisie,
isAffichageEDTActif:generalController.isAffichageEDTActif,
typePlageHoraireStore:generalController.typePlageHoraireStore,
- modificationAppelParEnseignantInfo:generalController.modificationAppelParEnseignantInfo
+ modificationAppelParEnseignantInfo:generalController.modificationAppelParEnseignantInfo,
+ saisieIncidents:generalController.saisieIncidents,
+ saisiePunitionsAvecRetenu:generalController.saisiePunitionsAvecRetenu,
+ saisiePunitionsSaisie:generalController.saisiePunitionsSaisie
});
generalController.observeGeneralView(generalView);
actionAffichageEDTChange:'actionAffichageEDTChange',
actionPasDeDecompteChange:'actionPasDeDecompteChange',
actionChangeTauxAbsencesModeCalcul:'actionChangeTauxAbsencesModeCalcul',
- actionModificationAppelsEnseignantsChange:'actionModificationAppelsEnseignantsChange'
+ actionModificationAppelsEnseignantsChange:'actionModificationAppelsEnseignantsChange',
+ actionIncidentChange:'actionIncidentChange',
+ actionPunitionChange:'actionPunitionChange',
+ actionRetenuChange:'actionRetenuChange'
},
heure:'Heure',
this.tauxAbsencesModeCalcul = this.ConfigServeur.data.tauxAbsencesModeCalculSelectionne;
+ this.saisieIncidents = Modele.data.saisieIncidents;
+
+ this.saisiePunitionsSaisie = Modele.data.saisiePunitionsInfo.saisie;
+ this.saisiePunitionsAvecRetenu = Modele.data.saisiePunitionsInfo.avecRetenu;
+
},
init:function (ns) {
this
);
+ generalView.addListener(
+ this.Constantes.eventId.actionIncidentChange,
+ this.setSaisieIncidents,
+ this
+ );
+
+ generalView.addListener(
+ this.Constantes.eventId.actionPunitionChange,
+ this.setSaisiePunitions,
+ this
+ );
+
+ generalView.addListener(
+ this.Constantes.eventId.actionRetenuChange,
+ this.setPunitionsRetenuOptions,
+ this
+ );
+
},
observeToolBarView:function (toolbarView) {
this.isAffichageEDTActif = NameSpace.Modele.data.isAffichageEDTActif;
this.tauxAbsencesModeCalcul = NameSpace.Modele.data.tauxAbsencesModeCalculSelectionne;
this.modificationAppelParEnseignantInfo = NameSpace.Modele.data.modificationAppelParEnseignantInfo;
+ this.saisieIncidents = NameSpace.Modele.data.saisieIncidents;
+ this.saisiePunitionsSaisie = NameSpace.Modele.data.saisiePunitionsInfo.saisie;
+ this.saisiePunitionsAvecRetenu = NameSpace.Modele.data.saisiePunitionsInfo.avecRetenu;
this.fireEvent(
NameSpace.Constantes.eventId.actionReinitialiser,
- NameSpace.Modele.data.codePasDeDecompte,
- NameSpace.Modele.data.autoriseSaisie,
- NameSpace.Modele.data.typePlageHoraire,
- NameSpace.Modele.data.isAffichageEDTActif,
- NameSpace.Modele.data.tauxAbsencesModeCalculSelectionne,
- NameSpace.Modele.data.modificationAppelParEnseignantInfo
+
+ {
+ codePasDeDecompte:NameSpace.Modele.data.codePasDeDecompte,
+ autoriseSaisie:NameSpace.Modele.data.autoriseSaisie,
+ typePlageHoraire:NameSpace.Modele.data.typePlageHoraire,
+ isAffichageEDTActif:NameSpace.Modele.data.isAffichageEDTActif,
+ tauxAbsencesModeCalcul:NameSpace.Modele.data.tauxAbsencesModeCalculSelectionne,
+ modificationAppelParEnseignantInfo:NameSpace.Modele.data.modificationAppelParEnseignantInfo,
+ saisieIncidents:NameSpace.Modele.data.saisieIncidents,
+ saisiePunitionsSaisie:NameSpace.Modele.data.saisiePunitionsInfo.saisie,
+ saisiePunitionsAvecRetenu:NameSpace.Modele.data.saisiePunitionsInfo.avecRetenu
+ }
);
},
typePlageHoraire:this.typePlageHoraire,
affichageEdt:this.isAffichageEDTActif,
tauxAbsencesModeCalcul:this.tauxAbsencesModeCalcul,
- modificationAppelParEnseignantInfo:Ext.encode(this.modificationAppelParEnseignantInfo)
+ modificationAppelParEnseignantInfo:Ext.encode(this.modificationAppelParEnseignantInfo),
+ autoriseSaisieIncident:this.saisieIncidents,
+ saisiePunitionsInfo:Ext.encode({
+ saisie:this.saisiePunitionsSaisie,
+ avecRetenu:this.saisiePunitionsAvecRetenu
+ })
},
failure:function (response, request) {
NameSpace.Modele.data.isAffichageEDTActif = this.isAffichageEDTActif;
NameSpace.Modele.data.tauxAbsencesModeCalculSelectionne = this.tauxAbsencesModeCalcul;
NameSpace.Modele.data.modificationAppelParEnseignantInfo = this.modificationAppelParEnseignantInfo;
+ NameSpace.Modele.data.saisieIncidents = this.saisieIncidents;
+ NameSpace.Modele.data.saisiePunitionsInfo.saisie = this.saisiePunitionsSaisie;
+ NameSpace.Modele.data.saisiePunitionsInfo.avecRetenu = this.saisiePunitionsAvecRetenu;
}
// Affiche un message d'erreur,
else {
modificationAppelParEnseignant:function (info) {
this.modificationAppelParEnseignantInfo = info;
+ },
+
+ setSaisieIncidents:function (checked) {
+ this.saisieIncidents = checked;
+ },
+
+ setSaisiePunitions:function (checked) {
+ this.saisiePunitionsSaisie = checked;
+ },
+
+ setPunitionsRetenuOptions:function (checked) {
+ this.saisiePunitionsAvecRetenu = checked;
+
}
+
});
\ No newline at end of file
this.NameSpace.Constantes.eventId.actionChangeTauxAbsencesModeCalcul,
- this.NameSpace.Constantes.eventId.actionModificationAppelsEnseignantsChange
+ this.NameSpace.Constantes.eventId.actionModificationAppelsEnseignantsChange,
+
+ this.NameSpace.Constantes.eventId.actionIncidentChange,
+
+ this.NameSpace.Constantes.eventId.actionPunitionChange
);
+ this.parametragesGeneral = new Ext.Panel({
+ defaults:{
+ border:false,
+ frame:false,
+ bodyStyle:'padding-top:20px;padding-left:30px'
+ },
+ layout:"border",
+ items:[
+ {
+ region:'north',
+ height:220,
+ defaults:{
+ border:false,
+ layout:'form',
+ bodyStyle:'padding:10px 5px 5px 30px'
+ },
+ items:this.getParametresItems(config)
+ },
+ {
+ region:'center',
+ defaults:{
+ border:false,
+ layout:'form',
+ bodyStyle:'padding:10px 5px 5px 30px'
+ },
+ items:this.getItemsAccesAuxFonctionsEnseignant(config)
- // Check box d'autorisation de saisie des appels
- // en dehors d'emploi du temps
- this.checkBoxAutorisation = new Ext.form.Checkbox({
- boxLabel:this.NameSpace.Modele.libelle.autorisationSaisie,
- hideLabel:true,
- checked:config.autoriseSaisie
+ }
+ ]
});
- this.observeCheckBoxAutorisation();
+ },
- // Check box d'affichage d'emploi du temps lors des saisie des absences
- this.checkBoxAffichageEDTChange = new Ext.form.Checkbox({
- boxLabel:this.NameSpace.Modele.libelle.affichageEdt,
- hideLabel:true,
- checked:config.isAffichageEDTActif
- });
- this.observeCheckBoxAffichageEDT();
+ getParametresItems:function (config) {
// Liste de pas de décompte
this.listePasDeDecompte = new Ext.form.ComboBox({
typeAhead:true,
mode:'local',
forceSelection:true,
- triggerAction:'all'
+ triggerAction:'all',
+ labelStyle:' color: #6E81BD'
});
this.observeListePasDeDecompte(config.codePasDeDecompte);
+
// Liste de type de plage horaire
this.listeTypePlageHoraireView = new eliot.absences.commons.ComboBoxView({
id:'typePlageHoraire',
libelle:this.NameSpace.Modele.libelle.typePlageHoraire,
width:120
});
+ this.listeTypePlageHoraireView.comboBox.labelStyle =
+ 'color:#000000;font-weight: normal;';
- this.creeTauxAbsencesModeCalculOptions();
- var modificationAppelEffectuePanel = this.getModificationAppelEffectuePanel(config);
+ // Check box d'affichage d'emploi du temps lors des saisie des absences
+ this.checkBoxAffichageEDTChange = new Ext.form.Checkbox({
+ boxLabel:this.NameSpace.Modele.libelle.affichageEdt,
+ hideLabel:true,
+ checked:config.isAffichageEDTActif,
+ itemCls:'parametrage-label-3'
+ });
+ this.observeCheckBoxAffichageEDT();
- this.parametragesGeneral = new Ext.FormPanel({
- bodyStyle:'padding:20px 5px 10px 20px',
- labelWidth:225,
- defaults:{
- border:false,
- frame:false,
- layout:"form"
+ this.creeTauxAbsencesModeCalculOptions();
+
+ return [
+ {
+ xtype:'label',
+ text:this.ConfigServeur.libelle.parametrages,
+ cls:'parametrage-label-1'
},
- items:[
- {
- bodyStyle:'padding:10px 5px 10px 20px',
- items:this.checkBoxAutorisation
+ {
+ layout:'column',
+ defaults:{
+ layout:'form',
+ border:false
},
+ items:[
+ {
+ width:350,
+ labelWidth:200,
+ items:this.listePasDeDecompte
+ },
+ {
+ width:300,
+ labelWidth:165,
- {
- bodyStyle:'padding:10px 5px 10px 20px',
- items:modificationAppelEffectuePanel
- },
+ items:this.listeTypePlageHoraireView.comboBox
+ }
+ ]
+ } ,
+ {
+ items:this.checkBoxAffichageEDTChange
+ },
+ {
+ items:this.tauxAbsencesModeCalculOptions
+ }
+ ];
+ },
- {
- bodyStyle:'padding:10px 5px 10px 20px',
- items:this.listePasDeDecompte
+ getItemsAccesAuxFonctionsEnseignant:function (config) {
+ // Check box d'autorisation de saisie des appels
+ // en dehors d'emploi du temps
+ this.checkBoxAutorisation = new Ext.form.Checkbox({
+ boxLabel:this.NameSpace.Modele.libelle.autorisationSaisie,
+ hideLabel:true,
+ checked:config.autoriseSaisie,
+ itemCls:'parametrage-label-3'
+ });
+
+ this.observeCheckBoxAutorisation();
+
+ this.checkBoxSaisieIncidents = new Ext.form.Checkbox({
+ boxLabel:this.NameSpace.Modele.libelle.saisieIncidents,
+ hideLabel:true,
+ checked:config.saisieIncidents,
+ itemCls:'parametrage-label-3',
+ listeners:{
+ check:function (combo, checked) {
+ this.fireEvent(
+ this.NameSpace.Constantes.eventId.actionIncidentChange,
+ checked
+ )
},
- {
- bodyStyle:'padding:10px 5px 10px 20px',
- items:this.listeTypePlageHoraireView.comboBox
+ scope:this
+ }
+ });
+
+ return [
+ {
+ xtype:'label',
+ text:this.ConfigServeur.libelle.accesAuxFonctions,
+ cls:'parametrage-label-1'
+ },
+ {
+ items:this.checkBoxAutorisation
+ },
+ {
+ items:this.checkBoxSaisieIncidents
+ },
+
+ this.getItemsSaisiePunition(config),
+
+ this.getModificationAppelEffectuePanel(config)
+ ]
+
+ },
+
+ getItemsSaisiePunition:function (config) {
+
+ this.checkBoxSaisiePunitions = new Ext.form.Checkbox({
+ boxLabel:this.NameSpace.Modele.libelle.saisiePunitions,
+ hideLabel:true,
+ checked:config.saisiePunitionsSaisie,
+ itemCls:'parametrage-label-3',
+ listeners:{
+ check:function (combo, checked) {
+ this.fireEvent(
+ this.NameSpace.Constantes.eventId.actionPunitionChange,
+ checked
+ );
+ this.updateRetenuOptions(checked);
},
+ scope:this
+ }
+ });
+
+ var panel = {
+ layout:'column',
+ defaults:{
+ layout:'form',
+ border:false
+ },
+ items:[
{
- bodyStyle:'padding:10px 5px 10px 20px',
- items:this.checkBoxAffichageEDTChange
+ width:140,
+ items:this.checkBoxSaisiePunitions
},
{
- bodyStyle:'padding:10px 5px 10px 10px',
- items:this.tauxAbsencesModeCalculOptions
+ width:150,
+ padding:0,
+ items:this.getRetenuOptions(config)
}
-
]
+ };
+
+ this.updateRetenuOptions(config.saisiePunitionsSaisie);
+
+ return panel;
+ },
+
+ getRetenuOptions:function (config) {
+
+ this.avecRetenuRadio = new Ext.form.Radio({
+ itemCls:'parametrage-label-3',
+ hideLabel:true,
+ checked:config.saisiePunitionsAvecRetenu,
+ boxLabel:this.NameSpace.Modele.libelle.avecRetenu,
+ name:'retenu',
+ inputValue:'avecRetenu',
+ listeners:{
+ check:function (radio, checked) {
+ this.fireEvent(
+ this.NameSpace.Constantes.eventId.actionRetenuChange,
+ checked
+ );
+ },
+ scope:this
+ }
});
+
+ this.sansRetenuRadio = new Ext.form.Radio({
+ itemCls:'parametrage-label-3',
+ hideLabel:true,
+ checked:!config.saisiePunitionsAvecRetenu,
+ boxLabel:this.NameSpace.Modele.libelle.sansRetenu,
+ name:'retenu',
+ inputValue:'sansRetenu',
+ listeners:{
+ check:function (radio, checked) {
+ this.fireEvent(
+ this.NameSpace.Constantes.eventId.actionRetenuChange,
+ !checked
+ );
+ },
+ scope:this
+ }
+ });
+
+ return [
+ this.avecRetenuRadio,
+ this.sansRetenuRadio
+ ]
},
init:function (ns, config) {
this.listeTypePlageHoraireView.comboBox.enable();
},
- annuleModifications:function (codePasDeDecompte, autoriseSaisie, typePlageHoraire, isAffichageEDTActif, tauxAbsencesModeCalcul, modificationAppelParEnseignantInfo) {
+ annuleModifications:function (valeursInitials) {
this.initialiseComboBox(
- codePasDeDecompte,
+ valeursInitials.codePasDeDecompte,
this.listePasDeDecompte,
'valeur'
);
this.initialiseComboBox(
- typePlageHoraire,
+ valeursInitials.typePlageHoraire,
this.listeTypePlageHoraireView.comboBox,
'libelle'
);
- this.initialiseChecBox(this.checkBoxAutorisation, autoriseSaisie);
+ this.initialiseChecBox(this.checkBoxAutorisation, valeursInitials.autoriseSaisie);
- this.initialiseChecBox(this.checkBoxAffichageEDTChange, isAffichageEDTActif);
+ this.initialiseChecBox(
+ this.checkBoxAffichageEDTChange,
+ valeursInitials.isAffichageEDTActif
+ );
- this.initialiseChecBox(this.modificationAppelParEnseignantInfo.checkBox, modificationAppelParEnseignantInfo.interdire);
+ this.initialiseChecBox(
+ this.modificationAppelParEnseignantInfo.checkBox,
+ valeursInitials.modificationAppelParEnseignantInfo.interdire
+ );
+
+ this.initialiseChecBox(this.checkBoxSaisieIncidents, valeursInitials.saisieIncidents);
+
+ this.initialiseChecBox(
+ this.checkBoxSaisiePunitions,
+ valeursInitials.saisiePunitionsSaisie
+ );
+
+ this.initialisePunitionRetenuOptions(valeursInitials.saisiePunitionsAvecRetenu);
this.initialiseComboBox(
- modificationAppelParEnseignantInfo.pas,
+ valeursInitials.modificationAppelParEnseignantInfo.pas,
this.modificationAppelParEnseignantInfo.combo,
'valeur'
);
- this.initialiseSpinner(this.modificationAppelParEnseignantInfo.spinner, modificationAppelParEnseignantInfo.valeur);
+ this.initialiseSpinner(
+ this.modificationAppelParEnseignantInfo.spinner,
+ valeursInitials.modificationAppelParEnseignantInfo.valeur
+ );
- this.setTauxAbsencesModeCalcul(tauxAbsencesModeCalcul);
+ this.setTauxAbsencesModeCalcul(valeursInitials.tauxAbsencesModeCalcul);
- var index = this.listePasDeDecompte.store.findExact('id', codePasDeDecompte);
+ var index = this.listePasDeDecompte.store.findExact('id', valeursInitials.codePasDeDecompte);
this.majApparenceTypePlageHoraire(
this.listePasDeDecompte,
this.listePasDeDecompte.store.getAt(index));
spinner.setValue(value);
},
+ initialisePunitionRetenuOptions:function (avecRetenu) {
+ this.avecRetenuRadio.setValue(avecRetenu);
+ this.sansRetenuRadio.setValue(!avecRetenu);
+ },
+
creeTauxAbsencesModeCalculOptions:function () {
var optionItems = [];
}
var radio = new Ext.form.Radio({
+ itemCls:'parametrage-label-3',
hideLabel:true,
checked:checked,
boxLabel:tauxAbsencesModeCalcul.libelle,
this.tauxAbsencesModeCalculOptions = [
{
- title:'<label class="x-form-item-label" style="font-size: 12px;">' + this.ConfigServeur.libelle.tauxAbsencesModeCalcul + '</label>',
+ title:'<label class="x-form-item-label" style="font-size: 12px;color:#6E81BD;">' +
+ this.ConfigServeur.libelle.tauxAbsencesModeCalcul + ' :' + '</label>',
xtype:'fieldset',
defaultType:'radio',
border:false,
else {
this.tauxAbsencesModeCalculOptionsItems[tauxAbsencesModeCalcul.id].checked = false;
}
-
}
-
},
-
getModificationAppelEffectuePanel:function (config) {
this.modificationAppelParEnseignantInfo = {};
boxLabel:this.NameSpace.Modele.libelle.interdieModifAppel,
hideLabel:true,
checked:this.modificationAppelParEnseignantInfo.interdire,
+ itemCls:'parametrage-label-3',
listeners:{
check:function (combo, checked) {
this.modificationAppelParEnseignantInfo.interdire = checked;
},
items:[
{
- width:360,
+ width:260,
+ layout:'form',
items:this.modificationAppelParEnseignantInfo.checkBox
},
{
this.NameSpace.Constantes.pasDeDecompte.JOUR;
}
+ },
+
+ updateRetenuOptions:function (checked) {
+ if (checked) {
+ this.avecRetenuRadio.enable();
+ this.sansRetenuRadio.enable();
+ } else {
+ this.avecRetenuRadio.disable();
+ this.sansRetenuRadio.disable();
+ }
}
typePlageHoraire:undefined,
retard:undefined,
tauxAbsencesModeCalcul:undefined,
- interdieModifAppel:undefined
+ interdieModifAppel:undefined,
+ accesAuxFonctions:undefined,
+ parametrages:undefined,
+ saisiePunitions:undefined,
+ saisieIncidents:undefined,
+ avecRetenu:undefined,
+ sansRetenu:undefined
},
data:{
typePlageHoraire:undefined,
tauxAbsencesModeCalculSelectionne:undefined,
listeTauxAbsencesModeCalcul:undefined,
- modificationAppelParEnseignantInfo:undefined
+ modificationAppelParEnseignantInfo:undefined,
+ saisieIncidents:undefined,
+ saisiePunitionsInfo:undefined
},
message:{