|
@@ -306,6 +306,10 @@ class iassign {
|
|
'move_activity' => '$this->move_activity();',
|
|
'move_activity' => '$this->move_activity();',
|
|
'auto_evaluate' => '$this->auto_evaluate();',
|
|
'auto_evaluate' => '$this->auto_evaluate();',
|
|
'all_submissions' => '$this->all_submissions();',
|
|
'all_submissions' => '$this->all_submissions();',
|
|
|
|
+ 'delete_submissions' => '$this->delete_submissions();',
|
|
|
|
+ 'download_submissions' => '$this->download_submissions();',
|
|
|
|
+ 'open_individual_submission' => '$this->open_individual_submission();',
|
|
|
|
+ 'get_individual_submission' => '$this->get_individual_submission();',
|
|
'get_student_submission' => '$this->get_student_submission();',
|
|
'get_student_submission' => '$this->get_student_submission();',
|
|
'get_teacher_exercise' => '$this->get_teacher_exercise();',
|
|
'get_teacher_exercise' => '$this->get_teacher_exercise();',
|
|
'post_auto_eval_result' => '$this->post_auto_eval_result();'
|
|
'post_auto_eval_result' => '$this->post_auto_eval_result();'
|
|
@@ -393,6 +397,196 @@ class iassign {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /// Function to help download all_submissions files
|
|
|
|
+ function download_submissions_help ($list) {
|
|
|
|
+ global $DB, $CFG, $OUTPUT;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // Get list of iLMs
|
|
|
|
+ $ilm_list = $DB->get_records("iassign_ilm");
|
|
|
|
+
|
|
|
|
+ // Get list of enrolled students:
|
|
|
|
+ $params = array('shortname' => 'student');
|
|
|
|
+ $role = $DB->get_record_sql("SELECT s.id, s.shortname FROM {role} s WHERE s.shortname = :shortname", $params);
|
|
|
|
+ $context = context_course::instance($this->course->id);
|
|
|
|
+ $params = array('contextid' => $context->id, 'roleid' => $role->id);
|
|
|
|
+ $students_list = $DB->get_records_sql(
|
|
|
|
+ "SELECT s.userid, a.firstname, a.lastname FROM {role_assignments} s, {user} a " . " WHERE s.contextid = :contextid AND s.userid = a.id AND s.roleid = :roleid " . " ORDER BY a.firstname ASC,a.lastname ASC", $params);
|
|
|
|
+
|
|
|
|
+ $json_obj = new stdclass();
|
|
|
|
+ $json_obj->submissions = [];
|
|
|
|
+
|
|
|
|
+ $exercise_dir = [];
|
|
|
|
+ $exercises_list = [];
|
|
|
|
+ foreach ($list as $item) {
|
|
|
|
+
|
|
|
|
+ if (!in_array($item->iassign_statementid, $exercise_dir)) {
|
|
|
|
+ $temp = $DB->get_record("iassign_statement", array("id" => $item->iassign_statementid));
|
|
|
|
+ $exercises_list[] = $temp;
|
|
|
|
+ $exercise_dir[] = $temp->id;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $student_dir = [];
|
|
|
|
+ $students_list = [];
|
|
|
|
+ foreach ($list as $item) {
|
|
|
|
+
|
|
|
|
+ if (!in_array($item->userid, $student_dir)) {
|
|
|
|
+ $temp = $DB->get_record("user", array("id" => $item->userid));
|
|
|
|
+ $students_list[] = $temp;
|
|
|
|
+ $student_dir[] = $temp->id;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $diretorio = $CFG->dataroot . DIRECTORY_SEPARATOR . 'temp' . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR;
|
|
|
|
+
|
|
|
|
+ $zip_filename = $diretorio . 'package_iassign_'.time().'.zip';
|
|
|
|
+
|
|
|
|
+ $zip = new zip_archive(); // create ZIP
|
|
|
|
+ $zip->open($zip_filename);
|
|
|
|
+
|
|
|
|
+ foreach($exercises_list as $exercise) {
|
|
|
|
+ $dir_ex = iassign_utils::format_filename($exercise->name);
|
|
|
|
+
|
|
|
|
+ $zip->add_directory(
|
|
|
|
+ $dir_ex
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ $extension_ilm = '';
|
|
|
|
+ foreach ($ilm_list as $ilm) {
|
|
|
|
+ if ($exercise->iassign_ilmid == $ilm->id) {
|
|
|
|
+ $extension_ilm = $ilm->extension;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ foreach ($students_list as $student) {
|
|
|
|
+ $individual_dir =
|
|
|
|
+ $dir_ex . DIRECTORY_SEPARATOR .
|
|
|
|
+ iassign_utils::format_filename($student->firstname . ' ' . $student->lastname);
|
|
|
|
+
|
|
|
|
+ $zip->add_directory(
|
|
|
|
+ $individual_dir
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ $i = 1;
|
|
|
|
+ foreach($list as $item) {
|
|
|
|
+ if ($item->userid == $student->id
|
|
|
|
+ && $item->iassign_statementid == $exercise->id) {
|
|
|
|
+
|
|
|
|
+ $date = new DateTime();
|
|
|
|
+ $date->setTimestamp($item->timecreated);
|
|
|
|
+
|
|
|
|
+ $new_file = $individual_dir . DIRECTORY_SEPARATOR . iassign_utils::format_filename('submission_' . ($i++) . '_' . date_format($date, 'Y-m-d_H-i-s') . '.' . $extension_ilm);
|
|
|
|
+ $zip->add_file_from_string($new_file, $item->answer);
|
|
|
|
+
|
|
|
|
+ $temp_json = new stdclass();
|
|
|
|
+ $temp_json->submissionid = intval($item->id);
|
|
|
|
+ $temp_json->file = $new_file;
|
|
|
|
+ $temp_json->filesize = strlen($new_file);
|
|
|
|
+ $temp_json->timestamp = intval($item->timecreated);
|
|
|
|
+ $temp_json->humandate = date_format($date, 'Y-m-d H-i-s');
|
|
|
|
+ $temp_json->grade = doubleval($item->grade);
|
|
|
|
+ $temp_json->userid = intval($item->userid);
|
|
|
|
+ $temp_json->exerciseid = intval($exercise->id);
|
|
|
|
+
|
|
|
|
+ $json_obj->submissions[] = $temp_json;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $zip->add_file_from_string('index.json', json_encode($json_obj, JSON_PRETTY_PRINT));
|
|
|
|
+
|
|
|
|
+ $zip->close();
|
|
|
|
+ iassign_utils::download_file($zip_filename);
|
|
|
|
+ exit;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// Download submissions from table iassign_allsubmissions
|
|
|
|
+ function download_submissions () {
|
|
|
|
+ global $COURSE, $CFG, $USER, $DB, $OUTPUT, $PAGE;
|
|
|
|
+
|
|
|
|
+ if (!has_capability('mod/iassign:runautoevaluate', $this->context, $USER->id))
|
|
|
|
+ exit;
|
|
|
|
+
|
|
|
|
+ $type = optional_param('type', NULL, PARAM_TEXT);
|
|
|
|
+ $item = optional_param('item', NULL, PARAM_TEXT);
|
|
|
|
+ $exercise = optional_param('exercise', NULL, PARAM_TEXT);
|
|
|
|
+ $iassign_id = optional_param('iassign', NULL, PARAM_TEXT);
|
|
|
|
+
|
|
|
|
+ $sub_list = [];
|
|
|
|
+
|
|
|
|
+ if ($type == 'individual') {
|
|
|
|
+ $sub_list[] = $DB->get_record(
|
|
|
|
+ 'iassign_allsubmissions', array('id' => $item));
|
|
|
|
+ } elseif ($type == 'student') {
|
|
|
|
+ $sub_list = $DB->get_records(
|
|
|
|
+ 'iassign_allsubmissions', array('userid' => $item, 'iassign_statementid' => $exercise));
|
|
|
|
+ } elseif ($type == 'exercise') {
|
|
|
|
+ $sub_list = $DB->get_records(
|
|
|
|
+ 'iassign_allsubmissions', array('iassign_statementid' => $item));
|
|
|
|
+ } elseif ($type == 'block') {
|
|
|
|
+ $exercises_in_block = $DB->get_records(
|
|
|
|
+ 'iassign_statement', array('iassignid' => $iassign_id));
|
|
|
|
+ foreach ($exercises_in_block as $exercise) {
|
|
|
|
+ $temp = $DB->get_records(
|
|
|
|
+ 'iassign_allsubmissions', array('iassign_statementid' => $exercise->id));
|
|
|
|
+ $sub_list = array_merge($sub_list, $temp);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $this->download_submissions_help($sub_list);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// Delete submissions in table iassign_allsubmissions
|
|
|
|
+ function delete_submissions () {
|
|
|
|
+ global $COURSE, $CFG, $USER, $DB, $OUTPUT, $PAGE;
|
|
|
|
+
|
|
|
|
+ if (!has_capability('mod/iassign:runautoevaluate', $this->context, $USER->id))
|
|
|
|
+ exit;
|
|
|
|
+
|
|
|
|
+ $type = optional_param('type', NULL, PARAM_TEXT);
|
|
|
|
+ $item = optional_param('item', NULL, PARAM_TEXT);
|
|
|
|
+ $exercise = optional_param('exercise', NULL, PARAM_TEXT);
|
|
|
|
+
|
|
|
|
+ if ($type == 'individual') {
|
|
|
|
+ $DB->delete_records('iassign_allsubmissions', array('id' => $item));
|
|
|
|
+ } elseif ($type == 'student') {
|
|
|
|
+ $DB->delete_records('iassign_allsubmissions', array('userid' => $item, 'iassign_statementid' => $exercise));
|
|
|
|
+ } elseif ($type == 'exercise') {
|
|
|
|
+ $DB->delete_records('iassign_allsubmissions', array('iassign_statementid' => $item));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function get_individual_submission () {
|
|
|
|
+ global $DB, $USER;
|
|
|
|
+
|
|
|
|
+ if (!has_capability('mod/iassign:runautoevaluate', $this->context, $USER->id))
|
|
|
|
+ exit;
|
|
|
|
+
|
|
|
|
+ $submissionid = optional_param('submissionid', NULL, PARAM_TEXT);
|
|
|
|
+ $submission = $DB->get_record("iassign_allsubmissions", array("id" => $submissionid));
|
|
|
|
+ print $submission->answer;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// Open individual submission
|
|
|
|
+ function open_individual_submission () {
|
|
|
|
+ global $DB, $USER, $CFG;
|
|
|
|
+
|
|
|
|
+ if (!has_capability('mod/iassign:runautoevaluate', $this->context, $USER->id))
|
|
|
|
+ exit;
|
|
|
|
+
|
|
|
|
+ $submissionid = optional_param('item', NULL, PARAM_TEXT);
|
|
|
|
+ $id = $this->cm->id;
|
|
|
|
+ $param_aux = "id=" . $id . "&userid_iassign=" . $USER->id;
|
|
|
|
+ $url = "" . $CFG->wwwroot . "/mod/iassign/view.php?action=get_individual_submission&" . $param_aux . "&submissionid=" . $submissionid;
|
|
|
|
+
|
|
|
|
+ print ilm_settings::build_ilm_tags(1, ['type' => "view", 'Proposition' => $url]);
|
|
|
|
+ }
|
|
|
|
+
|
|
/// Manage all submissions in exercises to table iassign_allsubmissions
|
|
/// Manage all submissions in exercises to table iassign_allsubmissions
|
|
function all_submissions () {
|
|
function all_submissions () {
|
|
global $COURSE, $CFG, $USER, $DB, $OUTPUT, $PAGE;
|
|
global $COURSE, $CFG, $USER, $DB, $OUTPUT, $PAGE;
|
|
@@ -402,12 +596,81 @@ class iassign {
|
|
|
|
|
|
print $OUTPUT->header();
|
|
print $OUTPUT->header();
|
|
|
|
|
|
- print '<h2>' . get_string('all_submissions_manager', 'iassign') . '</h2>';
|
|
|
|
|
|
+ $id = $this->cm->id;
|
|
|
|
+ $param_aux = "id=" . $id . "&userid_iassign=" . $USER->id;
|
|
|
|
+ $enderecoPOST = "" . $CFG->wwwroot . "/mod/iassign/view.php?" . $param_aux;
|
|
|
|
+
|
|
|
|
+ print '
|
|
|
|
+ <div class="modal" id="modalConfirm" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
|
|
|
|
+ <div class="modal-dialog modal-dialog-centered" role="document">
|
|
|
|
+ <div class="modal-content">
|
|
|
|
+ <div class="modal-header">
|
|
|
|
+ <h5 class="modal-title" id="exampleModalLongTitle">'.get_string('delete', 'iassign').'</h5>
|
|
|
|
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
+ <span aria-hidden="true">×</span>
|
|
|
|
+ </button>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="modal-body">'
|
|
|
|
+ . get_string('all_submissions_manager_confirm', 'iassign')
|
|
|
|
+ . '</div>
|
|
|
|
+ <div class="modal-footer">
|
|
|
|
+ <button type="button" onclick="confirm_delete()" class="btn btn-primary">'.get_string('confirm', 'iassign').'</button>
|
|
|
|
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">'.get_string('cancel', 'iassign').'</button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>';
|
|
|
|
+
|
|
|
|
+ print '
|
|
|
|
+ <script>
|
|
|
|
+ var sub_type;
|
|
|
|
+ var sub_item;
|
|
|
|
+ var sub_el;
|
|
|
|
+ var sub_exercise;
|
|
|
|
+
|
|
|
|
+ function delete_submission (type, item, el, exercise = 0) {
|
|
|
|
+ sub_type = type;
|
|
|
|
+ sub_item = item;
|
|
|
|
+ sub_exercise = exercise;
|
|
|
|
+ sub_el = el.closest("tr");
|
|
|
|
+ if (!sub_el) sub_el = el.closest("a");
|
|
|
|
+ $("#modalConfirm").modal();
|
|
|
|
+ }
|
|
|
|
+ function confirm_delete () {
|
|
|
|
+ var url = "'.$enderecoPOST.'&action=delete_submissions";
|
|
|
|
+ var xhttp = new XMLHttpRequest();
|
|
|
|
+ xhttp.open("GET", url + "&type=" + sub_type + "&item=" + sub_item + "&exercise=" + sub_exercise, true);
|
|
|
|
+ xhttp.send();
|
|
|
|
+
|
|
|
|
+ $("#modalConfirm").modal("hide");
|
|
|
|
+ if ($(sub_el).attr("href"))
|
|
|
|
+ $($(sub_el).attr("href")).remove();
|
|
|
|
+ if (sub_el) sub_el.remove();
|
|
|
|
+ }
|
|
|
|
+ function download_submission(type, item, exercise = 0, iassign = 0) {
|
|
|
|
+ var url = "'.$enderecoPOST.'&action=download_submissions";
|
|
|
|
+ url += "&type=" + type + "&item=" + item + "&exercise=" + exercise + "&iassign=" + iassign;
|
|
|
|
+ document.location = url;
|
|
|
|
+ }
|
|
|
|
+ function open_submission(item) {
|
|
|
|
+ var url = "'.$enderecoPOST.'&action=open_individual_submission&item=" + item;
|
|
|
|
+ var poupup = window.open(
|
|
|
|
+ url,
|
|
|
|
+ "popup",
|
|
|
|
+ "width=900,height=900");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ </script>';
|
|
|
|
|
|
// Get list of exercises in the instance:
|
|
// Get list of exercises in the instance:
|
|
$iassignid = optional_param('iassignid', NULL, PARAM_TEXT);
|
|
$iassignid = optional_param('iassignid', NULL, PARAM_TEXT);
|
|
$exercises_list = $DB->get_records("iassign_statement", array("iassignid" => $iassignid));
|
|
$exercises_list = $DB->get_records("iassign_statement", array("iassignid" => $iassignid));
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ print '<h2>' . get_string('all_submissions_manager', 'iassign') . '';
|
|
|
|
+ print '<i onclick="download_submission(\'block\', 0, 0, '.$iassignid.')" class="fa fa-download" style="float: right; color: #1fa67a; font-size: 1.5rem; cursor: pointer; margin-left: 1rem; margin-top: .2rem;" aria-hidden="true"></i> </h2>';
|
|
|
|
+
|
|
// Get list of enrolled students:
|
|
// Get list of enrolled students:
|
|
$params = array('shortname' => 'student');
|
|
$params = array('shortname' => 'student');
|
|
$role = $DB->get_record_sql("SELECT s.id, s.shortname FROM {role} s WHERE s.shortname = :shortname", $params);
|
|
$role = $DB->get_record_sql("SELECT s.id, s.shortname FROM {role} s WHERE s.shortname = :shortname", $params);
|
|
@@ -418,20 +681,79 @@ class iassign {
|
|
|
|
|
|
print '<div class="list-group list-group-root">';
|
|
print '<div class="list-group list-group-root">';
|
|
foreach ($exercises_list as $exercise) {
|
|
foreach ($exercises_list as $exercise) {
|
|
|
|
+
|
|
|
|
+ $submissions_list = $DB->get_records("iassign_allsubmissions", array("iassign_statementid" => $exercise->id));
|
|
|
|
|
|
|
|
+ $iassign_ilm = $DB->get_record("iassign_ilm", array("id" => $exercise->iassign_ilmid));
|
|
|
|
+
|
|
print '
|
|
print '
|
|
- <a href="#item-'.$exercise->id.'" class="list-group-item list-group-item-action" data-toggle="collapse" onclick=\'$(".fa", this).toggleClass("fa-caret-right").toggleClass("fa-caret-down");\' > <i class="fa fa-caret-right"></i> ' . $exercise->name . '</a>';
|
|
|
|
|
|
+ <a href="#item-'.$exercise->id.'" class="list-group-item list-group-item-action h4" data-toggle="collapse" onclick=\'$(".fa-caret-right, .fa-caret-down", this).toggleClass("fa-caret-right").toggleClass("fa-caret-down");\' > <i class="fa fa-caret-right"></i> '
|
|
|
|
+ . $exercise->name
|
|
|
|
+ . ' - ' . $iassign_ilm->name
|
|
|
|
+ . '<i class="fa fa-times" onclick="event.stopPropagation(); delete_submission(\'exercise\', '
|
|
|
|
+ . $exercise->id .', this)" style="color:#C62828; cursor: pointer; font-size: 1.5rem; float: right; margin-left: .5rem;" aria-hidden="true"></i>'
|
|
|
|
+
|
|
|
|
+ . '<i onclick="event.stopPropagation(); download_submission(\'exercise\', '
|
|
|
|
+ . $exercise->id .')" class="fa fa-download" style="float: right; color: #1fa67a; font-size: 1.2rem; cursor: pointer; margin-left: 1rem; margin-top: .2rem;" aria-hidden="true"></i> '
|
|
|
|
+
|
|
|
|
+ . '<span class="badge badge-primary badge-pill" style="float: right;">' . count($submissions_list) . '</span>'
|
|
|
|
+ . '</a>';
|
|
|
|
|
|
- print '<div class="list-group collapse" id="item-'.$exercise->id.'">';
|
|
|
|
|
|
+ print '<div class="list-group collapse p-x-2 p-b-1" id="item-'.$exercise->id.'">';
|
|
|
|
|
|
foreach ($students_list as $student) {
|
|
foreach ($students_list as $student) {
|
|
|
|
|
|
- print '<a href="#item-'.$exercise->id.'-'.$student->userid.'" class="list-group-item list-group-item-action" data-toggle="collapse" onclick=\'$(".fa", this).toggleClass("fa-caret-right").toggleClass("fa-caret-down");\'>
|
|
|
|
- <i class="fa fa-caret-right"></i> ' . $student->firstname . ' ' . $student->lastname . ' </a>';
|
|
|
|
|
|
+ $total = 0;
|
|
|
|
+ $student_submissions = [];
|
|
|
|
+ foreach ($submissions_list as $submission) {
|
|
|
|
+ if ($submission->userid == $student->userid) {
|
|
|
|
+ $student_submissions[] = $submission;
|
|
|
|
+ $total ++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ print '<a href="#item-'.$exercise->id.'-'.$student->userid.'" class="list-group-item list-group-item-action" data-toggle="collapse" onclick=\'$(".fa-caret-right, .fa-caret-down", this).toggleClass("fa-caret-right").toggleClass("fa-caret-down");\'>
|
|
|
|
+ <i class="fa fa-caret-right"></i> ' . $student->firstname . ' ' . $student->lastname
|
|
|
|
+
|
|
|
|
+ . '<i class="fa fa-times" onclick="event.stopPropagation(); delete_submission(\'student\', '
|
|
|
|
+ . $student->userid .', this, '.$exercise->id.')" style="color:#C62828; cursor: pointer; font-size: 1.5rem; float: right; margin-left: .5rem;" aria-hidden="true"></i>'
|
|
|
|
+
|
|
|
|
+ . '<i onclick="event.stopPropagation(); download_submission(\'student\', '.$student->userid.', '.$exercise->id.')" class="fa fa-download" style="float: right; color: #1fa67a; font-size: 1.3rem; cursor: pointer; margin-left: 1rem; margin-top: .1rem;" aria-hidden="true"></i> '
|
|
|
|
|
|
- print '<div class="list-group collapse" id="item-'.$exercise->id.'-'.$student->userid.'">';
|
|
|
|
|
|
+ . '<span class="badge badge-primary badge-pill" style="float: right;">' . $total . '</span>'
|
|
|
|
+ . ' </a>';
|
|
|
|
+
|
|
|
|
+ print '<div class="list-group collapse" style="padding-left: 5rem;padding-right: 5rem;" id="item-'.$exercise->id.'-'.$student->userid.'">';
|
|
|
|
+
|
|
|
|
+ print '<table class="table table-striped table-hover"><thead>
|
|
|
|
+ <tr>
|
|
|
|
+ <th scope="col">#</th>
|
|
|
|
+ <th scope="col">'.get_string('all_submissions_manager_date', 'iassign').'</th>
|
|
|
|
+ <th scope="col">'.get_string('grade_student', 'iassign').'</th>
|
|
|
|
+ <th scope="col">'.get_string('config_param_actions', 'iassign').'</th>
|
|
|
|
+ </tr>
|
|
|
|
+ </thead><tbody>';
|
|
|
|
|
|
- print '<a href="#" class="list-group-item list-group-item-action">Item 1.1.1</a>';
|
|
|
|
|
|
+ $i = 1;
|
|
|
|
+ foreach ($student_submissions as $individual) {
|
|
|
|
+ $date = new DateTime();
|
|
|
|
+ $date->setTimestamp($individual->timecreated);
|
|
|
|
+ print '<tr>';
|
|
|
|
+ print '<td>'.$i++.'</td>';
|
|
|
|
+ print '<td>'.date_format($date, 'd/m/Y H:i:s').'</td>';
|
|
|
|
+ print '<td>'.$individual->grade.'</td>';
|
|
|
|
+ print '<td>
|
|
|
|
+ <i onclick="open_submission('.$individual->id.')" class="fa fa-external-link" style="color:#1177d1; cursor: pointer; font-size: 1.2rem; margin-right: .5rem;" aria-hidden="true"></i>
|
|
|
|
+
|
|
|
|
+ <i onclick="download_submission(\'individual\', '.$individual->id.')" class="fa fa-download" style="color: #1fa67a; font-size: 1.2rem; cursor: pointer; margin-right: .5rem;" aria-hidden="true"></i>
|
|
|
|
+
|
|
|
|
+ <i class="fa fa-times" onclick="delete_submission(\'individual\', '.$individual->id.', this)" style="color:#C62828; cursor: pointer; font-size: 1.5rem; " aria-hidden="true"></i></td>';
|
|
|
|
+ print '</tr>';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ print '</tbody></table>';
|
|
|
|
+
|
|
|
|
+ //print '<a href="#" class="list-group-item list-group-item-action">Item 1.1.1</a>';
|
|
|
|
|
|
print '</div>';
|
|
print '</div>';
|
|
|
|
|
|
@@ -1994,10 +2316,10 @@ class iassign {
|
|
|
|
|
|
$link_all_submissions_manager = "<a href='" . $CFG->wwwroot . "/mod/iassign/view.php?id=" . $id . "&action=all_submissions&iassignid=" . $this->iassign->id . "'><i class='fa fa-files-o' aria-hidden='true' style='color: red'></i> " . get_string('all_submissions_manager', 'iassign') . "</a>";
|
|
$link_all_submissions_manager = "<a href='" . $CFG->wwwroot . "/mod/iassign/view.php?id=" . $id . "&action=all_submissions&iassignid=" . $this->iassign->id . "'><i class='fa fa-files-o' aria-hidden='true' style='color: red'></i> " . get_string('all_submissions_manager', 'iassign') . "</a>";
|
|
|
|
|
|
- print '<td width=15% align="right">' . $link_stats . '</td>' . "\n";
|
|
|
|
- print '<td width=15% align="right">' . $link_export . '</td>' . "\n";
|
|
|
|
|
|
+ print '<td width=10% align="right">' . $link_stats . '</td>' . "\n";
|
|
|
|
+ print '<td width=10% align="right">' . $link_export . '</td>' . "\n";
|
|
print '<td width=15% align="right">' . $link_auto_evaluate . '</td>' . "\n";
|
|
print '<td width=15% align="right">' . $link_auto_evaluate . '</td>' . "\n";
|
|
- print '<td width=15% align="right">' . $link_all_submissions_manager . '</td>' . "\n";
|
|
|
|
|
|
+ print '<td width=16% align="right">' . $link_all_submissions_manager . '</td>' . "\n";
|
|
print '<td width=15% align="right">' . $link_print . '</td>' . "\n";
|
|
print '<td width=15% align="right">' . $link_print . '</td>' . "\n";
|
|
} // if ($this->action != 'print')
|
|
} // if ($this->action != 'print')
|
|
print '</tr></table>' . "\n";
|
|
print '</tr></table>' . "\n";
|