mirror of
https://github.com/moodle/moodle.git
synced 2025-03-13 20:26:32 +01:00
MDL-53803 mod_choice: remove orphaned answers when removing options
This commit is contained in:
parent
ac8d6cff54
commit
025188da5f
@ -175,8 +175,11 @@ function choice_update_instance($choice) {
|
||||
$option->id=$choice->optionid[$key];
|
||||
if (isset($value) && $value <> '') {
|
||||
$DB->update_record("choice_options", $option);
|
||||
} else { //empty old option - needs to be deleted.
|
||||
$DB->delete_records("choice_options", array("id"=>$option->id));
|
||||
} else {
|
||||
// Remove the empty (unused) option.
|
||||
$DB->delete_records("choice_options", array("id" => $option->id));
|
||||
// Delete any answers associated with this option.
|
||||
$DB->delete_records("choice_answers", array("choiceid" => $choice->id, "optionid" => $option->id));
|
||||
}
|
||||
} else {
|
||||
if (isset($value) && $value <> '') {
|
||||
|
50
mod/choice/tests/behat/remove_choice_options.feature
Normal file
50
mod/choice/tests/behat/remove_choice_options.feature
Normal file
@ -0,0 +1,50 @@
|
||||
@mod @mod_choice
|
||||
Feature: Update a choice activity removing options
|
||||
In order to remove incorrect or unwanted options
|
||||
As a teacher
|
||||
I need to update the choice activity
|
||||
|
||||
Scenario: Update a choice activity that has student responses.
|
||||
Given the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@example.com |
|
||||
| student1 | Student | 1 | student1@example.com |
|
||||
| student2 | Student | 2 | student2@example.com |
|
||||
And the following "courses" exist:
|
||||
| fullname | shortname | category |
|
||||
| Course 1 | C1 | 0 |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
| student2 | C1 | student |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add a "Choice" to section "1" and I fill the form with:
|
||||
| Choice name | Choice name |
|
||||
| Description | Choice Description |
|
||||
| option[0] | Option 1 |
|
||||
| option[1] | Option 2 |
|
||||
| option[2] | Option 3 |
|
||||
And I log out
|
||||
And I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
And I choose "Option 3" from "Choice name" choice activity
|
||||
And I should see "Your selection: Option 3"
|
||||
And I should see "Your choice has been saved"
|
||||
And I log out
|
||||
And I log in as "student2"
|
||||
And I follow "Course 1"
|
||||
And I choose "Option 2" from "Choice name" choice activity
|
||||
And I should see "Your selection: Option 2"
|
||||
And I should see "Your choice has been saved"
|
||||
And I log out
|
||||
When I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I follow "Choice name"
|
||||
And I should see "View 2 responses"
|
||||
And I navigate to "Edit settings" node in "Choice administration"
|
||||
And I set the field "option[2]" to ""
|
||||
And I press "Save and display"
|
||||
Then I should see "View 1 responses"
|
Loading…
x
Reference in New Issue
Block a user