mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
MDL-48428 mod/assign: Allow Grant extension option in offline assignment
This commit is contained in:
parent
d87bcfb325
commit
24937b2c1e
@ -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,
|
||||
|
62
mod/assign/tests/behat/grant_extension.feature
Normal file
62
mod/assign/tests/behat/grant_extension.feature
Normal 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"
|
Loading…
x
Reference in New Issue
Block a user