$q->where('name', '=', 'INSTRUCTOR'); })->get()->sortBy('last_name'); $app->render('admin/admin.editcourse.html.twig', ['errors' => $v->errors(), 'request' => $request, 'course' => $course, 'coordinators' => $coordinators]); } } else { // No course id provided, so this is a new course // Create course and default queues // Check field validation results if ($v->passes()) { $course = Course::create(['name' => $name, 'description' => $description, 'id_coordinator' => $coordinator, 'id_added_by' => $addedby]); /* Create an array of QueueElements to add to this queue */ $elements = [new QueueElement(['name' => 'Add/Drop', 'description' => 'Add/Drop Form'])]; // Update or create the queue and get reference $queue = Queue::create(['name' => 'Add/Drop', 'description' => 'Queue for processing course add/drop requests', 'is_enabled' => true]); // Associate queue with its owner $course->queues()->save($queue); // Add queue elements for the new queue $queue->elements()->saveMany($elements); $app->flash('global', 'Course Info Saved'); return $app->response->redirect($app->urlFor('admin.editCourse', array('id' => $course->id_course))); } else { // New course validation failed // // Retrieve a collection of users that have the 'INSTRUCTOR' role. // This will be passed into the view so users can select a valid advisor when registering. $coordinators = $app->user->whereHas('roles', function ($q) { $q->where('name', '=', 'INSTRUCTOR'); })->get()->sortBy('last_name'); $app->render('admin/admin.newcourse.html.twig', ['errors' => $v->errors(), 'request' => $request, 'coordinators' => $coordinators]);
// Notify submission creator of action if ($app->auth->id_user != $submission->id_user) { $app->mail->send('email/submissionaction.html.twig', ['user' => $app->auth, 'submission' => $submission], function ($message) use($submission) { $message->to($submission->user->email); $message->subject($submission->status . ': ' . $submission->queue->name . ' - ' . $submission->queue->queueable->name); }); } $app->response->redirect($app->urlFor('home.view.submission', array('id' => $subId))); })->name('submission.action'); $app->post('/submissionsave/:id', $authenticated(), function ($queueId) use($app) { if (!isset($queueId) || !is_numeric($queueId)) { $app->flash('global', 'Submission queue id invalid or not provided!'); $app->redirect($app->urlFor('home')); } // Get the Queue that were creating a submission for $queue = Queue::with('elements')->find(intval($queueId)); // If no queue with provided id is found, redirect user to home with error if (empty($queue)) { $app->flash('global', 'Could not find queue with id (' . $queueId . ')!'); $app->redirect($app->urlFor('home')); } // Make sure that the queues required number of attachments matches the number submitted // If not, redirect with error message if (count($_FILES) != count($queue->elements)) { $app->flash('global', 'Incorrect number of files attached!'); $app->redirect($app->urlFor('home.view.submission.create', array('id' => $queue->id_queue))); } $request = $app->request; $filetotal = strip_tags($request->post('filetotal')); $comment = strip_tags(trim($request->post('comment'))); /*
<?php use DocManager\Course\Course; use DocManager\Queue\Queue; $app->get('/', function () use($app) { if ($app->auth) { $userQueues = $app->auth->queues->sortBy('name'); $mycourses = Course::where('id_coordinator', $app->auth->id_user)->with('queues')->get()->sortBy('name'); $activeQueues = Queue::where('is_enabled', true)->with('queueable')->get()->sortBy('name'); $app->render('home.default.html.twig', ['userqueues' => $userQueues, 'mycourses' => $mycourses, 'activequeues' => $activeQueues]); } else { $app->render('home.default.html.twig'); } })->name('home');