}
this.storeAppel = cfg.storeAppel;
+ this.storePlagesHoraires = cfg.storePlagesHoraires;
this.eleveSelectionneId = cfg.eleveSelectionneId;
var idAppel = this.getAppelIdFromColumnIndex(columnIndex);
if (idAppel !== this.Constantes.id.storeAppelDataIndexVide) {
var dataLigneAppel = selectionModel.grid.getStore().getAt(rowIndex);
- this.fireEvent(
- this.Constantes.eventId.actionEditeAbsence,
- dataLigneAppel,
- idAppel,
- this.getColumnIndexPlageHoraire(idAppel)
- )
+ var columnIndexPlageHoraire = this.getColumnIndexPlageHoraire(idAppel);
+ var idPlage = this.storePlagesHoraires.getAt(columnIndexPlageHoraire - 1).id;
+ // pour pouvoir modifier cette cellule,il faut soit qu'elle ait une
+ // absence liée à l'appel affiché, soit qu'elle ait une absence
+ // prévisionnelle, soit qu'elle soit vide
+ var absenceSurAppelEnCours = dataLigneAppel.get(idAppel);
+ var absenceSurPlageEnCours = dataLigneAppel.get("plage"+idPlage);
+ if (dataLigneAppel &&
+ (absenceSurAppelEnCours != "" ||
+ (absenceSurAppelEnCours == "" && absenceSurPlageEnCours == "") ||
+ (absenceSurPlageEnCours != "" && absenceSurPlageEnCours.previsionnel == true))){
+ this.fireEvent(
+ this.Constantes.eventId.actionEditeAbsence,
+ dataLigneAppel,
+ idAppel,
+ columnIndexPlageHoraire
+ )
+ }
}
// On retourne false pour ne pas sélectionner la cellule en saisie d'absence
return false;