Package org.ldv.sio.getap.web

Source Code of org.ldv.sio.getap.web.ElevesController

package org.ldv.sio.getap.web;

import org.ldv.sio.getap.app.AccPersonalise;
import org.ldv.sio.getap.app.DVCTAPException;
import org.ldv.sio.getap.app.DemandeValidationConsoTempsAccPers;
import org.ldv.sio.getap.app.FormAjoutDctap;
import org.ldv.sio.getap.app.FormDemandeConsoTempsAccPers;
import org.ldv.sio.getap.app.User;
import org.ldv.sio.getap.app.service.IFManagerGeTAP;
import org.ldv.sio.getap.utils.UtilSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
* Web controller for eleve related actions.
*/
@Controller
@RequestMapping("/eleve/*")
public class ElevesController {

  @Autowired
  @Qualifier("DBServiceManager")
  private IFManagerGeTAP manager;

  public void setManagerEleve(IFManagerGeTAP serviceManager) {
    this.manager = serviceManager;
  }

  /**
   * Default action, displays the use case page.
   *
   *
   */
  @RequestMapping(value = "index", method = RequestMethod.GET)
  public void index() {

  }

  @RequestMapping(value = "mesdctap", method = RequestMethod.GET)
  public String mesdctap(Model model) {
    User me = UtilSession.getUserInSession();
    model.addAttribute("mesdctaps", manager.getAllDVCTAPByEleve(me));
    Long id = me.getId();
    model.addAttribute("etat0", manager.getAllDVCTAPByEtat(0, id));
    model.addAttribute("etat1", manager.getAllDVCTAPByEtat(1, id));
    model.addAttribute("etat2", manager.getAllDVCTAPByEtat(2, id));
    model.addAttribute("etat4", manager.getAllDVCTAPByEtat(4, id));
    model.addAttribute("etat8", manager.getAllDVCTAPByEtat(8, id));
    model.addAttribute("etat16", manager.getAllDVCTAPByEtat(16, id));
    model.addAttribute("etat32", manager.getAllDVCTAPByEtat(32, id));
    model.addAttribute("etat64", manager.getAllDVCTAPByEtat(64, id));
    model.addAttribute("etatsup1000", manager.getAllDVCTAPModifByEtat(id));

    return "eleve/mesdctap";
  }

  @RequestMapping(value = "delete/{id}", method = RequestMethod.GET)
  public String deleteDCTAPById(@PathVariable String id, Model model) {
    DemandeValidationConsoTempsAccPers currentDctap = manager
        .getDVCTAPById(Long.valueOf(id));
    // Test que la DCTAP appartient à la bonne personne
    if (currentDctap.getEleve().equals(UtilSession.getUserInSession())) {
      currentDctap.setDctapAnnule();
      manager.updateDVCTAP(currentDctap);
    }

    return "redirect:/app/eleve/mesdctap";
  }

  @RequestMapping(value = "edit", method = RequestMethod.GET)
  public String editDCTAPById(@RequestParam("id") String id,
      FormDemandeConsoTempsAccPers formDctap, Model model) {

    // System.out.println("TEST id recu :" + formDctap.getId());

    DemandeValidationConsoTempsAccPers currentDctap = manager
        .getDVCTAPById(Long.valueOf(id));

    System.out.println("DCTAP : " + currentDctap);

    // valorise le bean de vue avec le dctap courant
    formDctap.setId(currentDctap.getId()); // en provenance d'un champ caché
    formDctap.setDateAction(currentDctap.getDateAction());
    formDctap.setProfId(currentDctap.getProf().getId());
    // formDctap.setProfNom(currentDctap.getProf().getNom());
    formDctap.setIdEleve(currentDctap.getEleve().getId());
    formDctap.setAccPersId(currentDctap.getAccPers().getId());
    formDctap.setMinutes(currentDctap.getMinutes());
    model.addAttribute("minute", currentDctap.getMinutes());
    model.addAttribute("lesProfs", manager.getAllProf());
    model.addAttribute("etat", manager.getDVCTAPById(formDctap.getId())
        .getEtat());
    model.addAttribute("lesAP", manager.getAllAPForEleve());
    return "eleve/edit";
  }

