Skip to content

Commit

Permalink
add tiles format (#33)
Browse files Browse the repository at this point in the history
* add tiles format (#33)
  • Loading branch information
Syxton authored Apr 17, 2023
1 parent 854fd54 commit ff31ba5
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 2 deletions.
3 changes: 2 additions & 1 deletion db/upgrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ function xmldb_block_massaction_upgrade($oldversion, $block): bool {
upgrade_block_savepoint(true, 2022000000, 'massaction', false);
}

if ($oldversion < 2023041700) { // Add onetopic, grid support.
if ($oldversion < 2023041700) { // Add onetopic, grid, and tiles support.
block_massaction_add_supported_format('onetopic');
block_massaction_add_supported_format('grid');
block_massaction_add_supported_format('tiles');
upgrade_block_savepoint(true, 2023041700, 'massaction', false);
}

Expand Down
2 changes: 1 addition & 1 deletion settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
});

// These are the formats supported by the maintainer.
$supportedformatsbydefault = ['weeks' => 1, 'topics' => 1, 'topcoll' => 1, 'onetopic' => 1, 'grid' => 1];
$supportedformatsbydefault = ['weeks' => 1, 'topics' => 1, 'topcoll' => 1, 'onetopic' => 1, 'grid' => 1, 'tiles' => 1];

$settings->add(new admin_setting_configmulticheckbox(
'block_massaction/applicablecourseformats',
Expand Down
79 changes: 79 additions & 0 deletions tests/behat/tiles.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
@block @block_massaction @block_massaction_tiles
Feature: Check if block generates all necessary checkboxes in tiles format and properly disables
the currently not active sections (or sections not containing any modules)

@javascript
Scenario: Check if checkboxes are created properly for tiles format
Given I installed course format "tiles"
And the following "courses" exist:
| fullname | shortname | numsections | format |
| Test course | TC | 5 | tiles |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Mr | Teacher | teacher1@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | TC | editingteacher |
And the following "activities" exist:
| activity | course | idnumber | name | intro | section |
| page | TC | 1 | Test Activity1 | Test page description | 0 |
| page | TC | 2 | Test Activity2 | Test page description | 1 |
| label | TC | 3 | Test Activity3 | Label text | 2 |
| page | TC | 4 | Test Activity4 | Test page description | 4 |
| page | TC | 5 | Test Activity5 | Test page description | 4 |
And the following config values are set as admin:
| config | value | plugin |
| assumedatastoreconsent | 1 | format_tiles |
When I log in as "teacher1"
And I am on "Test course" course homepage with editing mode on
And I add the "Mass Actions" block
And I click on "Expand all" "link"
And I click on "Test Activity1 Checkbox" "checkbox"
And I click on "Test Activity4 Checkbox" "checkbox"
Then the field "Test Activity1 Checkbox" matches value "1"
Then the field "Test Activity2 Checkbox" matches value ""
Then the field "Label text Checkbox" matches value ""
Then the field "Test Activity4 Checkbox" matches value "1"
Then the field "Test Activity5 Checkbox" matches value ""
Then the "disabled" attribute of "#block-massaction-control-section-list-select-option-0" "css_element" should not be set
Then the "disabled" attribute of "#block-massaction-control-section-list-select-option-1" "css_element" should not be set
Then the "disabled" attribute of "#block-massaction-control-section-list-select-option-2" "css_element" should not be set
Then the "disabled" attribute of "#block-massaction-control-section-list-select-option-3" "css_element" should be set
Then the "disabled" attribute of "#block-massaction-control-section-list-select-option-4" "css_element" should not be set

@javascript
Scenario: Check if mass actions 'indent' and 'outdent' work
# We need to use a different course format which supports indentation.
# From moodle 4.0 on this is a feature a course format has to explicitely support.
Given I installed course format "tiles"
And the following "courses" exist:
| fullname | shortname | numsections | format |
| Test course | TC2 | 5 | tiles |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Mr | Teacher | teacher1@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | TC2 | editingteacher |
And the following "activities" exist:
| activity | course | idnumber | name | intro | section |
| page | TC2 | 1 | Test Activity1 | Test page description | 0 |
| page | TC2 | 2 | Test Activity2 | Test page description | 1 |
| label | TC2 | 3 | Test Activity3 | Label text | 2 |
| page | TC2 | 4 | Test Activity4 | Test page description | 4 |
| assign | TC2 | 5 | Test Activity5 | Test page description | 4 |
When I log in as "teacher1"
And I am on "Test course" course homepage with editing mode on
And I add the "Mass Actions" block
# Everything is setup now, let's do the real test.
And I click on "Expand all" "text"
And I click on "Test Activity2 Checkbox" "checkbox"
And I click on "Test Activity5 Checkbox" "checkbox"
And I click on "Indent (move right)" "link" in the "Mass Actions" "block"
Then "#section-1 li.modtype_page div.indent-1" "css_element" should exist
Then "#section-4 li.modtype_assign div.indent-1" "css_element" should exist
When I click on "Test Activity2 Checkbox" "checkbox"
And I click on "Test Activity5 Checkbox" "checkbox"
And I click on "Outdent (move left)" "link" in the "Mass Actions" "block"
Then "#section-1 li.modtype_page div.indent-1" "css_element" should not exist
Then "#section-4 li.modtype_assign div.indent-1" "css_element" should not exist

0 comments on commit ff31ba5

Please sign in to comment.