diff --git a/controllers/AnnouncementController.php b/controllers/AnnouncementController.php index 8a3c825..e3aa3e0 100644 --- a/controllers/AnnouncementController.php +++ b/controllers/AnnouncementController.php @@ -4,6 +4,7 @@ use app\core\Controller; use app\core\Request; +use app\model\Course; use app\model\SiteAnnouncement; use app\model\CourseAnnouncement; @@ -31,11 +32,13 @@ public function displayCourseAnnouncements(Request $request) { $body = $request->getBody(); $params['course_code'] = $body['course_code']; + $params['course'] = Course::getCourse($body['course_code']); $params['announcements'] = CourseAnnouncement::getCourseAnnouncements($params['course_code']); return $this->render( view: 'course/course_announcement', params: $params ); + } /** diff --git a/controllers/CourseController.php b/controllers/CourseController.php index a014fd1..2f2e375 100644 --- a/controllers/CourseController.php +++ b/controllers/CourseController.php @@ -171,7 +171,9 @@ public function displayAllSubmissions(Request $request) { $body = $request->getBody(); $params['course_code'] = $body['course_code']; + $params['submission'] = Course::getCourse($body['course_code']); $params['submissions'] = Submission::getSubmission($params['course_code']); + $params['remaining_points'] = count($params['submissions']) > 0 ? $params['submissions'][0]->remainingPoints : 100; return $this->render( view: '/submissions', allowedRoles: ['Lecturer'], @@ -195,9 +197,10 @@ public function CreateSubmission(Request $request) topic: $body['heading'], description: $body['content'], dueDate: $dueDate->format('Y-m-d H:i:s'), + remainingPoints: (int)$body['remainingPoint'] ?? 0, allocatedMark: (int)$body['mark'] ?? 0, allocatedPoint: (int)$body['point'] ?? 0, - visibility: $body['visibility'] ?? false, + visibility: $body['visibility'] ?? false ); $submission_id = $course_submissions->getLastSubmissionId()+1; diff --git a/model/Submission.php b/model/Submission.php index c787e1e..d6432c8 100644 --- a/model/Submission.php +++ b/model/Submission.php @@ -16,11 +16,12 @@ class Submission private string $dueDate; private bool $visibility; private string $location; + public int $remainingPoints; private function __construct() {} - public static function createNewSubmission($courseCode, $topic, $description, $dueDate, $allocatedMark=0, $allocatedPoint=0, $visibility=false, $location="",$submissionId="") { + public static function createNewSubmission($courseCode, $topic, $description, $dueDate, $remainingPoints, $allocatedMark=0, $allocatedPoint=0, $visibility=false, $location="",$submissionId="") { $submission = new Submission(); if ($submissionId != ""){ $submission->submissionId = $submissionId; @@ -33,6 +34,7 @@ public static function createNewSubmission($courseCode, $topic, $description, $d $submission->dueDate = $dueDate; $submission->visibility = $visibility; $submission->location = $location; + $submission->remainingPoints = $remainingPoints; return $submission; } @@ -44,17 +46,29 @@ public static function getSubmission($course_code): array where: ['course_code' => $course_code], order: 'submission_id DESC' ); + + $total_allocated_marks = Application::$db->select( + table: 'coursesubmission', + columns: ['SUM(allocated_point)'], + where: ['course_code' => $course_code], + limit: 1 + ); + $marks_row = mysqli_fetch_assoc($total_allocated_marks); + $total_allocated_points = $marks_row['SUM(allocated_point)'] * 100 / 100; + $remaining_points = 100 - $total_allocated_points; + while ($sub = Application::$db->fetch($results)){ $assignmentSubmissions[] = self::createNewSubmission( courseCode: $sub['course_code'], topic: $sub['topic'], description: $sub['description'], dueDate: $sub['due_date'], + remainingPoints: $remaining_points, allocatedMark: $sub['allocated_mark'], allocatedPoint: $sub['allocated_point'], visibility: $sub['visibility'], location: $sub['attachments']?? '', - submissionId: $sub['submission_id'] + submissionId: $sub['submission_id'] // Pass the remaining points to each submission ); } return $assignmentSubmissions; @@ -314,5 +328,11 @@ public function setLocation(string $location): void $this->location = $location; } - + /** + * @return int + */ + public function getRemainingPoints(): int + { + return $this->remainingPoints; + } } \ No newline at end of file diff --git a/views/course/course_announcement.php b/views/course/course_announcement.php index 6d818db..da66a73 100644 --- a/views/course/course_announcement.php +++ b/views/course/course_announcement.php @@ -2,7 +2,9 @@
+

getCourseName()?>

+
diff --git a/views/submissions.php b/views/submissions.php index 5ffc9f4..7cdf39d 100644 --- a/views/submissions.php +++ b/views/submissions.php @@ -1,6 +1,7 @@
+

getCourseName()?>

@@ -16,7 +17,8 @@ class="add-headline text-bold v-center text-justify" id="" wrap="hard">
Marks Allocated:-
-
Points Allocated:-
+
Points Allocated:-
+