Skip to content

Commit

Permalink
Merge branch 'MDL-76083-400' of https://github.com/aanabit/moodle int…
Browse files Browse the repository at this point in the history
…o MOODLE_400_STABLE
  • Loading branch information
andrewnicols committed Nov 17, 2022
2 parents 3faffbc + 09ed58c commit 222af18
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 11 deletions.
20 changes: 9 additions & 11 deletions mod/data/lib.php
Expand Up @@ -2704,17 +2704,15 @@ function import($overwritesettings) {
}

/* Get rid of all old unused data */
if (!empty($preservedfields)) {
foreach ($currentfields as $cid => $currentfield) {
if (!array_key_exists($cid, $preservedfields)) {
/* Data not used anymore so wipe! */
print "Deleting field $currentfield->name<br />";

$id = $currentfield->id;
//Why delete existing data records and related comments/ratings??
$DB->delete_records('data_content', array('fieldid'=>$id));
$DB->delete_records('data_fields', array('id'=>$id));
}
foreach ($currentfields as $cid => $currentfield) {
if (!array_key_exists($cid, $preservedfields)) {
/* Data not used anymore so wipe! */
echo "Deleting field $currentfield->name<br />";

$id = $currentfield->id;
// Why delete existing data records and related comments/ratings??
$DB->delete_records('data_content', ['fieldid' => $id]);
$DB->delete_records('data_fields', ['id' => $id]);
}
}

Expand Down
36 changes: 36 additions & 0 deletions mod/data/tests/behat/import_presets.feature
@@ -0,0 +1,36 @@
@mod @mod_data @javascript @_file_upload
Feature: Users can import presets
In order to use presets
As a user
I need to import and apply presets from zip files

Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@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 |
And the following "activities" exist:
| activity | name | intro | course | idnumber |
| data | Mountain landscapes | n | C1 | data1 |

Scenario: Teacher can import from field page on a database with fields and previous fields will be
removed
Given the following "mod_data > fields" exist:
| database | type | name | description |
| data1 | text | Test field name | Test field description |
And I am on the "Mountain landscapes" "data activity" page logged in as teacher1
And I follow "Presets"
And I click on "Import" "link"
And I upload "mod/data/tests/fixtures/image_gallery_preset.zip" file to "Choose file" filemanager
When I click on "Save" "button"
And I click on "Continue" "button"
Then I should see "The preset has been successfully applied."
And I follow "Fields"
And I should see "image"
And I should see "title"
And I should not see "Test field name"
36 changes: 36 additions & 0 deletions mod/data/tests/behat/use_presets.feature
@@ -0,0 +1,36 @@
@mod @mod_data @javascript
Feature: Users can use predefined presets
In order to use presets
As a user
I need to select an existing preset

Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@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 |
And the following "activities" exist:
| activity | name | intro | course | idnumber |
| data | Mountain landscapes | introduction... | C1 | data1 |
And the following "mod_data > fields" exist:
| database | type | name | description |
| data1 | text | Test field name | Test field description |

Scenario: If Teacher use another preset then the previous fields are removed
Given I am on the "Mountain landscapes" "data activity" page logged in as teacher1
And I follow "Fields"
And I should see "Test field name"
And I follow "Presets"
And I click on "fullname" "radio" in the "Image gallery" "table_row"
And I click on "Use preset" "button"
When I click on "Continue" "button"
Then I should see "The preset has been successfully applied."
And I follow "Fields"
And I should see "image"
And I should see "title"
And I should not see "Test field name"
Binary file added mod/data/tests/fixtures/image_gallery_preset.zip
Binary file not shown.

0 comments on commit 222af18

Please sign in to comment.