/**
  * Action permettant à un élève de rendre un travail
  */
 public function processRendreTravail()
 {
     $ppo = new CopixPPO();
     if (is_null($ppo->cahierId = _request('cahierId', null))) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('')));
     }
     $travailDAO = _ioDAO('cahierdetextes|cahierdetextestravail');
     if (!($ppo->travail = $travailDAO->get(_request('travailId', null)))) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('')));
     }
     $travail2eleveDAO = _ioDAO('cahierdetextes|cahierdetextestravail2eleve');
     $studentIds = $travail2eleveDAO->findEleveIdsParTravail($ppo->travail->id);
     if (!$ppo->travail->a_rendre || _currentUser()->getExtra('type') != 'USER_ELE' || !in_array(_currentUser()->getExtra('id'), $studentIds)) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('')));
     }
     $ppo->error = _request('error');
     // Récupération du dossier où rendre le travail
     $classeurDAO = _ioDAO('classeur|classeur');
     $dossierDAO = _ioDAO('classeur|classeurdossier');
     if ($dossier = $dossierDAO->get($ppo->travail->dossier_id)) {
         $classeur = $classeurDAO->get($dossier->classeur_id);
     }
     if (is_null($ppo->travail->dossier_id) || !$dossier->casier) {
         // Récupération du classeur
         $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId);
         $mods = Kernel::getModEnabled($cahierInfos[0]->node_type, $cahierInfos[0]->node_id);
         $modClasseur = Kernel::filterModuleList($mods, 'MOD_CLASSEUR');
         $classeurId = $modClasseur[0]->module_id;
         $classeur = $classeurDAO->get($classeurId);
         $dossier = $dossierDAO->getCasier($classeurId);
     }
     if (CopixRequest::isMethod('post')) {
         // Contrôle upload du fichier
         if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
             $file = $_FILES['fichier']['tmp_name'];
             $name = $_FILES['fichier']['name'];
             _classInclude('classeur|classeurService');
             classeurService::uploadFile($file, $name, $classeur, $dossier);
             classeurService::sendLockerUploadConfirmation($name);
             // Sauvegarde de la date de rendu du travail
             $travail2eleveDAO = _ioDAO('cahierdetextes|cahierdetextestravail2eleve');
             if ($suivi = $travail2eleveDAO->getByTravailAndEleve($ppo->travail->id, _currentUser()->getExtra('id'))) {
                 $suivi->rendu_le = date('Y-m-d H:i:s');
                 $travail2eleveDAO->update($suivi);
             } else {
                 $suivi = _record('cahierdetextes|cahierdetextestravail2eleve');
                 $suivi->travail_id = $ppo->travail->id;
                 $suivi->eleve_id = _currentUser()->getExtra('id');
                 $suivi->rendu_le = date('Y-m-d H:i:s');
                 $travail2eleveDAO->insert($suivi);
             }
             return _arRedirect(CopixUrl::get('cahierdetextes||voirTravaux', array('cahierId' => $ppo->cahierId, 'annee' => substr($ppo->travail->date_realisation, 0, 4), 'mois' => substr($ppo->travail->date_realisation, 4, 2), 'jour' => substr($ppo->travail->date_realisation, 6, 2), 'save' => 1)));
         } else {
             $ppo->erreur = CopixI18N::get('classeur|classeur.error.noFiles');
             return _arPPO($ppo, array('template' => 'rendre_travail.tpl'));
         }
     }
     return _arPPO($ppo, array('template' => 'rendre_travail.tpl', 'mainTemplate' => 'main|main_fancy.php'));
 }