public function store(Submission $submissions, Request $request) { $this->validate($request, ["numerical_score" => "required|numeric|min:0|max:10", "comment" => "required|string"]); try { $form = $submissions->formdefinition()->first(); $due_date = Carbon::createFromFormat('Y-m-d H:i:s', $form->scores_due); if (Auth::user()->cannot('judge', $submissions)) { flash()->overlay("You do not have permission to judge submissions in this group", "Not Authorized"); return redirect()->back(); } if ($due_date < Carbon::now()) { flash()->overlay("The scores were due on " . $due_date->toDayDateTimeString() . ". If you need additional time, please contact your Team administrator to extend the deadline"); return redirect()->back(); } if ($submissions->scores()->where('user_id', Auth::user()->id)->get()->count() > 0) { flash()->overlay("You have already judged this submission. You cannot submit a second score, but you may change your initial score.", "Sorry"); return redirect()->back(); } $score = new Scores(["form_definition_id" => $form->id, 'user_id' => Auth::user()->id, "submission_id" => $submissions->id, "score" => $request->input("numerical_score"), 'user_name' => Auth::user()->name, "comment" => $request->input("comment"), "status" => "Provisional"]); $score->save(); flash()->overlay("Your score was saved. You can return anytime before the due date (" . Carbon::createFromFormat('Y-m-d H:i:s', $form->scores_due)->toDayDateTimeString() . ")\n to make changes. After the due date, all scores are final.", "Submission Scored!"); //return redirect(action("ScoreController@edit",compact('submissions','score'))); return redirect(action('SubmissionController@show', compact('submissions'))); } catch (\Exception $e) { flash()->overlay("There was a technical problem saving the score. Restart your Internet browser and try again. If the problem persists, contact your Team or System administrator", "Sorry"); return redirect()->back(); } }
public function show(Submission $submissions) { $form = $submissions->formdefinition()->first(); $group = $form->group()->first(); $submission_fields = json_decode($submissions->options); $fields = new Collection(); foreach ($submission_fields as $key => $value) { if ($form->fields()->where('field_id', $key)->get() !== null) { $field = new Collection(); $field->put("fieldDef", $form->fields()->where('field_id', $key)->first()); $field->put("submission", $value); $fields->push($field); } } return view('submissions.show', compact('submissions', 'form', 'fields', 'group')); }