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; }