示例#1
0
 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'));
 }