MDL-28448 Assign: Add a new capability that lets teachers mess with student submissions.
This commit is contained in:
@@ -962,6 +962,8 @@ class assign_grading_table extends table_sql implements renderable {
|
||||
* @return string
|
||||
*/
|
||||
public function col_userid(stdClass $row) {
|
||||
global $USER;
|
||||
|
||||
$edit = '';
|
||||
|
||||
$actions = array();
|
||||
@@ -978,6 +980,9 @@ class assign_grading_table extends table_sql implements renderable {
|
||||
}
|
||||
$actions[$url->out(false)] = $description;
|
||||
|
||||
$submissionsopen = $this->assignment->submissions_open($row->id);
|
||||
$caneditsubmission = $this->assignment->can_edit_submission($row->id, $USER->id);
|
||||
|
||||
// Hide for offline assignments.
|
||||
if ($this->assignment->is_any_submission_plugin_enabled()) {
|
||||
if (!$row->status ||
|
||||
@@ -1018,6 +1023,18 @@ class assign_grading_table extends table_sql implements renderable {
|
||||
$description = get_string('grantextension', 'assign');
|
||||
$actions[$url->out(false)] = $description;
|
||||
}
|
||||
if ($submissionsopen &&
|
||||
$USER->id != $row->id &&
|
||||
$caneditsubmission) {
|
||||
$urlparams = array('id' => $this->assignment->get_course_module()->id,
|
||||
'userid'=>$row->id,
|
||||
'action'=>'editsubmission',
|
||||
'sesskey'=>sesskey(),
|
||||
'page'=>$this->currpage);
|
||||
$url = new moodle_url('/mod/assign/view.php', $urlparams);
|
||||
$description = get_string('editsubmission', 'assign');
|
||||
$actions[$url->out(false)] = $description;
|
||||
}
|
||||
}
|
||||
if ($row->status == ASSIGN_SUBMISSION_STATUS_SUBMITTED &&
|
||||
$this->assignment->get_instance()->submissiondrafts) {
|
||||
@@ -1030,6 +1047,20 @@ class assign_grading_table extends table_sql implements renderable {
|
||||
$description = get_string('reverttodraftshort', 'assign');
|
||||
$actions[$url->out(false)] = $description;
|
||||
}
|
||||
if ($row->status == ASSIGN_SUBMISSION_STATUS_DRAFT &&
|
||||
$this->assignment->get_instance()->submissiondrafts &&
|
||||
$caneditsubmission &&
|
||||
$submissionsopen &&
|
||||
$row->id != $USER->id) {
|
||||
$urlparams = array('id' => $this->assignment->get_course_module()->id,
|
||||
'userid'=>$row->id,
|
||||
'action'=>'submitotherforgrading',
|
||||
'sesskey'=>sesskey(),
|
||||
'page'=>$this->currpage);
|
||||
$url = new moodle_url('/mod/assign/view.php', $urlparams);
|
||||
$description = get_string('submitforgrading', 'assign');
|
||||
$actions[$url->out(false)] = $description;
|
||||
}
|
||||
|
||||
$ismanual = $this->assignment->get_instance()->attemptreopenmethod == ASSIGN_ATTEMPT_REOPEN_METHOD_MANUAL;
|
||||
$hassubmission = !empty($row->status);
|
||||
|
||||
Reference in New Issue
Block a user