LRR/Submissions.php

458 lines
24 KiB
PHP
Raw Normal View History

<?php
include 'NoDirectPhpAcess.php';
?>
<?php
2021-10-20 23:12:56 +08:00
$page = 'Courses+';
include 'Header.php';
$student_id = $_SESSION["user_student_id"];
$group_id = $_SESSION["user_group_id"];
$c_date = date("Y-m-d H:i");
2021-10-20 23:12:56 +08:00
if (!empty($_GET["id"])) {
2022-05-19 12:35:27 +08:00
$id = mysqli_real_escape_string($con, $_GET["id"]);
$course_id = $id;
}
2021-10-20 23:12:56 +08:00
if (!empty($_GET["header"])) {
$header = $_GET["header"];
}
2021-10-20 23:12:56 +08:00
if (!empty($_GET["total"])) {
$total = $_GET["total"];
2021-10-20 23:12:56 +08:00
} else {
$total = 0;
}
2021-10-20 23:12:56 +08:00
$resultx1 = mysqli_query($con, "SELECT `Lab_Report_ID`,Title, lab_reports_table.Course_ID, `Posted_Date`, `Deadline`, `Marks`, `Type` , courses_table.URL FROM `lab_reports_table` INNER JOIN courses_table ON courses_table.Course_ID=lab_reports_table.Course_ID WHERE Lab_Report_ID=$id");
while ($row = mysqli_fetch_assoc($resultx1)) {
$Report_Type = $row['Type'];
$c_id = $row['Course_ID'];
$Report_Title = $row['Title'];
$url = $row['URL'];
2021-10-20 23:12:56 +08:00
}
2023-08-08 15:02:26 +08:00
?>
2023-08-08 15:02:26 +08:00
<div class="container">
<?php
echo "<div><a href='Courses.php?course=$url'> $header </a></div>";
2021-10-20 23:12:56 +08:00
?>
2023-08-08 15:02:26 +08:00
<div class="row">
2021-10-20 23:12:56 +08:00
<!-- Lecturer CODE-->
2021-10-20 23:12:56 +08:00
<?php
if ($_SESSION['user_type'] == "Lecturer" || $_SESSION['user_type'] == "TA") {
2021-10-20 23:12:56 +08:00
?>
<div class="col-md-12">
2021-10-20 23:12:56 +08:00
<?php
2021-10-20 23:12:56 +08:00
error_reporting(0);
2021-10-20 23:12:56 +08:00
if (isset($_SESSION['info_Marking'])) {
echo '<div class="alert alert-warning">' . $_SESSION['info_Marking'] . '</div>';
2021-10-20 23:12:56 +08:00
$_SESSION['info_Marking'] = null;
}
2021-10-20 23:12:56 +08:00
$resultx1 = mysqli_query($con, "Select Count(*) as cnt from lab_report_submissions where lab_report_submissions.Lab_Report_ID=$id");
2023-08-25 21:56:41 +08:00
$row = mysqli_fetch_assoc($resultx1);
$count_subs = $row['cnt'];
2021-10-20 23:12:56 +08:00
$resultx2 = mysqli_query($con, "Select COUNT(*) as cnt from lab_report_submissions where lab_report_submissions.Lab_Report_ID=$id and Status='Marked'");
2023-08-25 21:56:41 +08:00
$row = mysqli_fetch_assoc($resultx2);
$count_marked = $row['cnt'];
2021-10-20 23:12:56 +08:00
$resultx3 = mysqli_query($con, "Select COUNT(*) as cnt from lab_report_submissions where lab_report_submissions.Lab_Report_ID=$id and Status='Pending'");
2023-08-25 21:56:41 +08:00
$row = mysqli_fetch_assoc($resultx3);
$count_unmarked = $row['cnt'];
2021-10-20 23:12:56 +08:00
$resultx4 = mysqli_query($con, "Select COUNT(*) as cnt from lab_report_submissions where lab_report_submissions.Lab_Report_ID=$id and Status='Remarking'");
2023-08-25 21:56:41 +08:00
$row = mysqli_fetch_assoc($resultx4);
$count_remark = $row['cnt'];
2023-08-25 21:50:14 +08:00
$resultx5 = mysqli_query($con, "SELECT COUNT(*) as cnt FROM course_groups_table WHERE Course_id=$c_id");
2023-08-25 21:56:41 +08:00
$row = mysqli_fetch_assoc($resultx5);
$count_group = $row['cnt'];
2023-08-25 21:50:14 +08:00
2021-10-20 23:12:56 +08:00
?>
<br>
2023-08-26 20:02:19 +08:00
<p class="text-muted"><b>Total submissions (<?php echo $count_subs; ?>)</b></p>
2021-10-20 23:12:56 +08:00
<!-- Nav tabs -->
<ul class="nav nav-tabs" id="myTab">
2021-10-20 23:12:56 +08:00
<li class="nav-item">
2023-08-26 20:02:19 +08:00
<a class="nav-link active" href="#menu1">Unmarked submissions (<?php echo $count_unmarked; ?>)</a>
2021-10-20 23:12:56 +08:00
</li>
<li class="nav-item">
2023-08-26 20:02:19 +08:00
<a class="nav-link" href="#menu2">Marked submissions (<?php echo $count_marked; ?>)</a>
2021-10-20 23:12:56 +08:00
</li>
<li class="nav-item">
2023-08-26 20:02:19 +08:00
<a class="nav-link" href="#menu3">Remarking requests (<?php echo $count_remark; ?>)</a>
2021-10-20 23:12:56 +08:00
</li>
<li class="nav-item">
2023-08-26 20:02:19 +08:00
<a class="nav-link" href="#menu4">Course groups (<?php echo $count_group; ?>)</a>
2021-10-20 23:12:56 +08:00
</li>
</ul>
<div class="tab-content">
<div id="menu1" class="tab-pane active"><br>
2021-10-20 23:12:56 +08:00
<?php
if ($Report_Type == "Group") {
2023-08-27 22:37:05 +08:00
$result1 = mysqli_query($con, "SELECT Submission_ID, Submission_Date, lab_report_submissions.Lab_Report_ID, lab_report_submissions.Course_Group_id, Attachment1, Notes, Attachment2, Attachment3, Attachment4, Marks, lab_report_submissions.Status, Title, course_groups_table.Group_Name, course_groups_table.Group_Leader, users_table.Full_Name, users_table.Student_id
FROM lab_report_submissions
LEFT JOIN users_table ON users_table.Student_ID=lab_report_submissions.Student_id
LEFT JOIN course_groups_table ON course_groups_table.Course_Group_id=lab_report_submissions.Course_Group_id
WHERE Lab_Report_ID=$id AND lab_report_submissions.Status='Pending' ORDER BY Submission_Date DESC");
2021-10-20 23:12:56 +08:00
} else {
2023-08-27 22:37:05 +08:00
$result1 = mysqli_query($con, "SELECT Submission_ID, Submission_Date, lab_report_submissions.Lab_Report_ID, lab_report_submissions.Student_id sub_std, lab_report_submissions.Course_Group_id, Attachment1, Notes, Attachment2, Attachment3, Attachment4, Marks, lab_report_submissions.Status, Title, users_table.Full_Name, course_group_members_table.Student_ID
FROM lab_report_submissions
LEFT JOIN users_table ON users_table.Student_ID=lab_report_submissions.Student_id
LEFT JOIN course_group_members_table ON course_group_members_table.Course_Group_id=lab_report_submissions.Course_Group_id
WHERE Lab_Report_ID=$id AND lab_report_submissions.Status='Pending' ORDER BY Submission_Date DESC");
}
2021-10-20 23:12:56 +08:00
if (mysqli_num_rows($result1) == 0) {
2023-08-05 16:11:27 +08:00
echo "No unmarked submissions.";
2021-10-20 23:12:56 +08:00
} else {
while ($row = mysqli_fetch_assoc($result1)) {
$title = $row['Title'];
$Marks = $row['Marks'];
$posted = $row['Submission_Date'];
$deadline = $row['Deadline'];
$att1 = $row['Attachment1'];
$att2 = $row['Attachment2'];
$att3 = $row['Attachment3'];
$att4 = $row['Attachment4'];
$labid = $row['Lab_Report_ID'];
$submitter_student_number = $row['Student_id'];
$submitted_group = $row['Course_Group_id'];
$Submission_ID = $row['Submission_ID'];
$student_name = $row['Full_Name'];
$groupname = $row['Group_Name'];
$groupleader = $row['Group_Leader'];
$student_id = $row['sub_std'];
if ($submitted_group == 0) {
2023-08-05 16:11:27 +08:00
$submitted_by = $student_name . " (" . $student_id . ")";
2021-10-20 23:12:56 +08:00
} else {
$submitted_by = "$student_name ($submitter_student_number) for group $groupname ";
}
$base_att1 = basename($att1);
$base_att2 = basename($att2);
$base_att3 = basename($att3);
$base_att4 = basename($att4);
$full_link = "<a href='~\..\Download.php?file=$att1&attachment=1'>$base_att1</a>"; // prevent students from directly accessing their classmates' submissions
if ($att2 != "") {
$full_link = $full_link . " | <a href='~\..\Download.php?file=$att2&attachment=2'>$base_att2</a>";
}
if ($att3 != "") {
$full_link = $full_link . " | <a href='~\..\Download.php?file=$att3&attachment=3'>$base_att3</a>";
}
if ($att4 != "") {
$full_link = $full_link . " | <a href='~\..\Download.php?file=$att4&attachment=4'>$base_att4</a>";
}
echo "<div class='btn btn-default break-word' style='dislay:block; word-wrap: break-word; border: 1px solid #F0F0F0;border-left:1px solid #eee;'>
2023-08-25 21:14:05 +08:00
$title <br>
By: <b> <span class='text-selectable'> $submitted_by </span> </b> <br>
<small>Submitted on: $posted</small>
<button class='btn btn-sm btn-primary' style='margin-left:50px;' onclick='mark($Submission_ID,\"$title\",$total)'> Mark </button><br>
Attachments : $full_link
</div>";
2021-10-20 23:12:56 +08:00
}
}
echo "";
?>
</div>
<div id="menu2" class="tab-pane"><br>
2021-10-20 23:12:56 +08:00
<?php
if ($Report_Type == "Group") {
2023-08-26 20:12:46 +08:00
$result = mysqli_query($con, "SELECT Submission_ID, Visibility, Submission_Date, lab_report_submissions.Lab_Report_ID, lab_report_submissions.Course_Group_id, Attachment1, Notes, Attachment2, Attachment3, Attachment4, Marks, lab_report_submissions.Status, Title, course_groups_table.Group_Name
FROM lab_report_submissions
LEFT JOIN course_groups_table ON course_groups_table.Course_Group_id=lab_report_submissions.Course_Group_id
WHERE Lab_Report_ID=$id and lab_report_submissions.Status='Marked'");
2021-10-20 23:12:56 +08:00
} else {
2023-08-26 20:12:46 +08:00
$result = mysqli_query($con, "SELECT Submission_ID, Visibility, Submission_Date, lab_report_submissions.Lab_Report_ID, lab_report_submissions.Student_id sub_std, lab_report_submissions.Course_Group_id, Attachment1, Notes, Attachment2, Attachment3, Attachment4, Marks, lab_report_submissions.Status, Title, users_table.Full_Name, course_group_members_table.Student_ID
FROM lab_report_submissions
LEFT JOIN users_table ON users_table.Student_ID=lab_report_submissions.Student_id
LEFT JOIN course_group_members_table ON course_group_members_table.Course_Group_id=lab_report_submissions.Course_Group_id
WHERE Lab_Report_ID=$id AND lab_report_submissions.Status='Marked' ORDER BY lab_report_submissions.Student_id Desc");
2021-10-20 23:12:56 +08:00
}
if (mysqli_num_rows($result) == 0) {
2023-08-26 20:12:46 +08:00
echo "No marked submissions.";
2023-08-26 20:12:46 +08:00
2021-10-20 23:12:56 +08:00
} else {
2023-08-05 16:11:27 +08:00
echo "<h3><a href='~\..\Script.php?exportgrade=true&lab=$id&lab_name=$Report_Title'><i class='fa fa-book'></i> Export grades</a></h3>";
2021-10-20 23:12:56 +08:00
while ($row = mysqli_fetch_assoc($result)) {
$title = $row['Title'];
$Marks = $row['Marks'];
//$ins=$row['Notes'];
$posted = $row['Submission_Date'];
$deadline = $row['Deadline'];
$att1 = $row['Attachment1'];
$att2 = $row['Attachment2'];
$att3 = $row['Attachment3'];
$att4 = $row['Attachment4'];
$labid = $row['Lab_Report_ID'];
$submitter_student_number = $row['Student_id'];
$submitted_group = $row['Course_Group_id'];
$Submission_ID = $row['Submission_ID'];
$student_name = $row['Full_Name'];
$student_id = $row['sub_std'];
$Visibility = $row['Visibility'];
$notes = $row['Notes'];
if ($submitted_group == 0) {
$submitted_by = $student_name . "(" . $student_id . ")";
} else {
$submitted_by = "<i>(GROUP)</i> Group X ";
}
$base_att1 = basename($att1);
$full_link = "<a href='~\..\Download.php?file=$att1&attachment=1'>$base_att1</a>"; // prevent students from directly accessing their classmates' submissions
2021-10-20 23:12:56 +08:00
if ($att2 != "") {
$full_link = $full_link . "| <a href='~\..\Lab_Report_Submisions\\$att2'>$att2</a>";
}
if ($att3 != "") {
$full_link = $full_link . "| <a href='~\..\Lab_Report_Submisions\\$att3'>$att3</a>";
}
if ($att4 != "") {
$full_link = $full_link . "| <a href='~\..\Lab_Report_Submisions\\$att4'>$att4</a>";
}
2022-06-03 09:09:51 +08:00
// you will notice why i used span here to wrap the $submitted_by variable
// because if we wrap with span , the css class text-selectable can be used only by the submittedBy variable
2022-05-25 09:07:59 +08:00
// if you want to use text-selectable class on whole div, just call the css class
echo "<div class='btn btn-default break-word' style='dislay:block; word-wrap:break-word; border:1px solid #F0F0F0; border-left:1px solid #eee;'>
<b> $title </b> &nbsp;&nbsp; [Marks: $Marks] <button class='btn btn-light btn-sm' onclick='mark($Submission_ID,\"$title\",$total)'>Remark</button><br>
<small>Submitted by <span class = 'text-selectable'>$submitted_by</span> on $posted</small>
<span class='badge badge-info'>Marking comments</span> $notes <br>
Attachments : $full_link
</div>";
2021-10-20 23:12:56 +08:00
}
}
echo "";
?>
</div>
<div id="menu3" class="tab-pane"><br>
2021-10-20 23:12:56 +08:00
<?php
if ($Report_Type == "Group") {
2023-08-26 20:12:46 +08:00
$resulty = mysqli_query($con, "SELECT Submission_ID, Submission_Date, lab_report_submissions.Lab_Report_ID, lab_report_submissions.Course_Group_id, Attachment1, Notes, Attachment2, Attachment3, Attachment4, lab_report_submissions.Marks, lab_report_submissions.Status, Title, course_groups_table.Group_Name
FROM lab_report_submissions
LEFT JOIN course_groups_table ON course_groups_table.Course_Group_id=lab_report_submissions.Course_Group_id
WHERE Lab_Report_ID=$id AND lab_report_submissions.Status='Remarking'");
2021-10-20 23:12:56 +08:00
} else {
2023-08-26 20:12:46 +08:00
$resulty = mysqli_query($con, "SELECT Submission_ID, Submission_Date, lab_report_submissions.Lab_Report_ID, lab_report_submissions.Remarking_Reason, lab_report_submissions.Student_id sub_std, lab_report_submissions.Course_Group_id, Attachment1, Notes, Attachment2, Attachment3, Attachment4, lab_report_submissions.Marks, lab_report_submissions.Status, Title, users_table.Full_Name, course_group_members_table.Student_ID
FROM lab_report_submissions
LEFT JOIN users_table ON users_table.Student_ID=lab_report_submissions.Student_id
LEFT JOIN course_group_members_table ON course_group_members_table.Course_Group_id=lab_report_submissions.Course_Group_id
WHERE Lab_Report_ID=$id AND lab_report_submissions.Status='Remarking'");
2021-10-20 23:12:56 +08:00
}
if (mysqli_num_rows($resulty) == 0) {
2023-08-05 16:11:27 +08:00
echo "No remarking requests.";
2021-10-20 23:12:56 +08:00
} else {
while ($row = mysqli_fetch_assoc($resulty)) {
$title = $row['Title'];
$Marks = $row['Marks'];
//$ins=$row['Notes'];
$posted = $row['Submission_Date'];
$deadline = $row['Deadline'];
$att1 = $row['Attachment1'];
$att2 = $row['Attachment2'];
$att3 = $row['Attachment3'];
$att4 = $row['Attachment4'];
$labid = $row['Lab_Report_ID'];
$remarking_reason = $row['Remarking_Reason'];
$submitter_student_number = $row['Student_id'];
$submitted_group = $row['Course_Group_id'];
$Submission_ID = $row['Submission_ID'];
$student_name = $row['Full_Name'];
$student_id = $row['sub_std'];
$gname = $row['Group_Name '];
if ($submitted_group == 0) {
$submitted_by = $student_name . "(" . $student_id . ")";
} else {
$submitted_by = "<i>(GROUP)</i> $gname";
}
$full_link = "<a href='~\..\Lab_Report_Submisions\\$att1'>$att1</a>";
if ($att2 != "") {
$full_link = $full_link . "| <a href='~\..\Lab_Report_Submisions\\$att2'>$att2</a>";
}
if ($att3 != "") {
$full_link = $full_link . "| <a href='~\..\Lab_Report_Submisions\\$att3'>$att3</a>";
}
if ($att4 != "") {
$full_link = $full_link . "| <a href='~\..\Lab_Report_Submisions\\$att4'>$att4</a>";
}
echo "<div class='btn btn-default break-word' style='dislay:block; word-wrap: break-word; border: 1px solid #F0F0F0;border-left: 2px solid #eee;'>"
. "$title <br>"
. "Submitted by: <b> <span class = 'text-selectable'>$submitted_by </span> &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; [ Marks: $Marks ] </b> <br>"
. "<span style='color:orange'><i class='fa fa-info-circle'></i> Remarking reason:</span> $remarking_reason <br>"
. "<button class='btn btn-light btn-sm' onclick='mark($Submission_ID,\"$title\",$total)'>Remark</button>"
. "&nbsp; <a href='~\..\Script.php?ignoreremarking=yes&id=$id&subid=$Submission_ID&header=$header&total=$total&status=Marked' class='btn btn-sm btn-light'>Ignore request</a> <br>"
. "<small>Submitted at: $posted <br> Attachments: $full_link </small>"
. "</div>";
2021-10-20 23:12:56 +08:00
}
}
echo "";
?>
</div>
<div id="menu4" class="tab-pane"><br>
2021-10-20 23:12:56 +08:00
<div class="col-md-7">
2021-10-20 23:12:56 +08:00
<?php
$result = mysqli_query($con, "SELECT Course_Group_id, Group_Name, Group_Leader, Course_id, users_table.Full_Name
FROM course_groups_table
INNER JOIN users_table ON users_table.Student_ID=course_groups_table.Group_Leader
WHERE Course_id=$c_id");
2021-10-20 23:12:56 +08:00
if (mysqli_num_rows($result) == 0) {
2023-08-05 16:11:27 +08:00
echo "No student groups.";
2021-10-20 23:12:56 +08:00
} else {
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['Group_Name'];
$leader_student_no = $row['Group_Leader'];
2021-10-20 23:12:56 +08:00
$id = $row['Course_Group_id'];
echo "<ul class='list-group'>";
echo " <li class='list-group-item disabled'>Group $name</li>";
2021-10-20 23:12:56 +08:00
$rs2 = mysqli_query($con, "SELECT ID, Course_Group_id, course_group_members_table.Student_ID, course_group_members_table.Status, users_table.Full_Name
FROM course_group_members_table
INNER JOIN users_table ON users_table.Student_ID=course_group_members_table.Student_ID
WHERE course_group_members_table.Student_ID AND course_group_members_table.Course_Group_id=$id");
2021-10-20 23:12:56 +08:00
while ($row = mysqli_fetch_assoc($rs2)) {
$name = $row['Full_Name'];
$id = $row['Course_Group_id'];
$status = $row['Status'];
$Student_ID = $row['Student_ID'];
if ($leader_student_no == $Student_ID) {
echo "<li class='list-group-item'>$name ($Student_ID) - $status - Leader</li>";
} else {
echo "<li class='list-group-item'>$name ($Student_ID) - $status</li>";
}
2021-10-20 23:12:56 +08:00
}
echo "</ul><br>";
2021-10-20 23:12:56 +08:00
}
}
?>
</div>
2021-10-20 23:12:56 +08:00
</div>
</div>
</div>
2021-10-20 23:12:56 +08:00
</div>
2023-08-12 20:56:27 +08:00
<?php
}
2023-08-12 20:56:27 +08:00
?>
2023-08-12 20:56:27 +08:00
<?php include 'Footer.php';?>
2023-08-08 15:02:26 +08:00
</div>
2023-08-12 20:56:27 +08:00
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/themes/base/jquery-ui.min.css" integrity="sha512-ELV+xyi8IhEApPS/pSj66+Jiw+sOT1Mqkzlh8ExXihe4zfqbWkxPRi8wptXIO9g73FSlhmquFlUOuMSoXz5IRw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js" integrity="sha512-3gJwYpMe3QewGELv8k/BX9vcqhryRdzRMxVfq6ngyWXwo03GFEzjsUm8Q7RZcHPHksttq7/GFoxjCVUjkjvPdw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
2023-08-02 14:57:08 +08:00
2021-10-20 23:12:56 +08:00
function mark(id, title, marks) {
2021-10-20 23:12:56 +08:00
try {
2023-08-02 14:57:08 +08:00
$(`<form id="submit-form" method="get" action="Script.php">
${title} (${marks} marks)
<input type="hidden" name="savemarks" value="true">
<input type="hidden" name="total" value="${marks}" >
<input type="hidden" name="id" value="${id}" >
<br> Marks
<input type="text" name="marks">\n\
Comments <textarea name="feedback"></textarea> \n\
<input type="hidden" name="labid" value="<?php echo $course_id; ?>">
<input type="hidden" name="header" value="<?php echo $header; ?>">
</form>`).dialog({
modal: true,
title: 'Mark submission',
close: function () {
var closeBtn = $('.ui-dialog-titlebar-close');
closeBtn.html('');
},
buttons: {
'Submit': function() {
2021-10-20 23:12:56 +08:00
$('#submit-form').submit();
$(this).dialog('close');
},
2023-08-02 14:57:08 +08:00
'Cancel': function() {
2021-10-20 23:12:56 +08:00
$(this).dialog('close');
}
}
});
} catch (e) {
alert(e);
}
}
/* For tabs to work */
const triggerTabList = document.querySelectorAll('#myTab a')
triggerTabList.forEach(triggerEl => {
const tabTrigger = new bootstrap.Tab(triggerEl)
triggerEl.addEventListener('click', event => {
event.preventDefault()
tabTrigger.show()
})
})
2022-05-19 12:35:27 +08:00
</script>
2023-08-08 15:02:26 +08:00
</body>
</html>