  @RequestMapping(value = "doedit", method = RequestMethod.POST)
  public String doeditDCTAPById(FormDemandeConsoTempsAccPers formDctap,
      BindingResult bindResult, Model model) {
    User prof = manager.getUserById(formDctap.getProfId());
    if (prof == null)
      bindResult.rejectValue("profId", "required",
          "Erreur d'identifiant de professeur");

    if (bindResult.hasErrors()) {
      model.addAttribute("lesProfs", manager.getAllProf());
      return "eleve/edit";
    } else {
      User user = UtilSession.getUserInSession();
      DemandeValidationConsoTempsAccPers dctapForUpdate = manager
          .getDVCTAPById(Long.valueOf(formDctap.getId()));
      if (dctapForUpdate.getEtat() == 0 || dctapForUpdate.getEtat() == 4) {

        AccPersonalise acc = new AccPersonalise(null,
            formDctap.getAccPersNom(), 1, user.getId());
        if (manager.getAPById(formDctap.getAccPersId()) != null) {
          acc = manager.getAPById(formDctap.getAccPersId());
          dctapForUpdate
              .setAccPers(manager.getAPById(formDctap.getAccPersId()));
        } else {
          manager.addAP(acc);
          dctapForUpdate.setAccPers(manager.getAPByNom(formDctap
              .getAccPersNom()));
        }

        dctapForUpdate.setDateAction(formDctap.getDateAction());
        dctapForUpdate.setMinutes(formDctap.getMinutes());

        dctapForUpdate.setProf(manager.getUserById(formDctap.getProfId()));
        dctapForUpdate.setDctapModifEleve();
        manager.updateDVCTAP(dctapForUpdate);
      }

      return "redirect:/app/eleve/mesdctap";
    }
  }

  @RequestMapping(value = "ajoutdctap", method = RequestMethod.GET)
  public String ajoutUser(FormAjoutDctap formAjout, Model model) {

    model.addAttribute("lesProfs", manager.getAllProf());
    model.addAttribute("lesAP", manager.getAllAPForEleve());

    formAjout.setAnneeScolaire(UtilSession.getAnneeScolaireInSession());
    formAjout.setProfId(UtilSession.getUserInSession().getId());
    formAjout.setEtat(0);

    return "eleve/ajoutdctap";
  }

  @RequestMapping(value = "doajout", method = RequestMethod.POST)
  public String doajoutUser(FormAjoutDctap formAjout, BindingResult bindResult,
      Model model) {
    model.addAttribute("lesProfs", manager.getAllProf());
    model.addAttribute("lesAP", manager.getAllAPForEleve());

    formAjout.setAnneeScolaire(UtilSession.getAnneeScolaireInSession());
    formAjout.setEleveId(UtilSession.getUserInSession().getId());
    formAjout.setEtat(0);

    if (formAjout.getDate() == null) {
      bindResult.rejectValue("date", "required",
          "Une date valide est attendue !");
      return "eleve/doajout";
    }

    if (bindResult.hasErrors()) {
      return "eleve/ajoutdctap";
    } else {
      AccPersonalise acc = new AccPersonalise(null, formAjout.getAccPersNom(),
          1, formAjout.getEleveId());
      if (manager.getAPById(formAjout.getAccPersId()) != null) {
        acc = manager.getAPById(formAjout.getAccPersId());
      } else {
        manager.addAP(acc);
      }
      DemandeValidationConsoTempsAccPers dctap = new DemandeValidationConsoTempsAccPers(
          formAjout.getId(), manager.getCurrentAnneeScolaire(),
          formAjout.getDate(), formAjout.getMinutes(),
          manager.getUserById(formAjout.getProfId()), acc,
          manager.getUserById(formAjout.getEleveId()), formAjout.getEtat());

      if (dctap.getMinutes() % 10 == 0 && dctap.getMinutes() <= 300
          && dctap.getMinutes() != 0) {
        manager.addDVCTAP(dctap);
      } else {
        bindResult.rejectValue("date", "required",
            "La durée de l'AP est invalide !");
        return "eleve/doajout";
      }

      return "redirect:/app/eleve/index";
    }
  }

  @RequestMapping(value = "refuse/{id}", method = RequestMethod.GET)
  public String refuseDCTAPById(@PathVariable String id, Model model) {
    DemandeValidationConsoTempsAccPers dctap = manager.getDVCTAPById(Long
        .valueOf(id));

    // Test que la DCTAP appartient à la bonne personne
    if (dctap.getEleve().equals(UtilSession.getUserInSession())
        && dctap.getEtat() > 1023) {
      try {
        dctap.transitionRejeteeParEleve();
        manager.updateDVCTAP(dctap);
      } catch (DVCTAPException e) {
        // TODO redirect error view
      }
    }

    return "redirect:/app/eleve/mesdctap";
  }

  @RequestMapping(value = "valid/{id}", method = RequestMethod.GET)
  public String validDCTAPById(@PathVariable String id, Model model) {
    DemandeValidationConsoTempsAccPers dctap = manager.getDVCTAPById(Long
        .valueOf(id));

    // Test que la DCTAP appartient à la bonne personne
    if (dctap.getEleve().equals(UtilSession.getUserInSession())
        && dctap.getEtat() > 1023) {
      dctap.setDctapConfirme();
      manager.updateDVCTAP(dctap);
    }

    return "redirect:/app/eleve/mesdctap";
  }
}
TOP

Related Classes of org.ldv.sio.getap.web.ElevesController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.