public static function autoSubmissionStatus() { echo "<hr><br>Starting automated update of status of submissions in judging queue at " . Carbon::now('America/Detroit')->toDayDateTimeString() . "<br>"; $submissions = Submission::where('status', 'Judging')->get(); foreach ($submissions as $submission) { $form = $submission->formdefinition()->first(); echo "<hr>"; echo "Submission: " . $submission->id . " by " . $submission->name . " for " . $form->name . "<br>"; $judges = $form->judges()->get(); $count = 0; foreach ($judges as $judge) { if ($submission->scores()->where('user_id', $judge->id)->get()->count() == 0) { echo "Judge " . $judge->name . " has no score recorded<br>"; continue; } else { echo "Judge " . $judge->name . " has a recorded score<br>"; $count++; } } if ($count == $judges->count()) { echo "All judges have scored, submission status is now Judged.<br>"; $submission->status = "Judged"; $submission->save(); } } echo "<br>Ending automated update of status of submissions in judging queue at " . Carbon::now('America/Detroit')->toDayDateTimeString() . "<br><hr>"; }
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')); }
public function sendToJudges(User $user, Submission $submission) { $group = $submission->group()->first(); if ($group->isAdmin($user->id)) { return true; } elseif ($group->isMod($user->id)) { return true; } else { return false; } }