protected function filter2($filterValue)
 {
     //Pour les questions, le filter 2 est une Classe
     if ($filterValue == 0) {
         // 0 indique 'Tous' sur filter2
         $lignes = $this->model->all()->sortBy('nom');
     } else {
         try {
             $tps = Classe::find($filterValue)->tps;
             //cherche les TPs associés à la Classe sélectionnée
             $modelIds = [];
             foreach ($tps as $tp) {
                 //créé la liste des ids des questions pour tous ces TPs.
                 $modelIds = array_merge($modelIds, $this->filter1($tp)->lists('id')->all());
             }
             //une questions peut être avec 2 TPs, il faut donc aller les chercher par leur id afin d'enlever les doublons
             if (count($modelIds) > 0) {
                 $lignes = $this->model->whereIn('id', $modelIds)->get()->sortBy('nom');
             } else {
                 $lignes = new Illuminate\Database\Eloquent\Collection();
             }
         } catch (Exception $e) {
             $lignes = new Illuminate\Database\Eloquent\Collection();
         }
     }
     return $lignes;
 }
 public function run()
 {
     $programme = Programme::where('id', '=', '420AA')->first();
     $classeCN2 = Classe::where('code', '=', '420-CN2-DM')->first();
     $classeDM1 = Classe::where('code', '=', '420-DM1-DM')->first();
     $classeDM2 = Classe::where('code', '=', '420-DM2-DM')->first();
     $roleadmin = Role::where('name', '=', 'admin')->first();
     $roleprof = Role::where('name', '=', 'professeur')->first();
     $roleetudiant = Role::where('name', '=', 'etudiant')->first();
     DB::table('users_classes')->delete();
     DB::table('users')->delete();
     $user = new User();
     $user->name = 'Admin';
     $user->nom = 'systeme';
     $user->prenom = 'admin';
     $user->type = 'p';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usager');
     $user->save();
     $user->attachRole($roleadmin);
     $user = new User();
     $user->name = 'prof1';
     $user->nom = 'prof1 ';
     $user->prenom = 'un';
     $user->type = 'p';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usager');
     $programme->users()->save($user);
     $user->attachRole($roleprof);
     $user->classes()->sync([$classeCN2->id, $classeDM1->id]);
     $user = new User();
     $user->name = 'prof2';
     $user->nom = 'prof2 ';
     $user->prenom = 'deux';
     $user->type = 'p';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usager');
     $programme->users()->save($user);
     $user->attachRole($roleprof);
     $user->classes()->sync([$classeCN2->id, $classeDM2->id]);
     $user = new User();
     $user->name = 'etudiant1';
     $user->nom = 'etudiant';
     $user->prenom = 'un';
     $user->type = 'e';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usager');
     $programme->users()->save($user);
     $user->attachRole($roleetudiant);
     $user->classes()->sync([$classeCN2->id, $classeDM1->id]);
     $user = new User();
     $user->name = 'etudiant2';
     $user->nom = 'etudiant2';
     $user->prenom = 'deux';
     $user->type = 'e';
     $user->email = '*****@*****.**';
     $user->password = Hash::make('usager');
     $programme->users()->save($user);
     $role = Role::where('name', '=', 'etudiant')->first();
     $user->attachRole($roleetudiant);
     $user->classes()->sync([$classeCN2->id, $classeDM1->id, $classeDM2->id]);
 }
 private function createFilters($option0, $item = null, $displayOnlyLinked = null)
 {
     if (isset($item) and isset($displayOnlyLinked)) {
         $lesClasses = $item->classes->sortby("sessionscholaire_id");
         //affiche seulement les classes associées à cet item.
     } else {
         //sinon affiche toutes les classes.
         $lesClasses = Classe::all()->sortby("sessionscholaire_id");
         //ce n'est pas exactement par session, mais si les id de session sont dans le bon ordre, ca le sera.
     }
     $belongsToList = createSelectOptions($lesClasses, [get_class(), 'createOptionsValue'], $option0);
     if (isset($item)) {
         //si on a un item, on sélectionne toutes les classes déjà associées
         $belongsToSelectedIds = $item->classes->pluck('id')->toArray();
     } else {
         //sinon, on sélectionne la classe qui a été passée en paramêtre (si elle est bonne, sinon, la première de la liste
         $belongsToSelectedIds = checkLinkedId(array_keys($belongsToList)[0], Input::get('belongsToId'), 'App\\Models\\Classe');
         //TODO je devrai pas avoir d'input ici, ca devrait venir en parametre
     }
     $filtre1 = createFiltreParSessionPourClasses($lesClasses, true);
     $tp = $item;
     return compact('tp', 'belongsToList', 'belongsToSelectedIds', 'filtre1');
 }
 public function retirerCorrection($tp_id, $classe_id)
 {
     $return = true;
     try {
         $classe = Classe::findOrFail($classe_id);
         $tp = $classe->tps()->where("tp_id", '=', $tp_id)->first();
         $tp->pivot->corrige = false;
         $tp->pivot->save();
     } catch (Exception $e) {
         $return = false;
     }
     return $return;
 }