public function update($_, $groupId, $id) { $primary = Input::has('primary') ? 1 : 0; $order = (int) Input::get('display_order'); if ($user = User::find($id)) { $this->updateTrainer($groupId, $id, ['is_primary' => $primary, 'display_order' => $order]); } return json(1); }
public function store($_, $groupId) { $group = Group::findOrFail($groupId); $userId = Input::get('user_id'); if (!($user = User::find($userId))) { return back(); } if ($group->users()->count('id') >= (int) $group->available) { flash('Nu mai poți adăuga utilizatori în aceasă grupă (nu mai sunt locuri).', 'danger'); } elseif (!in_array($user->id, $group->users()->lists('id'))) { $group->users()->attach($user->id); $this->query($userId, $groupId)->update(['confirmed' => 1]); flash("<b>{$user->full_name}</b> a fost adăugat cu success."); } return back(); }
/** * @return Response */ public function api() { $data = []; $groups = User::find($this->userId, ['id'])->trainerGroups()->get(['area_id', 'category_id', 'name']); foreach ($groups as $group) { $key = $group->area_id . ($group->category_id ? '_' . $group->category_id : ''); if (isset($data[$key])) { continue; } $area = Area::findOrFail($group->area_id, ['id', 'name']); $category = null; $query = Response::join('quiz', 'response.quiz_id', '=', 'quiz.id')->join('users', 'response.user_id', '=', 'users.id'); if ($group->category_id) { $category = Category::findOrFail($group->category_id, ['id', 'name']); $query->where('category_id', $category->id); } else { $query->where('area_id', $area->id); } $applicants = $query->get(['response.id', 'response.created_at', 'full_name', 'email', 'school']); foreach ($applicants as $key => $applicant) { $applicants[$key]->id = (int) $applicant->id; $response = Response::findOrFail($applicant->id); $choices = $applicant->trainerchoices()->lists('choice', 'trainer_id'); $choice = isset($choices[$this->userId]) ? (int) $choices[$this->userId] : null; if ($choice !== 1 && !is_null($choice)) { $applicants->forget($key); continue; } $responses = []; foreach ($response->questions as $rquestion) { if (!$rquestion->question) { continue; } $answers = []; $roptions = $rquestion->options->lists('response', 'quiz_question_option_id'); foreach ($rquestion->question->options as $option) { if (array_key_exists($option->id, $roptions)) { if ($rquestion->question->type == 'text' || $rquestion->question->type == 'textbox') { $answer = html_entity_decode($roptions[$option->id]); } else { $answer = true; } } else { $answer = false; } $answers[] = ['option' => $option->option ? html_entity_decode($option->option) : null, 'answer' => $answer]; } $responses[] = ['question' => $rquestion->question->question, 'question_type' => $rquestion->question->type, 'answers' => $answers]; } $applicant->responses = $responses; } $applicants->values(); $data[$key] = ['applicants' => $applicants, 'area' => $area, 'category' => $category]; } return json(array_values($data), 200); }
public function addTrainer($_, $id) { $group = Group::findOrFail($id); $userId = Input::get('user_id'); if (!($user = User::find($userId))) { return back(); } if ((int) $user->role->id === $this->trainerRoleId) { if (!in_array($user->id, $group->trainers->lists('id'))) { $group->trainers()->attach($user->id); flash("Trainerul <b>{$user->present()->fullName}</b> a fost adăugat."); } } return back(); }