function createFeedback(FeedbackRequest $request) { // Double check to make sure the current user is authorized to do this... $this->authorize('create-feedback'); $input = $request->all(); // Check application ID $application = Application::find($input['application_id']); // Check regarding ID / type, Note, nothing to be done for 'general' feedback if ($input['regarding_type'] == 'question') { $regarding = Question::find($input['regarding_id']); } elseif ($input['regarding_type'] == 'document') { // todo } // Create new feedback $feedback = new Feedback(); $feedback->application_id = $application->id; $feedback->regarding_type = $input['regarding_type']; if (isset($regarding) && $regarding->exists) { $feedback->regarding_id = $regarding->id; } // Set the current judge ID for a record of who requested this feedback $feedback->user_id = Auth::user()->id; $feedback->save(); $feedback->update($input); // Notify applicant of new feedback requested event(new FeedbackChanged($feedback, ['status' => 'created'])); $request->session()->flash('success', 'Your feedback has been requested.'); return redirect('/applications/' . $application->id . '/review'); }
public function scoreCriteria(ScoreRequest $request) { // Check if current user is allowed to score things $this->authorize('score-application'); $input = $request->all(); $application = Application::find($input['application_id']); $criteria = Criteria::find($input['criteria_id']); // Make sure the application hasn't been finalized if (!in_array($application->judge_status, ['new', 'ready'])) { $request->session()->flash('error', 'This application has already been finalized.'); return redirect('/applications/' . $application->id . '/review'); } // Make sure this user hasn't already submitted their scores $judged = Judged::where(['application_id' => $application->id, 'user_id' => Auth::user()->id])->get()->first(); if (!empty($judged)) { $request->session()->flash('error', 'You have already judged this application!'); return redirect('/applications'); } // Check if a score already exists for this criteria $score = Score::firstOrNew(['application_id' => $application->id, 'criteria_id' => $criteria->id, 'user_id' => Auth::user()->id]); // Add submitted information $score->application_id = $application->id; $score->criteria_id = $criteria->id; $score->user_id = Auth::user()->id; $score->score = $input['score']; $score->answer = $input['answer']; $score->save(); $request->session()->flash('success', 'Your score has been saved.'); return redirect('/applications/' . $application->id . '/review'); }
public function updateAnswer(AnswerRequest $request, Answer $answer) { $input = $request->all(); $application = Application::find($input['application_id']); if ($answer->user->id != Auth::user()->id) { $request->session()->flash('error', 'Only the person who created an application may answer questions for it.'); return redirect('/login'); } if ($answer->application->status != 'new') { $request->session()->flash('error', 'Your application has been submitted, you may no longer make changes.'); return redirect('/applications/' . $application->id . '/review'); } $answer->update($input); // Check if a file needs to be uploaded if ($answer->question->type == 'file') { // Save uploaded file $upload = Document::handleUpload($request); // Save new document Document::createDocument($application, $upload, $answer); } $request->session()->flash('success', 'Your answer has been saved.'); return redirect('/applications/' . $answer->application->id); }
public function postFeedback(Request $request, $id, $hash) { $application = Application::find($id); if ($application == null || $hash != md5($application->name)) { // Invalid ID/Hash Combo, Try Mentor $application = Mentor::find($id); } if ($hash != md5($application->name)) { return $this->getIndex(); } $feedback = new Feedback(); $feedback->name = $application->name; $feedback->feedbackOnMentor = $request->input('mentor'); $feedback->feedbackOnProgram = $request->input('program'); $feedback->ideasForCurrentSemester = $request->input('currentSemester'); $feedback->ideasForNextSemester = $request->input('nextSemester'); $feedback->save(); return view('pages.submitted'); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { Application::find($id)->delete(); return redirect('applications'); }