function show_assignments() { global $m, $uid, $group_id, $langSubmit, $langDays, $langNoAssign, $tool_content, $langWorks, $course_id, $course_code, $themeimg; $res = Database::get()->queryArray("SELECT *, (TO_DAYS(deadline) - TO_DAYS(NOW())) AS days\n\t\t FROM assignment WHERE course_id = ?d", $course_id); if (count($res) == 0) { $tool_content .= $langNoAssign; return; } $tool_content .= "<form action='{$_SERVER['SCRIPT_NAME']}?course={$course_code}' method='post'>\n <input type='hidden' name='file' value='" . q($_GET['submit']) . "'>\n <input type='hidden' name='group_id' value='{$group_id}'>\n <table class='tbl' width='99%'>\n <tr>\n <th class='left' width='170'> </th>\n <td> </td>\n </tr>\n <tr>\n <th class='left'>{$langWorks} ({$m['select']}):</th>\n <td>\n <table width='99%' align='left'>\n <tr>\n\t\t<th class='left' colspan='2'>{$m['title']}</th>\n\t\t<th align='center' width='30%'>{$m['deadline']}</th>\n\t\t<th align='center' width='10%'>{$m['submitted']}</th>\n\t\t<th align='center' width='10%'>{$m['select']}</th>\n\t\t</tr>"; foreach ($res as $row) { if (!$row->active) { continue; } $tool_content .= "<tr><td width=\"1%\">\n\t\t\t<img style='padding-top:2px;' src='{$themeimg}/arrow.png' alt=''></td>\n\t\t\t<td><div align='left'><a href='index.php?course={$course_code}&id={$row->id}'>" . q($row->title) . "</a></td>\n\t\t\t<td align='center'>" . nice_format($row->deadline); if ($row->days > 1) { $tool_content .= " ({$m['in']} {$row->days} {$langDays}"; } elseif ($row->days < 0) { $tool_content .= " ({$m['expired']})"; } elseif ($row->days == 1) { $tool_content .= " ({$m['tomorrow']})"; } else { $tool_content .= " ({$m['today']})"; } $tool_content .= "</div></td>\n <td align=\"center\">"; $subm = was_submitted($uid, $group_id, $row->id); if ($subm == 'user') { $tool_content .= $m['yes']; } elseif ($subm == 'group') { $tool_content .= $m['by_groupmate']; } else { $tool_content .= $m['no']; } $tool_content .= "</td><td align=\"center\">"; if ($row->days >= 0 and !was_graded($uid, $row->id) and is_group_assignment($row->id)) { $tool_content .= "<input type='radio' name='assign' value='{$row->id}'>"; } else { $tool_content .= '-'; } $tool_content .= "</td>\n </tr>"; } $tool_content .= "\n </table>"; $tool_content .= "</td></tr>\n\t<tr>\n\t <th class='left'>" . $m['comments'] . ":</th>\n\t <td><textarea name='comments' rows='4' cols='60'>" . "</textarea></td>\n\t</tr>\n\t<tr>\n\t <th> </th>\n\t <td><input class='btn btn-primary' type='submit' name='submit' value='{$langSubmit}'></td>\n\t</tr>\n\t</table>\n\t</form>"; }
function show_assignments() { global $m, $uid, $group_id, $langSubmit, $langDays, $langNoAssign, $tool_content, $langWorks, $course_id, $course_code, $themeimg, $langCancel, $urlServer; $gids = user_group_info($uid, $course_id); if (!empty($gids)) { $gids_sql_ready = implode(',',array_keys($gids)); } else { $gids_sql_ready = "''"; } $res = Database::get()->queryArray("SELECT *, CAST(UNIX_TIMESTAMP(deadline)-UNIX_TIMESTAMP(NOW()) AS SIGNED) AS time FROM assignment WHERE course_id = ?d AND active = '1' AND (assign_to_specific = '0' OR assign_to_specific = '1' AND id IN (SELECT assignment_id FROM assignment_to_specific WHERE user_id = ?d UNION SELECT assignment_id FROM assignment_to_specific WHERE group_id IN ($gids_sql_ready)) ) ORDER BY CASE WHEN CAST(deadline AS UNSIGNED) = '0' THEN 1 ELSE 0 END, deadline", $course_id, $uid); if (count($res) == 0) { $tool_content .= $langNoAssign; return; } $table_content = ''; foreach ($res as $row) { if (!$row->active) { continue; } $table_content .= "<tr><td width=\"1%\"> <img style='padding-top:2px;' src='$themeimg/arrow.png' alt=''></td> <td><div align='left'><a href='index.php?course=$course_code&id=$row->id'>" . q($row->title) . "</a></td> <td align='center'>" . nice_format($row->deadline); if ($row->time > 0) { $table_content .= "<br>(<small>$langDaysLeft" . format_time_duration($row->time) . "</small>)"; } else if($row->deadline){ $table_content .= "<br> (<small><span class='expired'>$m[expired]</span></small>)"; } $table_content .= "</div></td>\n <td align=\"center\">"; $subm = was_submitted($uid, $group_id, $row->id); if ($subm == 'user') { $table_content .= $m['yes']; } elseif ($subm == 'group') { $table_content .= $m['by_groupmate']; } else { $table_content .= $m['no']; } $table_content .= "</td><td align=\"center\">"; if ($row->time >= 0 and !was_graded($uid, $row->id) and is_group_assignment($row->id)) { $table_content .= "<input type='radio' name='assign' value='$row->id'>"; } else { $table_content .= '-'; } $table_content .= "</td>\n </tr>"; } $tool_content .= " <div class='form-wrapper'> <form class='form-horizontal' action='$_SERVER[SCRIPT_NAME]?course=$course_code' method='post'> <fieldset> <input type='hidden' name='file' value='" . q($_GET['submit']) . "'> <input type='hidden' name='group_id' value='$group_id'> <div class='form-group'> <label for='title' class='col-sm-2 control-label'>$langWorks ($m[select]):</label> <div class='col-sm-10'> <table class='table-default'> <tr> <th class='left' colspan='2'>$m[title]</th> <th align='center' width='30%'>$m[deadline]</th> <th align='center' width='10%'>$m[submitted]</th> <th align='center' width='10%'>$m[select]</th> </tr> $table_content </table> </div> </div> <div class='form-group'> <label for='title' class='col-sm-2 control-label'>$m[comments]:</label> <div class='col-sm-10'> <textarea name='comments' rows='4' cols='60' class='form-control'></textarea> </div> </div> <div class='form-group'> <div class='col-sm-10 col-sm-offset-2'> <input class='btn btn-primary' type='submit' name='submit' value='$langSubmit'> <a class='btn btn-default' href='$urlServer/modules/group/document.php?course=$course_code&group_id=$group_id'>$langCancel</a> </div> </div> </fieldset> </form> </div>"; }
function show_student_assignments() { global $tool_content, $m, $uid, $course_id, $course_code, $langDaysLeft, $langDays, $langNoAssign, $urlServer, $course_code, $themeimg, $langAutoJudgeRank; $gids = user_group_info($uid, $course_id); if (!empty($gids)) { $gids_sql_ready = implode(',', array_keys($gids)); } else { $gids_sql_ready = "''"; } $result = Database::get()->queryArray("SELECT *, CAST(UNIX_TIMESTAMP(deadline)-UNIX_TIMESTAMP(NOW()) AS SIGNED) AS time\n FROM assignment WHERE course_id = ?d AND active = 1 AND\n (assign_to_specific = 0 OR assign_to_specific = 1 AND id IN\n (SELECT assignment_id FROM assignment_to_specific WHERE user_id = ?d UNION SELECT assignment_id FROM assignment_to_specific WHERE group_id IN ({$gids_sql_ready}))\n )\n ORDER BY CASE WHEN CAST(deadline AS UNSIGNED) = '0' THEN 1 ELSE 0 END, deadline", $course_id, $uid); if (count($result) > 0) { $tool_content .= "\n <div class='row'><div class='col-sm-12'>\n <div class='table-responsive'><table class='table-default'>\n <tr>\n <th>{$m['title']}</th>\n <th class='text-center'>{$m['deadline']}</th>\n <th class='text-center'>{$m['submitted']}</th>\n <th>{$m['grade']}</th>\n <th>{$langAutoJudgeRank}</th>\n </tr>"; $k = 0; foreach ($result as $row) { $title_temp = q($row->title); $test = (int) $row->deadline; $rankreportlink = "rank_report.php?course={$course_code}&assignment={$row->id}"; if ((int) $row->deadline) { $deadline = nice_format($row->deadline, true); } else { $deadline = $m['no_deadline']; } $tool_content .= "\n <tr>\n <td><a href='{$_SERVER['SCRIPT_NAME']}?course={$course_code}&id={$row->id}'>{$title_temp}</a></td>\n <td width='150' class='text-center'>" . $deadline; if ($row->time > 0) { $tool_content .= "<br> (<span>{$langDaysLeft}" . format_time_duration($row->time) . ")</span>"; } else { if ((int) $row->deadline) { $tool_content .= "<br> (<span class='expired'>{$m['expired']}</span>)"; } } $tool_content .= "</td><td width='170' align='center'>"; if ($submission = find_submissions(is_group_assignment($row->id), $uid, $row->id, $gids)) { foreach ($submission as $sub) { if (isset($sub->group_id)) { // if is a group assignment $tool_content .= "<div style='padding-bottom: 5px;padding-top:5px;font-size:9px;'>({$m['groupsubmit']} " . "<a href='../group/group_space.php?course={$course_code}&group_id={$sub->group_id}'>" . "{$m['ofgroup']} " . gid_to_name($sub['group_id']) . "</a>)</div>"; } $tool_content .= icon('fa-check-square-o', $m['yes']) . "<br>"; } } else { $tool_content .= icon('fa-square-o', $m['no']); } $tool_content .= "</td>\n <td width='30' align='center'>"; $rankcontent = ""; foreach ($submission as $sub) { $grade = submission_grade($sub->id); if (!$grade) { $grade = "<div style='padding-bottom: 5px;padding-top:5px;'> - </div>"; } $tool_content .= "<div style='padding-bottom: 5px;padding-top:5px;'>{$grade}</div>"; if ($grade) { $rankcontent = "<div style='padding-bottom: 5px;padding-top:10px;'><a href='" . $rankreportlink . "'>" . icon('fa-sort-alpha-asc') . "</a></div>"; } } $tool_content .= "</td><td class='option-btn-cell' align='center'>{$rankcontent}</td>\n </tr>"; $k++; } $tool_content .= ' </table></div></div></div>'; } else { $tool_content .= "<div class='alert alert-warning'>{$langNoAssign}</div>"; } }
function show_student_assignments() { global $tool_content, $m, $uid, $course_id, $course_code, $langDaysLeft, $langDays, $langNoAssign, $urlServer, $course_code, $themeimg, $langEditChange; $gids = user_group_info($uid, $course_id); if (!empty($gids)) { $gids_sql_ready = implode(',',array_keys($gids)); } else { $gids_sql_ready = "''"; } $result = Database::get()->queryArray("SELECT *, CAST(UNIX_TIMESTAMP(deadline)-UNIX_TIMESTAMP(NOW()) AS SIGNED) AS time FROM assignment WHERE course_id = ?d AND active = '1' AND (assign_to_specific = '0' OR assign_to_specific = '1' AND id IN (SELECT assignment_id FROM assignment_to_specific WHERE user_id = ?d UNION SELECT assignment_id FROM assignment_to_specific WHERE group_id IN ($gids_sql_ready)) ) ORDER BY CASE WHEN CAST(deadline AS UNSIGNED) = '0' THEN 1 ELSE 0 END, deadline", $course_id, $uid); if (count($result)>0) { $tool_content .= " <div class='row'><div class='col-sm-12'> <div class='table-responsive'><table class='table-default'> <tr class='list-header'> <th style='width:45%'>$m[title]</th> <th class='text-center' style='width:25%'>$m[deadline]</th> <th class='text-center'>$m[submitted]</th> <th class='text-center'>$m[grade]</th> </tr>"; $k = 0; foreach ($result as $row) { $title_temp = q($row->title); if($row->deadline){ $deadline = nice_format($row->deadline, true); }else{ $deadline = $m['no_deadline']; } $tool_content .= " <tr> <td><a href='$_SERVER[SCRIPT_NAME]?course=$course_code&id=$row->id'>$title_temp</a></td> <td class='text-center'>" . $deadline ; if ($row->time > 0) { $tool_content .= "<br>(<small>$langDaysLeft" . format_time_duration($row->time) . "</small>)"; } else if($row->deadline){ $tool_content .= "<br> (<small><span class='expired'>$m[expired]</span></small>)"; } $tool_content .= "</td><td class='text-center'>"; if ($submission = find_submissions(is_group_assignment($row->id), $uid, $row->id, $gids)) { foreach ($submission as $sub) { if (isset($sub->group_id)) { // if is a group assignment $tool_content .= "<div style='padding-bottom: 5px;padding-top:5px;font-size:9px;'>($m[groupsubmit] " . "<a href='../group/group_space.php?course=$course_code&group_id=$sub->group_id'>" . "$m[ofgroup] " . gid_to_name($sub->group_id) . "</a>)</div>"; } $tool_content .= "<i class='fa fa-check-square-o'></i><br>"; } } else { $tool_content .= "<i class='fa fa-square-o'></i><br>"; } $tool_content .= "</td> <td width='30' align='center'>"; foreach ($submission as $sub) { $grade = submission_grade($sub->id); if (!$grade) { $grade = "<div style='padding-bottom: 5px;padding-top:5px;'> - </div>"; } $tool_content .= "<div style='padding-bottom: 5px;padding-top:5px;'>$grade</div>"; } $tool_content .= "</td> </tr>"; $k++; } $tool_content .= ' </table></div></div></div>'; } else { $tool_content .= "<div class='alert alert-warning'>$langNoAssign</div>"; } }
/** * * returns whether the user has submitted an assignment */ function submitted($uid, $assignment_id, $lesson_id) { // find prefix $prefix = './modules'; if (!file_exists($prefix) && file_exists('../group') && file_exists('../work')) { $prefix = '..'; } require_once $prefix . '/group/group_functions.php'; require_once $prefix . '/work/work_functions.php'; $gids = user_group_info($uid, $lesson_id); $GLOBALS['course_id'] = $lesson_id; if ($submission = find_submissions(is_group_assignment($assignment_id), $uid, $assignment_id, $gids)) { return true; } else { return false; } }