コード例 #1
0
 protected function filter2($filterValue)
 {
     //Pour les TPs, le filter 2 est la sessionScholaire
     try {
         if ($filterValue == 0) {
             // 0 indique 'Tous' sur filter2
             $classes = Classe::all();
         } else {
             $classes = $this->filteringClass->where('sessionscholaire_id', '=', $filterValue)->get();
             //va chercher les classes pour cette session
         }
         //Si l'usager connecté n'a pas la capacité de gérer les classes, alors on liste seulement les classes associées à cet usager.
         if (!Auth::user()->ability('', 'ajout-classe')) {
             $u = Auth::user();
             $classes = $classes->filter(function ($item) use($u) {
                 return $item->professeurs()->get()->contains("id", $u->id);
             });
         }
         $lignes = [];
         foreach ($classes as $classe) {
             //créé la liste des ids des TPs pour toutes ces classes.
             $lignes[$classe->nom] = $classe->tps->sortBy('nom');
         }
         // liste les TPs qui ne sont associés à aucune classe.
         $tps = TP::all();
         foreach ($tps as $tp) {
             if ($tp->classes->isempty()) {
                 $listeTPsOrphelins[] = $tp->id;
             }
         }
         if (!empty($listeTPsOrphelins)) {
             $lignes['Aucune classe associée'] = TP::wherein('id', $listeTPsOrphelins)->get();
         }
     } catch (Exception $e) {
         $lignes = [];
     }
     return $lignes;
 }
コード例 #2
0
 private function displayView($option0, $selectedValue, $item = null, $displayOnlyLinked = null)
 {
     if (isset($item) and isset($displayOnlyLinked)) {
         $lesTPs = $item->tps;
         //affiche seulement les tps associées à cet item. (utile pour show)
     } else {
         //sinon affiche tous.
         $lesTPs = TP::all()->sortby("nom");
     }
     $belongsToList = createSelectOptions($lesTPs, [get_class(), 'createOptionsValue'], $option0);
     if (isset($item)) {
         //si on a un item, on sélectionne seulement ce qui est associées
         $belongsToSelectedIds = $item->TPs->pluck('id')->toArray();
     } else {
         //sinon, on sélectionne ce qui a été passée en paramêtre (si c'est bon, sinon, la première de la liste
         $belongsToSelectedIds = checkLinkedId(array_keys($belongsToList)[0], $selectedValue, 'App\\Models\\TP');
     }
     $filtre1 = createFiltreParClassePourTP($lesTPs, true);
     $question = $item;
     return compact('question', 'belongsToList', 'belongsToSelectedIds', 'filtre1');
 }