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'); }
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'); }
/** * Crée les variables utilisées pour créer l'entête de la view Index * * @param string $option0 le nom d'une option supplémentaire (tous, aucun...) qui est ajouté à l'index 0 du select * @param TP $item le tp sélectionné dans le select précédent cet écran * @param boolean $displayOnlyLinked flag indiquant si on doit afficher seulement les classes associés à $item * @return multitype: */ private function createHeaderForView($option0, $item = null, $displayOnlyLinked = null) { if (isset($item) and isset($displayOnlyLinked)) { $lesClasses = $item->classes; //affiche seulement les classes associées à cet item. (utile pour show) } else { //sinon affiche toutes les classes. $lesClasses = Classe::all()->sortby("sessionscholaire_id"); //ce n'est pas exactement par session, mais si les id sont dans le bon ordre, ca le sera. } //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(); $lesClasses = $lesClasses->filter(function ($item) use($u) { return $item->professeurs()->get()->contains("id", $u->id); }); } $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: enlever input d'ici, ca crée un lien avec la view. } $filtre1 = createFiltreParSessionPourClasses($lesClasses, true); $tp = $item; return compact('tp', 'belongsToList', 'belongsToSelectedIds', 'filtre1'); }