MDL-48428 mod/assign: Allow Grant extension option in offline assignment

This commit is contained in:
Gregory Faller 2014-12-17 14:26:25 +10:30
parent d87bcfb325
commit 24937b2c1e
2 changed files with 98 additions and 38 deletions

View File

@ -266,13 +266,8 @@ class assign_grading_table extends table_sql implements renderable {
}
// Submission status.
if ($assignment->is_any_submission_plugin_enabled()) {
$columns[] = 'status';
$headers[] = get_string('status', 'assign');
} else if ($this->assignment->get_instance()->markingworkflow) {
$columns[] = 'workflowstatus';
$headers[] = get_string('status', 'assign');
}
$columns[] = 'status';
$headers[] = get_string('status', 'assign');
// Team submission columns.
if ($assignment->get_instance()->teamsubmission) {
@ -927,24 +922,27 @@ class assign_grading_table extends table_sql implements renderable {
$o .= $this->output->container($lockedstr, 'lockedsubmission');
}
// Add status of "grading", use markflow if enabled.
if ($instance->markingworkflow) {
$o .= $this->col_workflowstatus($row);
} else if ($row->grade !== null && $row->grade >= 0) {
$o .= $this->output->container(get_string('graded', 'assign'), 'submissiongraded');
} else if (!$timesubmitted) {
$now = time();
if ($due && ($now > $due)) {
$overduestr = get_string('overdue', 'assign', format_time($now - $due));
$o .= $this->output->container($overduestr, 'overduesubmission');
// Add status of "grading" if markflow is not enabled.
if (!$instance->markingworkflow) {
if ($row->grade !== null && $row->grade >= 0) {
$o .= $this->output->container(get_string('graded', 'assign'), 'submissiongraded');
} else if (!$timesubmitted) {
$now = time();
if ($due && ($now > $due)) {
$overduestr = get_string('overdue', 'assign', format_time($now - $due));
$o .= $this->output->container($overduestr, 'overduesubmission');
}
}
}
}
if ($row->extensionduedate) {
$userdate = userdate($row->extensionduedate);
$extensionstr = get_string('userextensiondate', 'assign', $userdate);
$o .= $this->output->container($extensionstr, 'extensiondate');
}
if ($instance->markingworkflow) {
$o .= $this->col_workflowstatus($row);
}
if ($row->extensionduedate) {
$userdate = userdate($row->extensionduedate);
$extensionstr = get_string('userextensiondate', 'assign', $userdate);
$o .= $this->output->container($extensionstr, 'extensiondate');
}
if ($this->is_downloading()) {
@ -1037,22 +1035,6 @@ class assign_grading_table extends table_sql implements renderable {
}
}
if (($this->assignment->get_instance()->duedate ||
$this->assignment->get_instance()->cutoffdate) &&
$this->hasgrantextension) {
$urlparams = array('id' => $this->assignment->get_course_module()->id,
'userid'=>$row->id,
'action'=>'grantextension',
'sesskey'=>sesskey(),
'page'=>$this->currpage);
$url = new moodle_url('/mod/assign/view.php', $urlparams);
$description = get_string('grantextension', 'assign');
$actions['grantextension'] = new action_menu_link_secondary(
$url,
$noimage,
$description
);
}
if ($submissionsopen &&
$USER->id != $row->id &&
$caneditsubmission) {
@ -1070,6 +1052,22 @@ class assign_grading_table extends table_sql implements renderable {
);
}
}
if (($this->assignment->get_instance()->duedate ||
$this->assignment->get_instance()->cutoffdate) &&
$this->hasgrantextension) {
$urlparams = array('id' => $this->assignment->get_course_module()->id,
'userid' => $row->id,
'action' => 'grantextension',
'sesskey' => sesskey(),
'page' => $this->currpage);
$url = new moodle_url('/mod/assign/view.php', $urlparams);
$description = get_string('grantextension', 'assign');
$actions['grantextension'] = new action_menu_link_secondary(
$url,
$noimage,
$description
);
}
if ($row->status == ASSIGN_SUBMISSION_STATUS_SUBMITTED &&
$this->assignment->get_instance()->submissiondrafts) {
$urlparams = array('id' => $this->assignment->get_course_module()->id,

View File

@ -0,0 +1,62 @@
@mod @mod_assign
Feature: Grant an extension to an offline student
In order to allow students to have an accurate due date
As a teacher
I need to grant students extensions at any time
Background:
Given the following "courses" exist:
| fullname | shortname | category | groupmode |
| Course 1 | C1 | 0 | 1 |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
| student1 | Student | 1 | student1@asd.com |
| student2 | Student | 2 | student2@asd.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
@javascript
Scenario: Granting an extension to an offline assignment
Given the following "activities" exist:
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | assignsubmission_file_enabled | duedate |
| assign | C1 | assign1 | Test assignment name | Test assignment description | 0 | 0 | 1388534400 |
And I log in as "teacher1"
And I follow "Course 1"
And I follow "Test assignment name"
When I follow "View/grade all submissions"
And I click on "Edit" "link" in the "Student 1" "table_row"
And I follow "Grant extension"
And I set the field "Enable" to "1"
And I press "Save changes"
Then I should see "Extension granted until:" in the "Student 1" "table_row"
And I log out
And I log in as "student1"
And I follow "Course 1"
And I follow "Test assignment name"
And I should see "Extension due date"
@javascript @_alert
Scenario: Granting extensions to an offline assignment (batch action)
Given the following "activities" exist:
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | assignsubmission_file_enabled | duedate |
| assign | C1 | assign1 | Test assignment name | Test assignment description | 0 | 0 | 1388534400 |
And I log in as "teacher1"
And I follow "Course 1"
And I follow "Test assignment name"
When I follow "View/grade all submissions"
And I set the field "selectall" to "1"
And I set the field "operation" to "Grant extension"
And I click on "Go" "button" confirming the dialogue
And I set the field "Enable" to "1"
And I press "Save changes"
Then I should see "Extension granted until:" in the "Student 1" "table_row"
And I should see "Extension granted until:" in the "Student 2" "table_row"
And I log out
And I log in as "student1"
And I follow "Course 1"
And I follow "Test assignment name"
And I should see "Extension due date"