Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 75 additions & 2 deletions app/Http/Controllers/AssignmentController.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
use App\Course;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;

class AssignmentController extends Controller
Expand Down Expand Up @@ -49,8 +51,24 @@ public function show(Course $course, Assignment $assignment)
$currentTime = Carbon::now();
$interval = date_diff($currentTime, new \DateTime($aDue));

//Get user ID for previous assignments
$userID = Auth::id();
$previousAssignments = DB::table('submissions')->where('user_id', $userID)->get(['assignment_id']);
$assignmentID = [];
$courseName = [];

foreach($previousAssignments as $aTest){
$assignmentID[] = $aTest->assignment_id;
}

$courseAssignments = DB::table('assignments')->whereIn('id', $assignmentID)->get();

foreach($courseAssignments as $cTest){
$courseName = $cTest->name;
}

//This calculates the difference between the assignment due date
//and the current time in EST. Remaining is sent as a fromatted string into the view
//and the current time in EST. Remaining is sent as a formatted string into the view
if($interval->y != 0)
$remaining .= "Years: " . $interval->y;
if($interval->m != 0)
Expand All @@ -59,7 +77,7 @@ public function show(Course $course, Assignment $assignment)
$remaining .= " Days: " . $interval->d;
$remaining .= " - " . $interval->h . ":" . $interval->i . ":" . $interval->s;

return view('assignments.show', compact('cName', 'aName', 'aDescription', 'aDue', 'aStart', 'aSimilarity', 'remaining'));
return view('assignments.show', compact('cName', 'aName', 'aDescription', 'aDue', 'aStart', 'aSimilarity', 'remaining', 'course', 'assignment', 'courseAssignments'));
}

public function register(Course $course)
Expand All @@ -74,6 +92,61 @@ public function settings(Course $course)
return view('assignments.settings', compact('cName', 'course'));
}

public function submit(Course $course, Assignment $assignment, Request $request)
{
$courses = DB::table('courses')->select('slug')->get();

//Variables for general course and assignment information
$aName = $assignment->name;
$cName = $course->name;

//Variables for submission
$sTime = Carbon::now();
$sName = $request->sName;
$sComments = $request->sComments;

//Submission difference calculation
$sRemaining = "";
$sRemainingAttach = "";
$sRemainingColor = "";

//Getting user ID
$userID = Auth::id();
$userIDCheck = DB::table('courses_users')->where('user_id', $userID)->value('course_id');
$uName = DB::table('users')->where('id', $userID)->value('name');

//Check if user is enrolled in the course
if($userIDCheck != $course->id){
abort('403');
}

//Checks the difference between due date and submission time
//Also sets the text color of the difference and determines whether
//the submission is early or late.
if ($sTime > $assignment->due){
$interval = date_diff($sTime, new \DateTime($assignment->due));
$sRemainingAttach = " late";
$sRemainingColor = "red";
}else{
$interval = date_diff(new \DateTime($assignment->due), $sTime);
$sRemainingAttach = " early";
$sRemainingColor = "green";
}

//Format the remaining time calculated above
if($interval->y != 0)
$sRemaining .= $interval->y . " year(s) ";
if($interval->m != 0)
$sRemaining .= $interval->m . " month(s) ";
if($interval->d != 0)
$sRemaining .= $interval->d . " days(s)";

$sRemaining .= " - " . $interval->h . " hour(s) " . $interval->i . " minute(s) " . $interval->s . " second(s) " . $sRemainingAttach;


return view ('assignments.submit', compact('cName', 'aName', 'sTime', 'sName', 'sComments', 'sRemaining', 'sRemainingColor', 'uName', 'course', 'assignment'));
}

public function store(Course $course, Request $request)
{
$a = new Assignment;
Expand Down
11 changes: 9 additions & 2 deletions resources/views/assignments/show.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,17 @@
<div class="panel-heading">Submissions</div>
<div class="panel-body">
<strong>Previous submissions</strong><br>
<ul class="list-group">
@foreach( $courseAssignments as $courseName)
<a href="#">
<p class="list-group-item-text">{{$courseName->name}}</p>
</a>
@endforeach
</ul>

<center><button class="btn btn-success" type="button" data-toggle="collapse" data-target="#submission" style="margin-top:10px; margin-bottom:10px; width: 100%">Submit Assignment</button></center>

<form>
<form method="POST" role="form" action="{{ action('AssignmentController@submit', [$course, $assignment]) }}">
{{ csrf_field() }}
<div id="submission" class="collapse">
<div class="form-group">
<label for="submissionName">Submission Name</label>
Expand Down
39 changes: 39 additions & 0 deletions resources/views/assignments/submit.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@extends('layouts.app')

@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel-heading" style="font-size: 20px; font-weight: 400">{{$cName}}: Submission successful!</div>
</div>
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Submission for {{$aName}}</div>
<div class="panel-body">
<strong>Submission Name:</strong><br>
{{$sName}}<br>
<strong>Files:</strong><br>
<a href="">test</a><br>
<strong>Comments:</strong><br>
{{$sComments}}<br>
<strong>Submitted at: </strong><br>
{{$sTime}}, <i>by {{$uName}}</i><br><br>
<div style="color:{{$sRemainingColor}}">Submitted {{$sRemaining}}</div><br><br>
<center>
<div class="form-group" style="display:inline-block">
<a href="{{action('AssignmentController@show', [$course, $assignment])}}">
<button class="btn btn-primary" type="submit">Go back to Assignment</button>
</a>
</div>
<div class="form-group" style="display:inline-block">
<a href="{{action('CourseController@show', $course)}}">
<button class="btn btn-primary" type="submit">Go back to Course</button>
</a>
</div>
</center>
</div>
</div>
</div>
</div>
</div>
@endsection
14 changes: 14 additions & 0 deletions resources/views/errors/403.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
@extends('layouts.app')

@section('content')
<div class="container">
<div class="row">
<div class="col-lg-12">
<center>
<h1 style="font-size: 220px; font-weight: 800">403</h1><br>
<strong>Permission denied! You don't have access to this page :(</strong>
</center>
</div>
</div>
</div>
@endsection
1 change: 1 addition & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

/* AssignmentController Routes */
Route::get('course/{course}/assignment/register', 'AssignmentController@register');
Route::post('course/{course}/assignment/{assignment}/submit', 'AssignmentController@submit');
Route::get('course/{course}/assignment/settings', 'AssignmentController@settings');
Route::post('course/{course}/assignment/register', 'AssignmentController@store');
Route::get('course/{course}/assignment/{assignment}','AssignmentController@show')->name('courseAssignment');
Expand Down