Merge branch 'MDL-77878-master-enfix' of https://github.com/vmdef/moodle

This commit is contained in:
Paul Holden 2023-04-17 19:12:36 +01:00
commit 6a5a787844
No known key found for this signature in database
GPG Key ID: A81A96D6045F6164
40 changed files with 257 additions and 273 deletions

View File

@ -8,52 +8,52 @@ Feature: An administrator can manage Block plugins
Scenario: An administrator can control the enabled state of block plugins using JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
When I click on "Disable the Latest badges plugin" "link"
Then I should see "The Latest badges plugin has been disabled"
And "Disable the Latest badges plugin" "link" should not exist
But "Enable the Latest badges plugin" "link" should exist
When I click on "Enable the Latest badges plugin" "link"
Then I should see "The Latest badges plugin has been enabled"
And "Enable the Latest badges plugin" "link" should not exist
But "Disable the Latest badges plugin" "link" should exist
When I click on "Disable Latest badges" "link"
Then I should see "Latest badges disabled."
And "Disable Latest badges" "link" should not exist
But "Enable Latest badges" "link" should exist
When I click on "Enable Latest badges" "link"
Then I should see "Latest badges enabled."
And "Enable Latest badges" "link" should not exist
But "Disable Latest badges" "link" should exist
Scenario: An administrator can control the enabled state of block plugins without JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
When I click on "Disable the Latest badges plugin" "link"
Then I should see "The Latest badges plugin has been disabled"
And "Disable the Latest badges plugin" "link" should not exist
But "Enable the Latest badges plugin" "link" should exist
When I click on "Enable the Latest badges plugin" "link"
Then I should see "The Latest badges plugin has been enabled"
And "Enable the Latest badges plugin" "link" should not exist
But "Disable the Latest badges plugin" "link" should exist
When I click on "Disable Latest badges" "link"
Then I should see "Latest badges disabled."
And "Disable Latest badges" "link" should not exist
But "Enable Latest badges" "link" should exist
When I click on "Enable Latest badges" "link"
Then I should see "Latest badges enabled."
And "Enable Latest badges" "link" should not exist
But "Disable Latest badges" "link" should exist
@javascript
Scenario: An administrator can control the protected state of block plugins using JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
When I click on "Protect instances of the Latest badges block" "link"
Then I should see "The Latest badges block is now protected"
And "Protect instances of the Latest badges block" "link" should not exist
But "Unprotect instances of the Latest badges block" "link" should exist
And "Protect instances of the Activities block" "link" should exist
When I click on "Unprotect instances of the Latest badges block" "link"
Then I should see "The Latest badges block is no longer protected"
And "Unprotect instances of the Activities block" "link" should not exist
But "Protect instances of the Latest badges block" "link" should exist
And "Protect instances of the Activities block" "link" should exist
When I click on "Protect instances of Latest badges" "link"
Then I should see "Latest badges block instances are protected."
And "Protect instances of Latest badges" "link" should not exist
But "Unprotect instances of Latest badges" "link" should exist
And "Protect instances of Activities" "link" should exist
When I click on "Unprotect instances of Latest badges" "link"
Then I should see "Latest badges block instances are unprotected."
And "Unprotect instances of Activities" "link" should not exist
But "Protect instances of Latest badges" "link" should exist
And "Protect instances of Activities" "link" should exist
Scenario: An administrator can control the protected state of block plugins without JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
When I click on "Protect instances of the Latest badges block" "link"
Then I should see "The Latest badges block is now protected"
And "Protect instances of the Latest badges block" "link" should not exist
But "Unprotect instances of the Latest badges block" "link" should exist
And "Protect instances of the Activities block" "link" should exist
When I click on "Unprotect instances of the Latest badges block" "link"
Then I should see "The Latest badges block is no longer protected"
And "Unprotect instances of the Activities block" "link" should not exist
But "Protect instances of the Latest badges block" "link" should exist
And "Protect instances of the Activities block" "link" should exist
When I click on "Protect instances of Latest badges" "link"
Then I should see "Latest badges block instances are protected."
And "Protect instances of Latest badges" "link" should not exist
But "Unprotect instances of Latest badges" "link" should exist
And "Protect instances of Activities" "link" should exist
When I click on "Unprotect instances of Latest badges" "link"
Then I should see "Latest badges block instances are unprotected."
And "Unprotect instances of Activities" "link" should not exist
But "Protect instances of Latest badges" "link" should exist
And "Protect instances of Activities" "link" should exist

View File

@ -8,23 +8,23 @@ Feature: An administrator can manage Media plugins
Scenario: An administrator can control the enabled state of media plugins using JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Media players > Manage media players" in site administration
When I click on "Disable the YouTube plugin" "link"
Then I should see "The YouTube plugin has been disabled"
And "Disable the YouTube plugin" "link" should not exist
But "Enable the YouTube plugin" "link" should exist
When I click on "Enable the YouTube plugin" "link"
Then I should see "The YouTube plugin has been enabled"
And "Enable the YouTube plugin" "link" should not exist
But "Disable the YouTube plugin" "link" should exist
When I click on "Disable YouTube" "link"
Then I should see "YouTube disabled."
And "Disable YouTube" "link" should not exist
But "Enable YouTube" "link" should exist
When I click on "Enable YouTube" "link"
Then I should see "YouTube enabled."
And "Enable YouTube" "link" should not exist
But "Disable YouTube" "link" should exist
Scenario: An administrator can control the enabled state of media plugins without JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Media players > Manage media players" in site administration
When I click on "Disable the YouTube plugin" "link"
Then I should see "The YouTube plugin has been disabled"
And "Disable the YouTube plugin" "link" should not exist
But "Enable the YouTube plugin" "link" should exist
When I click on "Enable the YouTube plugin" "link"
Then I should see "The YouTube plugin has been enabled"
And "Enable the YouTube plugin" "link" should not exist
But "Disable the YouTube plugin" "link" should exist
When I click on "Disable YouTube" "link"
Then I should see "YouTube disabled."
And "Disable YouTube" "link" should not exist
But "Enable YouTube" "link" should exist
When I click on "Enable YouTube" "link"
Then I should see "YouTube enabled."
And "Enable YouTube" "link" should not exist
But "Disable YouTube" "link" should exist

View File

@ -14,11 +14,11 @@ Feature: I can apply presets
Scenario: Applying Starter Moodle preset changes status and settings
# Checking the settings before applying Full Moodle preset (we're only testing one of each type).
Given I navigate to "Plugins > Activity modules > Manage activities" in site administration
And "Disable the Chat plugin" "icon" should exist in the "Chat" "table_row"
And "Disable Chat" "icon" should exist in the "Chat" "table_row"
And I navigate to "Plugins > Availability restrictions > Manage restrictions" in site administration
And "Hide" "icon" should exist in the "Restriction by grouping" "table_row"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
And "Disable the Logged in user plugin" "icon" should exist in the "Logged in user" "table_row"
And "Disable Logged in user" "icon" should exist in the "Logged in user" "table_row"
And I navigate to "Plugins > Course formats > Manage course formats" in site administration
And "Disable" "icon" should exist in the "Social format" "table_row"
And I navigate to "Plugins > Question behaviours > Manage question behaviours" in site administration
@ -109,11 +109,11 @@ Feature: I can apply presets
And the field "Enable badges" matches value "0"
And the field "Enable competencies" matches value "0"
And I navigate to "Plugins > Activity modules > Manage activities" in site administration
And "Disable the Chat plugin" "icon" should not exist in the "Chat" "table_row"
And "Disable Chat" "icon" should not exist in the "Chat" "table_row"
And I navigate to "Plugins > Availability restrictions > Manage restrictions" in site administration
And "Hide" "icon" should not exist in the "Restriction by grouping" "table_row"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
And "Disable the Logged in user plugin" "icon" should not exist in the "Logged in user" "table_row"
And "Disable Logged in user" "icon" should not exist in the "Logged in user" "table_row"
And I navigate to "Plugins > Course formats > Manage course formats" in site administration
And "Disable" "icon" should not exist in the "Social format" "table_row"
And I navigate to "Plugins > Question behaviours > Manage question behaviours" in site administration

View File

@ -20,11 +20,11 @@ Feature: I can revert changes after a load
And the field "Enable badges" matches value "0"
And the field "Enable competencies" matches value "0"
And I navigate to "Plugins > Activity modules > Manage activities" in site administration
And "Disable the Chat plugin" "icon" should not exist in the "Chat" "table_row"
And "Disable Chat" "icon" should not exist in the "Chat" "table_row"
And I navigate to "Plugins > Availability restrictions > Manage restrictions" in site administration
And "Hide" "icon" should not exist in the "Restriction by grouping" "table_row"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
And "Disable the Logged in user plugin" "icon" should not exist in the "Logged in user" "table_row"
And "Disable Logged in user" "icon" should not exist in the "Logged in user" "table_row"
And I navigate to "Plugins > Course formats > Manage course formats" in site administration
And "Disable" "icon" should not exist in the "Social format" "table_row"
And I navigate to "Plugins > Question behaviours > Manage question behaviours" in site administration
@ -39,11 +39,11 @@ Feature: I can revert changes after a load
Then the field "Enable badges" matches value "1"
And the field "Enable competencies" matches value "1"
And I navigate to "Plugins > Activity modules > Manage activities" in site administration
And "Disable the Chat plugin" "icon" should exist in the "Chat" "table_row"
And "Disable Chat" "icon" should exist in the "Chat" "table_row"
And I navigate to "Plugins > Availability restrictions > Manage restrictions" in site administration
And "Hide" "icon" should exist in the "Restriction by grouping" "table_row"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
And "Disable the Logged in user plugin" "icon" should exist in the "Logged in user" "table_row"
And "Disable Logged in user" "icon" should exist in the "Logged in user" "table_row"
And I navigate to "Plugins > Course formats > Manage course formats" in site administration
And "Disable" "icon" should exist in the "Social format" "table_row"
And I navigate to "Plugins > Question behaviours > Manage question behaviours" in site administration

View File

@ -47,9 +47,8 @@ $string['coursesize_2'] = 'M (~100MB; create in ~2 minutes)';
$string['coursesize_3'] = 'L (~1GB; create in ~30 minutes)';
$string['coursesize_4'] = 'XL (~10GB; create in ~2 hours)';
$string['coursesize_5'] = 'XXL (~20GB; create in ~4 hours)';
$string['additionalmodules'] = 'Additional modules';
$string['additionalmodules_help'] = 'We normally create standard modules in the course (like forum, page or label),
but you can select any other module that implements the course_backend_generator_create_activity function.';
$string['additionalmodules'] = 'Additional activities';
$string['additionalmodules_help'] = 'Select more activities that implement the course_backend_generator_create_activity function to include in the test course.';
$string['coursewithoutusers'] = 'The selected course has no users';
$string['createcourse'] = 'Create course';
$string['createtestplan'] = 'Create test plan';

View File

@ -17,7 +17,7 @@ Feature: Add the glossary random block when main feature is enabled
Scenario: The glossary random block cannot be added when glossary module is disabled
Given I navigate to "Plugins > Activity modules > Manage activities" in site administration
And I click on "Disable the Glossary plugin" "icon" in the "Glossary" "table_row"
And I click on "Disable Glossary" "icon" in the "Glossary" "table_row"
And I am on "Course 1" course homepage with editing mode on
When I click on "Add a block" "link"
Then I should not see "Random glossary entry"

View File

@ -15,7 +15,7 @@ Feature: Add the glossary random block when main feature is disabled
And I add the "Random glossary entry" block to the default region with:
| Title | Random glossary entry |
When I navigate to "Plugins > Activity modules > Manage activities" in site administration
And I click on "Disable the Glossary plugin" "icon" in the "Glossary" "table_row"
And I click on "Disable Glossary" "icon" in the "Glossary" "table_row"
And I am on "Course 1" course homepage with editing mode on
Then I should see "Random glossary entry"
@ -29,7 +29,7 @@ Feature: Add the glossary random block when main feature is disabled
And I click on "Cancel" "button" in the "Delete block?" "dialogue"
And I should see "Random glossary entry"
When I navigate to "Plugins > Activity modules > Manage activities" in site administration
And I click on "Disable the Glossary plugin" "icon" in the "Glossary" "table_row"
And I click on "Disable Glossary" "icon" in the "Glossary" "table_row"
And I am on "Course 1" course homepage with editing mode on
And I open the "Random glossary entry" blocks action menu
And I click on "Delete Random glossary entry block" "link" in the "Random glossary entry" "block"

View File

@ -94,7 +94,7 @@ $string['zero_request_title'] = 'Request your first course';
$string['zero_request_intro'] = 'Need help getting started? Check out the <a href="{$a->dochref}" title="{$a->doctitle}" target="{$a->doctarget}">Moodle documentation</a> or take your first steps with our <a href="{$a->quickhref}" title="{$a->quicktitle}" target="{$a->quicktarget}">Quickstart guide</a>.';
$string['zero_nocourses_title'] = 'Create your first course';
$string['zero_nocourses_intro'] = 'Need help getting started? Check out the <a href="{$a->dochref}" title="{$a->doctitle}" target="{$a->doctarget}">Moodle documentation</a> or take your first steps with our Quickstart guide.';
$string['zero_createcourses_intro'] = 'Once you enrol in a course, it will appear here. To view all courses on this site, go to Manage courses.';
$string['zero_createcourses_intro'] = 'Once you enrol in a course, it will appear here.';
$string['zero_nomanagecourses_intro'] = 'Once you enrol in a course, it will appear here.';
// Deprecated since Moodle 4.0.

View File

@ -47,7 +47,7 @@ Feature: Zero state on my overview block
| shortname | C1 |
When I am on the "My courses" page logged in as "manager"
Then I should see "You're not enrolled in any course"
Then I should see "To view all courses on this site, go to Manage courses."
Then I should see "Once you enrol in a course, it will appear here."
And "Manage courses" "button" should exist
And "Create course" "button" should exist
And I click on "Create course" "button"

View File

@ -7,7 +7,7 @@ Feature: Adding and configuring YouTube block
Background:
Given I log in as "admin"
And I navigate to "Plugins > Blocks > Manage blocks" in site administration
And I click on "Enable the YouTube plugin" "icon" in the "YouTube" "table_row"
And I click on "Enable YouTube" "icon" in the "YouTube" "table_row"
@javascript
Scenario: Category options are not available (except default) in the block settings if the YouTube API key is not set.

View File

@ -40,7 +40,7 @@ $string['indentation_help'] = 'Allow teachers, and other users with the manage a
$string['section0name'] = 'General';
$string['sectionavailability_title'] = 'Week availability';
$string['sectiondelete_title'] = 'Delete week?';
$string['sectionmove_title'] = 'Move section';
$string['sectionmove_title'] = 'Move week';
$string['sectionname'] = 'Week';
$string['sectionsavailability'] = 'Weeks availability';
$string['sectionsavailability_title'] = 'Weeks availability';

View File

@ -15,13 +15,13 @@ Feature: Backup and restore a course containing groups
| user | course | role |
| teacher1 | C1 | editingteacher |
And the following "groups" exist:
| name | course | idnumber | visibility | participation |
| Visible to all/Participation | C1 | VP | 0 | 1 |
| Visible to members/Participation | C1 | MP | 1 | 1 |
| See own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to all/Non-Participation | C1 | VN | 0 | 0 |
| Visible to members/Non-Participation | C1 | MN | 1 | 0 |
| name | course | idnumber | visibility | participation |
| Visible to everyone/Participation | C1 | VP | 0 | 1 |
| Only visible to members/Participation | C1 | MP | 1 | 1 |
| Only see own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to everyone/Non-Participation | C1 | VN | 0 | 0 |
| Only visible to members/Non-Participation | C1 | MN | 1 | 0 |
And I log in as "admin"
And I backup "Course 1" course using this options:
| Confirmation | Filename | test_backup.mbz |
@ -35,14 +35,14 @@ Feature: Backup and restore a course containing groups
And I press "Edit group settings"
Then the following fields match these values:
| Group ID number | <idnumber> |
| Group visibility | <visibility> |
| Allow activity participation | <participation> |
| Group membership visibility | <visibility> |
| Show group in dropdown menu for activities in group mode | <participation> |
Examples:
| group | idnumber | visibility | participation |
| Visible to all/Participation | VP | 0 | 1 |
| Visible to members/Participation | MP | 1 | 1 |
| See own membership | O | 2 | 0 |
| Not visible | N | 3 | 0 |
| Visible to all/Non-Participation | VN | 0 | 0 |
| Visible to members/Non-Participation | MN | 1 | 0 |
| group | idnumber | visibility | participation |
| Visible to everyone/Participation | VP | 0 | 1 |
| Only visible to members/Participation | MP | 1 | 1 |
| Only see own membership | O | 2 | 0 |
| Not visible | N | 3 | 0 |
| Visible to everyone/Non-Participation | VN | 0 | 0 |
| Only visible to members/Non-Participation | MN | 1 | 0 |

View File

@ -31,13 +31,13 @@ Feature: Private groups
| student7 | C1 | student |
| student8 | C1 | student |
And the following "groups" exist:
| name | course | idnumber | visibility | participation |
| Visible to all/Participation | C1 | VP | 0 | 1 |
| Visible to members/Participation | C1 | MP | 1 | 1 |
| See own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to all/Non-Participation | C1 | VN | 0 | 0 |
| Visible to members/Non-Participation | C1 | MN | 1 | 0 |
| name | course | idnumber | visibility | participation |
| Visible to everyone/Participation | C1 | VP | 0 | 1 |
| Only visible to members/Participation | C1 | MP | 1 | 1 |
| Only see own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to everyone/Non-Participation | C1 | VN | 0 | 0 |
| Only visible to members/Non-Participation | C1 | MN | 1 | 0 |
And the following "group members" exist:
| user | group |
| student1 | VP |
@ -53,62 +53,62 @@ Feature: Private groups
| student7 | O |
| student8 | N |
Scenario: Participants in "Visible to all" groups see their membership and other members:
Scenario: Participants in "Visible to everyone" groups see their membership and other members:
Given I log in as "student1"
And I am on "Course 1" course homepage
When I follow "Participants"
Then the following should exist in the "participants" table:
| First name / Surname | Groups |
| Student 1 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 1 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 2 | No groups |
| Student 3 | No groups |
| Student 4 | No groups |
| Student 5 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 5 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 6 | No groups |
| Student 7 | No groups |
| Student 8 | No groups |
Scenario: Participants in "Visible to members" groups see their membership and other members, plus "Visible to all"
Scenario: Participants in "Only visible to members" groups see their membership and other members, plus "Visible to everyone"
Given I log in as "student2"
And I am on "Course 1" course homepage
When I follow "Participants"
Then the following should exist in the "participants" table:
| First name / Surname | Groups |
| Student 1 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 2 | Visible to members/Non-Participation, Visible to members/Participation |
| Student 1 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 2 | Only visible to members/Non-Participation, Only visible to members/Participation |
| Student 3 | No groups |
| Student 4 | No groups |
| Student 5 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 6 | Visible to members/Non-Participation, Visible to members/Participation |
| Student 5 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 6 | Only visible to members/Non-Participation, Only visible to members/Participation |
| Student 7 | No groups |
| Student 8 | No groups |
Scenario: Participants in "See own membership" groups see their membership but not other members, plus "Visible to all"
Scenario: Participants in "Only see own membership" groups see their membership but not other members, plus "Visible to everyone"
Given I log in as "student3"
And I am on "Course 1" course homepage
When I follow "Participants"
Then the following should exist in the "participants" table:
| First name / Surname | Groups |
| Student 1 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 1 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 2 | No groups |
| Student 3 | See own membership |
| Student 3 | Only see own membership |
| Student 4 | No groups |
| Student 5 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 5 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 6 | No groups |
| Student 7 | No groups |
| Student 8 | No groups |
Scenario: Participants in "Not visible" groups do not see that group, do see "Visible to all"
Scenario: Participants in "Not visible" groups do not see that group, do see "Visible to everyone"
Given I log in as "student4"
And I am on "Course 1" course homepage
When I follow "Participants"
Then the following should exist in the "participants" table:
| First name / Surname | Groups |
| Student 1 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 1 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 2 | No groups |
| Student 3 | No groups |
| Student 4 | No groups |
| Student 5 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 5 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 6 | No groups |
| Student 7 | No groups |
| Student 8 | No groups |
@ -119,11 +119,11 @@ Feature: Private groups
When I follow "Participants"
Then the following should exist in the "participants" table:
| First name / Surname | Groups |
| Student 1 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 2 | Visible to members/Non-Participation, Visible to members/Participation |
| Student 3 | See own membership |
| Student 1 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 2 | Only visible to members/Non-Participation, Only visible to members/Participation |
| Student 3 | Only see own membership |
| Student 4 | Not visible |
| Student 5 | Visible to all/Non-Participation, Visible to all/Participation |
| Student 6 | Visible to members/Non-Participation, Visible to members/Participation |
| Student 7 | See own membership |
| Student 5 | Visible to everyone/Non-Participation, Visible to everyone/Participation |
| Student 6 | Only visible to members/Non-Participation, Only visible to members/Participation |
| Student 7 | Only see own membership |
| Student 8 | Not visible |

View File

@ -148,14 +148,14 @@ Feature: Automatic updating of groups and groupings
Given I set the field "groups" to "Group (with ID)"
And I press "Edit group settings"
And "visibility" "select" should exist
And the field "Group visibility" matches value "Visible to all"
And the field "Group membership visibility" matches value "Visible to everyone"
And the "participation" "checkbox" should be enabled
And the field "Allow activity participation" matches value "1"
And the field "Show group in dropdown menu for activities in group mode" matches value "1"
When the following "group members" exist:
| user | group |
| teacher1 | An ID |
And I reload the page
Then "visibility" "select" should not exist
And "Visible to all" "text" should exist
And "Visible to everyone" "text" should exist
And the "participation" "checkbox" should be disabled
And the field "Allow activity participation" matches value "1"
And the field "Show group in dropdown menu for activities in group mode" matches value "1"

View File

@ -180,7 +180,7 @@ class groups_test extends core_reportbuilder_testcase {
$this->assertEquals('G101', $groupidnumber);
$this->assertEquals(format_text($group->description), $groupdescription);
$this->assertEquals('S', $groupenrolmentkey);
$this->assertEquals('Visible to all', $groupvisibility);
$this->assertEquals('Visible to everyone', $groupvisibility);
$this->assertEquals('Yes', $groupparticipation);
$this->assertEmpty($grouppicture);
$this->assertNotEmpty($grouptimecreated);
@ -231,7 +231,7 @@ class groups_test extends core_reportbuilder_testcase {
], false],
'Filter group visibility' => ['group:visibility', [
'group:visibility_operator' => select::EQUAL_TO,
'group:visibility_value' => 0, // Visible to all.
'group:visibility_value' => 0, // Visible to everyone.
], true],
'Filter group visibility (no match)' => ['group:visibility', [
'group:visibility_operator' => select::EQUAL_TO,

View File

@ -95,13 +95,13 @@ $string['blockediplist'] = 'Blocked IP List';
$string['blockinstances'] = 'Instances';
$string['blockmultiple'] = 'Multiple';
$string['blockprotect'] = 'Protect instances';
$string['blockprotectblock'] = 'Protect instances of the {$a} block';
$string['blockprotected'] = 'The {$a} block is now protected';
$string['blockprotectblock'] = 'Protect instances of {$a}';
$string['blockprotected'] = '{$a} block instances are protected.';
$string['blockprotect_help'] = 'If you lock a particular type of block, then no-one will be able to add or delete instances. (You can, of course, unlock again if you need to edit instances.)
This is intended to protect blocks like the navigation and settings which are very hard to get back if accidentally deleted.';
$string['blockunprotectblock'] = 'Unprotect instances of the {$a} block';
$string['blockunprotected'] = 'The {$a} block is no longer protected';
$string['blockunprotectblock'] = 'Unprotect instances of {$a}';
$string['blockunprotected'] = '{$a} block instances are unprotected.';
$string['blocksettings'] = 'Manage blocks';
$string['bloglevel'] = 'Blog visibility';
$string['bookmarkadded'] = 'Bookmark added.';
@ -145,7 +145,7 @@ $string['cliupgradecompletenomaintenanceupgrade'] = 'To purge remaining caches a
php admin/cli/purge_caches.php --filter
php admin/cli/purge_caches.php --other
It is recommended to perform these purges in isolation, with a gap between commands, to reduce load spikes on the web server.';
You should perform these purges in isolation, with a gap between commands, to reduce load spikes on the web server.';
$string['cliupgradedefault'] = 'New setting: {$a}';
$string['cliupgradedefaultheading'] = 'Setting new default values';
$string['cliupgradedefaultverbose'] = 'New setting: {$a->name}, Default value: {$a->defaultsetting}';
@ -366,7 +366,7 @@ $string['configsectionsecurity'] = 'Security';
$string['configsectionstats'] = 'Statistics';
$string['configsectionuser'] = 'User';
$string['configsecureforms'] = 'Moodle can use an additional level of security when accepting data from web forms. If this is enabled, then the browser\'s HTTP_REFERER variable is checked against the current form address. In a very few cases this can cause problems if the user is using a firewall (eg Zonealarm) configured to strip HTTP_REFERER from their web traffic. Symptoms are getting \'stuck\' on a form. If your users are having problems with the login page (for example) you might want to disable this setting, although it might leave your site more open to brute-force password attacks. If in doubt, leave this set to \'Yes\'.';
$string['configservicespage'] = 'Users will be sent to this URL when clicking on \'Services and support\'. If the field is left blank the user will be redirect to the \'Find your Moodle partner\' official page.';
$string['configservicespage'] = 'Enter the URL of a services and support page or leave empty to link to Moodle services on moodle.com.';
$string['configsessioncookie'] = 'This setting customises the name of the cookie used for Moodle sessions. This is optional, and only useful to avoid cookies being confused when there is more than one copy of Moodle running within the same web site.';
$string['configsessioncookiedomain'] = 'This allows you to change the domain that the Moodle cookies are available from. This is useful for Moodle customisations (e.g. authentication or enrolment plugins) that need to share Moodle session information with a web application on another subdomain. <strong>WARNING: it is strongly recommended to leave this setting at the default (empty) - an incorrect value will prevent all logins to the site.</strong>';
$string['configsessioncookiepath'] = 'If you need to change where browsers send the Moodle cookies, you can change this setting to specify a subdirectory of your web site. Otherwise the default \'/\' should be fine.';
@ -402,7 +402,7 @@ $string['configstripalltitletags'] = 'Uncheck this setting to allow HTML tags in
$string['configsupportavailability'] = 'Determines who has access to contact site support from the footer.';
$string['configsupportemail'] = 'If SMTP is configured on this site and a support page is not set, this email address will receive messages submitted through the support form. If sending fails, the email address will be displayed to logged-in users.';
$string['configsupportname'] = 'The name of the person or other entity providing support via the support form or support page.';
$string['configsupportpage'] = 'A link to this page will be provided for users to contact the site support. If the field is left blank then a link to a support form will be provided instead.';
$string['configsupportpage'] = 'Enter the URL of a support page or leave empty to link to a contact form.';
$string['configtempdatafoldercleanup'] = 'Remove temporary data files from the data folder that are older than the selected time.';
$string['configthemedesignermode'] = 'Normally all theme images and style sheets are cached in browsers and on the server for a very long time, for performance. If you are designing themes or developing code then you probably want to turn this mode on so that you are not served cached versions. Warning: this will make your site slower for all users! Alternatively, you can also reset the theme caches manually from the Theme selection page.';
$string['configthemelist'] = 'Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you can specify a comma-separated list of names here (Don\'t use spaces!).
@ -458,7 +458,7 @@ $string['cron_enabled'] = 'Enable cron';
$string['cron_enabled_desc'] = 'Cron should normally be enabled, however this setting allows it to be disabled temporarily, for example before a server restart. If disabled, the system is prevented from starting new background tasks. Note that the cron should not be disabled for a long time, as this will prevent important functionality from working.';
$string['cron_help'] = 'The cron.php script runs a number of tasks at different scheduled intervals, such as sending forum post notification emails. The script should be run regularly - ideally every minute.';
$string['cron_keepalive'] = 'Keep alive';
$string['cron_keepalive_desc'] = 'The amount of time to keep polling for additional tasks. This setting is useful for ensuring that cron is always running.<br><br>If you use dedicated task runners then you should set this value to an 0, otherwise we recommend setting this to around a value similar to your adhoc task concurrency limit. Longer values should be avoided and the maximum value is 15 minutes.';
$string['cron_keepalive_desc'] = 'The length of time to keep polling for additional tasks. This setting is for ensuring that cron is always running. If you use dedicated task runners, set it to 0. Otherwise, set it to a value similar to the adhoc task concurrency limit. Avoid longer times. The maximum time is 15 minutes.';
$string['cron_link'] = 'admin/cron';
$string['cronclionly'] = 'Cron execution via command line only';
$string['cronerrorclionly'] = 'Sorry, internet access to this page has been disabled by the administrator.';
@ -528,7 +528,7 @@ $string['devicedetectregexexpression'] = 'Regular expression';
$string['devicedetectregexvalue'] = 'Return value';
$string['devicetype'] = 'Device type';
$string['disabled'] = 'Disabled';
$string['disableplugin'] = 'Disable the {$a} plugin';
$string['disableplugin'] = 'Disable {$a}';
$string['disableuserimages'] = 'Disable user profile images';
$string['displayerrorswarning'] = 'Enabling the PHP setting <em>display_errors</em> is not recommended on production sites because some error messages may reveal sensitive information about your server.';
$string['displayloginfailures'] = 'Display login failures';
@ -603,7 +603,7 @@ $string['enablegravatar_help'] = 'When enabled Moodle will attempt to fetch a us
$string['enablemobilewebservice'] = 'Enable web services for mobile devices';
$string['enablepdfexportfont'] = 'Enable PDF fonts';
$string['enablepdfexportfont_desc'] = 'If your site has courses in different languages which need other fonts in generated PDF files, you can provide the option to set the font in the course settings. You need to specify available fonts in $CFG->pdfexportfont in config.php.';
$string['enableplugin'] = 'Enable the {$a} plugin';
$string['enableplugin'] = 'Enable {$a}';
$string['enablerecordcache'] = 'Enable record cache';
$string['enablerssfeeds'] = 'Enable RSS feeds';
$string['enablesearchareas'] = 'Enable search areas';
@ -1014,8 +1014,8 @@ $string['pleaserefreshregistration'] = 'Your site is registered. Registration la
$string['pleaserefreshregistrationunknown'] = 'Your site has been registered but the registration date is unknown. Please update your registration using the \'Update registration\' button or ensure that the \'Site registration\' scheduled task is enabled so your registration is automatically updated.';
$string['pleaserefreshregistrationnewdata'] = 'Registration information has been changed. Please confirm it using the \'Update registration\' button.';
$string['plugin'] = 'Plugin';
$string['plugin_disabled'] = 'The {$a} plugin has been disabled';
$string['plugin_enabled'] = 'The {$a} plugin has been enabled';
$string['plugin_disabled'] = '{$a} disabled.';
$string['plugin_enabled'] = '{$a} enabled.';
$string['plugins'] = 'Plugins';
$string['pluginscheck'] = 'Plugin dependencies check';
$string['pluginscheckfailed'] = 'Dependencies check failed for {$a->pluginslist}';
@ -1250,7 +1250,7 @@ $string['selecttheme'] = 'Select theme for {$a} device';
$string['server'] = 'Server';
$string['serverchecks'] = 'Server checks';
$string['serverlimit'] = 'Server limit';
$string['servicespage'] = 'Link to \'Services and support\'';
$string['servicespage'] = 'Services and support link';
$string['sessionautostartwarning'] = '<p>Serious configuration error detected, please notify server administrator.</p><p> To operate properly, Moodle requires that administrator changes PHP settings.</p><p><code>session.auto_start</code> must be set to <code>off</code>.</p><p>This setting is controlled by editing <code>php.ini</code>, Apache/IIS <br />configuration or <code>.htaccess</code> file on the server.</p>';
$string['sessioncookie'] = 'Cookie prefix';
$string['sessioncookiedomain'] = 'Cookie domain';
@ -1332,7 +1332,7 @@ $string['supportemail'] = 'Support email';
$string['supportemailsubject'] = 'Site support request - {$a}';
$string['supportavailability'] = 'Support availability';
$string['supportname'] = 'Support name';
$string['supportpage'] = 'Support page';
$string['supportpage'] = 'Contact site support link';
$string['suspenduser'] = 'Suspend user account';
$string['switchlang'] = 'Switch lang directory';
$string['systempaths'] = 'System paths';
@ -1583,7 +1583,7 @@ $string['xmlrpcwebserviceenabled'] = 'It has been detected that the XML-RPC Web
$string['yuicomboloading'] = 'YUI combo loading';
$string['ziprequired'] = 'The Zip PHP extension is now required by Moodle, info-ZIP binaries or PclZip library are not used anymore.';
$string['manageqbanks'] = 'Manage question bank plugins';
$string['modassignmentinuse'] = 'It has been detected that your site is still using the Assignment 2.2 plugin. You may resolve this before upgrading by 1) Backing up your Assignment 2.2 activities and restoring them as new Assignment activities; or 2) Deleting the data from the assignment tables in the database.';
$string['modassignmentinuse'] = 'Your site is still using the Assignment 2.2 plugin. Before upgrading you must 1) backup any Assignment 2.2 activities that you want to keep and restore them as Assignment activities, and 2) delete all Assignment 2.2 data from the database.';
$string['caching'] = 'Caching';

View File

@ -42,7 +42,7 @@ $string['defaultweight_help'] = 'The default weight allows you to choose roughly
$string['deletecheck'] = 'Delete {$a} block?';
$string['deletecheck_modal'] = 'Delete block?';
$string['deleteblock'] = 'Delete {$a} block';
$string['deleteblockcheck'] = 'Are you sure that you want to delete this block titled {$a}?';
$string['deleteblockcheck'] = 'This will delete the block {$a}.';
$string['deleteblockinprogress'] = 'Block {$a} removal in progress...';
$string['deleteblockwarning'] = '<p>You are about to delete a block that appears elsewhere.</p><p>Original block location: {$a->location}<br />Display on page types: {$a->pagetype}</p><p>Are you sure you want to continue?</p>';
$string['hideblock'] = 'Hide {$a} block';

View File

@ -33,15 +33,15 @@ $string['bulkcancel'] = 'Close bulk edit';
$string['bulkselection'] = '{$a} selected';
$string['bulkselection_plural'] = '{$a} selected';
$string['cmavailability'] = 'Activity availability';
$string['cmdelete_info'] = 'This will delete "{$a->name}" and any user data it contains';
$string['cmdelete_info'] = 'This will delete {$a->name} and any user data it contains.';
$string['cmdelete_title'] = 'Delete activity?';
$string['cmsdelete'] = 'Delete activities';
$string['cmsdelete_info'] = 'This will delete {$a->count} activities and any user data they contain';
$string['cmsdelete_info'] = 'This will delete {$a->count} activities and any user data they contain.';
$string['cmsdelete_title'] = 'Delete selected activities?';
$string['cmsduplicate'] = 'Duplicate activities';
$string['cmsmove'] = 'Move activities';
$string['cmmove_title'] = 'Move activity';
$string['cmmove_info'] = 'Move "{$a}" activity after';
$string['cmmove_info'] = 'Move {$a} after';
$string['cmsmove_title'] = 'Move selected activities';
$string['cmsmove_info'] = 'Move {$a} activities after';
$string['courseindex'] = 'Course index';
@ -49,12 +49,12 @@ $string['nobulkaction'] = 'No bulk actions available';
$string['preference:coursesectionspreferences'] = 'Section user preferences for course {$a}';
$string['privacy:metadata:preference:coursesectionspreferences'] = 'Section user preferences like collapsed and expanded.';
$string['sectionavailability_title'] = 'Section availability';
$string['sectiondelete_info'] = 'This will delete "{$a->name}" and all the activities it contains.';
$string['sectiondelete_info'] = 'This will delete {$a->name} and all the activities it contains.';
$string['sectiondelete_title'] = 'Delete section?';
$string['sectionsavailability'] = 'Sections availability';
$string['sectionsavailability_title'] = 'Sections availability';
$string['sectionsdelete'] = 'Delete sections';
$string['sectionmove_info'] = 'Move "{$a}" after';
$string['sectionmove_info'] = 'Move {$a} after';
$string['sectionmove_title'] = 'Move section';
$string['sectionsdelete_info'] = 'This will delete {$a->count} sections and all the activities they contain.';
$string['sectionsdelete_title'] = 'Delete selected sections?';

View File

@ -84,7 +84,7 @@ $string['errorthresholdlow'] = 'Notification threshold must be at least 1 day.';
$string['errorwithbulkoperation'] = 'There was an error while processing your bulk enrolment change.';
$string['eventuserenrolmentcreated'] = 'User enrolled in course';
$string['eventuserenrolmentdeleted'] = 'User unenrolled from course';
$string['eventuserenrolmentupdated'] = 'User unenrolment updated';
$string['eventuserenrolmentupdated'] = 'User enrolment updated';
$string['expirynotify'] = 'Notify before enrolment expires';
$string['expirynotify_help'] = 'This setting determines whether enrolment expiry notification messages are sent.';
$string['expirynotifyall'] = 'Enroller and enrolled user';

View File

@ -240,7 +240,7 @@ $string['duplicateparaminsql'] = 'ERROR: duplicate parameter name in query';
$string['duplicaterolename'] = 'There is already a role with this name!';
$string['duplicateroleshortname'] = 'There is already a role with this short name!';
$string['duplicateusername'] = 'Duplicate username - skipping record';
$string['editedpagenotfound'] = 'Could not determine the current page. Please try refreshing the page and repeating the operation.';
$string['editedpagenotfound'] = 'The system couldn\'t determine the page you are on. Please refresh the page and try again.';
$string['emailfail'] = 'Emailing failed';
$string['encryption_encryptfailed'] = 'Encryption failed';
$string['encryption_decryptfailed'] = 'Decryption failed';

View File

@ -174,14 +174,8 @@ $string['nummembers'] = 'Members per group';
$string['mygroups'] = 'My groups';
$string['othergroups'] = 'Other groups';
$string['overview'] = 'Overview';
$string['participation'] = 'Allow activity participation';
$string['participation_help'] = 'If enabled, members can select this group when participating in an activity using Separate Groups
or Visible Groups mode.
This setting is only applicable if the Group visibility is set to "Visible to all" or "Visible to members". Participation is
disabled otherwise.
This setting cannot be edited once a group has members.';
$string['participation'] = 'Show group in dropdown menu for activities in group mode';
$string['participation_help'] = 'Should group members be able to select this group for activities in separate or visible groups mode? (Only applicable if group membership is visible to everyone or only visible to members.)';
$string['potentialmembers'] = 'Potential members: {$a}';
$string['potentialmembs'] = 'Potential members';
$string['printerfriendly'] = 'Printer-friendly display';
@ -206,25 +200,19 @@ $string['toomanygroups'] = 'Insufficient users to populate this number of groups
$string['usercount'] = 'User count';
$string['usercounttotal'] = 'User count ({$a})';
$string['usergroupmembership'] = 'Selected user\'s membership:';
$string['visibility'] = 'Group visibility';
$string['visibility_help'] = 'Controls the visibility of membership to this group.
$string['visibility'] = 'Group membership visibility';
$string['visibility_help'] = '* Visible to everyone - all course participants can view who is in the group
* Only visible to members - course participants not in the group cant view the group or its members
* Only see own membership - a user can see they are in the group but cant view other group members
* Hidden - only teachers can view the group and its members
If "Visible to all" is set, all users can see when a user is a member of this group (default).
Users with the view hidden groups capability can always view group membership.
If "Visible to members" is set, only members of this group can see when another user is a member.
If "See own membership" is set, users can see that they are in this group, but cannot see that other users are members of the group.
If "Membership is hidden" is set, users cannot see that they or anyone else are members of the group.
Users with moodle/course:viewhiddengroups will always be able to see group membership.
This setting cannot be edited once a group has members.
';
$string['visibilityall'] = 'Visible to all';
$string['visibilitymembers'] = 'Visible to members';
$string['visibilityown'] = 'See own membership';
$string['visibilitynone'] = 'Membership is hidden';
Note that you can\'t change this setting if the group has members.';
$string['visibilityall'] = 'Visible to everyone';
$string['visibilitymembers'] = 'Only visible to members';
$string['visibilityown'] = 'Only see own membership';
$string['visibilitynone'] = 'Hidden';
$string['memberofgroup'] = 'Group member of: {$a}';
// Deprecated since Moodle 3.11.

View File

@ -460,10 +460,10 @@ $string['settingsformultipletries'] = 'Multiple tries';
$string['showhidden'] = 'Also show old questions';
$string['showmarkandmax'] = 'Show mark and max';
$string['showmaxmarkonly'] = 'Show max mark only';
$string['showquestiontext'] = 'Show question text in the question list';
$string['showquestiontext_full'] = 'Full display';
$string['showquestiontext'] = 'Show question text in the question list?';
$string['showquestiontext_full'] = 'Yes, with images, media, etc.';
$string['showquestiontext_off'] = 'No';
$string['showquestiontext_plain'] = 'Text only';
$string['showquestiontext_plain'] = 'Yes, text only';
$string['shown'] = 'Shown';
$string['shownumpartscorrect'] = 'Show the number of correct responses';
$string['shownumpartscorrectwhenfinished'] = 'Show the number of correct responses once the question has finished';

View File

@ -27,7 +27,7 @@ $string['privacy:metadata:component'] = 'The component name in frankenstyle';
$string['privacy:metadata:itemid'] = 'The item ID of the state';
$string['privacy:metadata:registration'] = 'The xAPI registration UUID';
$string['privacy:metadata:statedata'] = 'JSON object with the state data';
$string['privacy:metadata:stateid'] = 'The xAPI state id.';
$string['privacy:metadata:stateid'] = 'The xAPI state ID';
$string['privacy:metadata:timecreated'] = 'The time when the state element was created';
$string['privacy:metadata:timemodified'] = 'The last time state was updated';
$string['privacy:metadata:userid'] = 'The ID of the user who belongs the state ';

View File

@ -28,8 +28,8 @@ $string['settings'] = 'General settings';
$string['privacy:reason'] = 'The TinyMCE editor does not store any preferences or user data.';
$string['branding'] = 'TinyMCE branding';
$string['branding_desc'] = 'Support TinyMCE by displaying the logo in the bottom corner of the text editor. The logo links to the TinyMCE website.';
$string['plugin_enabled'] = 'The {$a} plugin has been enabled.';
$string['plugin_disabled'] = 'The {$a} plugin has been disabled.';
$string['plugin_enabled'] = '{$a} enabled.';
$string['plugin_disabled'] = '{$a} disabled.';
$string['tiny:hash'] = '#';
$string['tiny:accessibility'] = 'Accessibility';
$string['tiny:action'] = 'Action';

View File

@ -8,23 +8,23 @@ Feature: An administrator can manage TinyMCE subplugins
Scenario: An administrator can control the enabled state of TinyMCE subplugins using JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Text editors > TinyMCE editor > General settings" in site administration
When I click on "Disable the Tiny equation editor plugin" "link"
Then I should see "The Tiny equation editor plugin has been disabled"
And "Disable the Tiny equation editor plugin" "link" should not exist
But "Enable the Tiny equation editor plugin" "link" should exist
When I click on "Enable the Tiny equation editor plugin" "link"
Then I should see "The Tiny equation editor plugin has been enabled"
And "Enable the Tiny equation editor plugin" "link" should not exist
But "Disable the Tiny equation editor plugin" "link" should exist
When I click on "Disable Tiny equation editor" "link"
Then I should see "Tiny equation editor disabled."
And "Disable Tiny equation editor" "link" should not exist
But "Enable Tiny equation editor" "link" should exist
When I click on "Enable Tiny equation editor" "link"
Then I should see "Tiny equation editor enabled."
And "Enable Tiny equation editor" "link" should not exist
But "Disable Tiny equation editor" "link" should exist
Scenario: An administrator can control the enabled state of TinyMCE subplugins without JavaScript
Given I am logged in as "admin"
And I navigate to "Plugins > Text editors > TinyMCE editor > General settings" in site administration
When I click on "Disable the Tiny equation editor plugin" "link"
Then I should see "The Tiny equation editor plugin has been disabled"
And "Disable the Tiny equation editor plugin" "link" should not exist
But "Enable the Tiny equation editor plugin" "link" should exist
When I click on "Enable the Tiny equation editor plugin" "link"
Then I should see "The Tiny equation editor plugin has been enabled"
And "Enable the Tiny equation editor plugin" "link" should not exist
But "Disable the Tiny equation editor plugin" "link" should exist
When I click on "Disable Tiny equation editor" "link"
Then I should see "Tiny equation editor disabled."
And "Disable Tiny equation editor" "link" should not exist
But "Enable Tiny equation editor" "link" should exist
When I click on "Enable Tiny equation editor" "link"
Then I should see "Tiny equation editor enabled."
And "Enable Tiny equation editor" "link" should not exist
But "Disable Tiny equation editor" "link" should exist

View File

@ -241,19 +241,19 @@ Feature: Assign group override
Scenario: "Not visible" groups should not be available for group overrides
Given the following "groups" exist:
| name | course | idnumber | visibility | participation |
| Visible to all/Participation | C1 | VP | 0 | 1 |
| Visible to members/Participation | C1 | MP | 1 | 1 |
| See own membership | C1 | O | 2 | 0 |
| Visible to everyone/Participation | C1 | VP | 0 | 1 |
| Only visible to members/Participation | C1 | MP | 1 | 1 |
| Only see own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to all/Non-Participation | C1 | VN | 0 | 0 |
| Visible to members/Non-Participation | C1 | MN | 1 | 0 |
| Visible to everyone/Non-Participation | C1 | VN | 0 | 0 |
| Only visible to members/Non-Participation | C1 | MN | 1 | 0 |
When I am on the "Test assignment name" Activity page logged in as teacher1
And I navigate to "Overrides" in current page administration
And I select "Group overrides" from the "jump" singleselect
And I press "Add group override"
Then I should see "Visible to all/Participation" in the "Override group" "select"
And I should see "Visible to all/Non-Participation" in the "Override group" "select"
And I should see "Visible to members" in the "Override group" "select"
And I should see "Visible to members/Non-Participation" in the "Override group" "select"
And I should see "See own membership" in the "Override group" "select"
Then I should see "Visible to everyone/Participation" in the "Override group" "select"
And I should see "Visible to everyone/Non-Participation" in the "Override group" "select"
And I should see "Only visible to members" in the "Override group" "select"
And I should see "Only visible to members/Non-Participation" in the "Override group" "select"
And I should see "Only see own membership" in the "Override group" "select"
And I should not see "Not visible" in the "Override group" "select"

View File

@ -150,9 +150,8 @@ $string['config_server_url_description'] = 'The default credentials are for a <a
</ol>';
$string['config_shared_secret'] = 'BigBlueButton shared secret';
$string['config_shared_secret_description'] = 'The security secret of your BigBlueButton server. The default secret is for a free BigBlueButton service provided by Blindside Networks.';
$string['config_checksum_algorithm'] = 'BigBlueButton Checksum Algorithm';
$string['config_checksum_algorithm_description'] = 'The checksum algorithm of your BigBlueButton server.
(SHA1 guarantees compatibility with older server versions but is less secure whereas SHA512 is FIPS 140-2 compliant.)';
$string['config_checksum_algorithm'] = 'BigBlueButton server checksum algorithm';
$string['config_checksum_algorithm_description'] = 'SHA1 is compatible with older servers. SHA256 and SHA512 are more secure. SHA512 is FIPS 140-2 compliant.';
$string['config_recording'] = 'Recording';
$string['config_recording_description'] = 'These settings are feature specific';
@ -443,7 +442,7 @@ $string['view_error_unable_join'] = 'Unable to enter the room. Please check the
$string['view_error_bigbluebutton'] = 'BigBlueButton responded with errors. {$a}';
$string['view_error_create'] = 'The BigBlueButton server responded with an error message. The room could not be created.';
$string['view_error_max_concurrent'] = 'The number of concurrent sessions allowed has been reached.';
$string['view_error_userlimit_reached'] = 'The number of users allowed in a session has been reached.';
$string['view_error_userlimit_reached'] = 'The limit of how many users allowed in a session has been reached.';
$string['view_error_url_missing_parameters'] = 'There are parameters missing in this URL';
$string['view_error_import_no_courses'] = 'There are no courses to look up for recordings.';
$string['view_error_import_no_recordings'] = 'There are no recordings in this course for importing.';
@ -525,7 +524,7 @@ $string['view_message_conference_not_started'] = 'The session has not started ye
$string['view_message_conference_wait_for_moderator'] = 'Waiting for a moderator to join.';
$string['view_message_conference_in_progress'] = 'The session is in progress.';
$string['view_message_conference_has_ended'] = 'The session has ended.';
$string['view_message_conference_user_limit_reached'] = 'The number of users allowed in a session has been reached';
$string['view_message_conference_user_limit_reached'] = 'The limit of how many users allowed in a session has been reached.';
$string['view_message_tab_close'] = 'This tab/window must be closed manually';
$string['view_message_recordings_disabled'] = 'Recordings are disabled on the server. BigBlueButton activities of type \'Recordings only\' cannot be used.';
$string['view_message_cron_disabled'] = 'The list of recordings may not be up to date. Please contact the site administrator with the following information: {$a}';

View File

@ -58,8 +58,8 @@ Feature: Test the ability to run the full meeting lifecycle (start to end)
And I log out
Then I am on the "Room recordings" Activity page logged in as vraverst
Then "Join session" "link" should not exist
And I should see "The number of users allowed in a session has been reached"
And I should see "The limit of how many users allowed in a session has been reached"
And I log out
Then I am on the "Room recordings" Activity page logged in as admin
Then "Join session" "link" should not exist
And I should see "The number of users allowed in a session has been reached"
And I should see "The limit of how many users allowed in a session has been reached"

View File

@ -373,19 +373,19 @@ Feature: Lesson group override
Scenario: "Not visible" groups should not be available for group overrides
Given the following "groups" exist:
| name | course | idnumber | visibility | participation |
| Visible to all/Participation | C1 | VP | 0 | 1 |
| Visible to members/Participation | C1 | MP | 1 | 1 |
| See own membership | C1 | O | 2 | 0 |
| Visible to everyone/Participation | C1 | VP | 0 | 1 |
| Only Only visible to members/Participation | C1 | MP | 1 | 1 |
| Only see own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to all/Non-Participation | C1 | VN | 0 | 0 |
| Visible to members/Non-Participation | C1 | MN | 1 | 0 |
| Visible to everyone/Non-Participation | C1 | VN | 0 | 0 |
| Only visible to members/Non-Participation | C1 | MN | 1 | 0 |
When I am on the "lesson1" Activity page logged in as teacher1
And I navigate to "Overrides" in current page administration
And I select "Group overrides" from the "jump" singleselect
And I follow "Add group override"
Then I should see "Visible to all/Participation" in the "Override group" "select"
And I should see "Visible to all/Non-Participation" in the "Override group" "select"
And I should see "Visible to members" in the "Override group" "select"
And I should see "Visible to members/Non-Participation" in the "Override group" "select"
And I should see "See own membership" in the "Override group" "select"
Then I should see "Visible to everyone/Participation" in the "Override group" "select"
And I should see "Visible to everyone/Non-Participation" in the "Override group" "select"
And I should see "Only visible to members" in the "Override group" "select"
And I should see "Only visible to members/Non-Participation" in the "Override group" "select"
And I should see "Only see own membership" in the "Override group" "select"
And I should not see "Not visible" in the "Override group" "select"

View File

@ -371,7 +371,7 @@ $string['eventpagebreakdeleted'] = 'Page break deleted';
$string['eventquestionmanuallygraded'] = 'Question manually graded';
$string['eventquizattemptabandoned'] = 'Quiz attempt abandoned';
$string['eventquizattemptregraded'] = 'Quiz attempt regraded';
$string['eventquizattemptreopened'] = 'Quiz attempt re-openend';
$string['eventquizattemptreopened'] = 'Quiz attempt reopened';
$string['eventquizattemptstarted'] = 'Quiz attempt started';
$string['eventquizattemptsubmitted'] = 'Quiz attempt submitted';
$string['eventquizattempttimelimitexceeded'] = 'Quiz attempt time limit exceeded';
@ -736,9 +736,8 @@ $string['questiondependencyadd'] = 'No restriction on when question {$a->thisq}
$string['questiondependencyfree'] = 'No restriction on this question';
$string['questiondependencyremove'] = 'Question {$a->thisq} cannot be attempted until the previous question {$a->previousq} has been completed • Click to change';
$string['questiondependsonprevious'] = 'This question cannot be attempted until the previous question has been completed.';
$string['questiondraftonly'] = 'The question \'{$a}\' has all versions in Draft status, so cannot be used. Visit the question bank and set the status to Ready.';
$string['questiondraftwillnotwork'] = 'This question has all versions in Draft status. The quiz will not work with this question in place. Remove this question,
or visit the question bank and set the status to Ready.';
$string['questiondraftonly'] = 'The question {$a} is in draft status. To use it in the quiz, go to the question bank and change the status to ready.';
$string['questiondraftwillnotwork'] = 'This question is in draft status. To use it in the quiz, go to the question bank and change the status to ready.';
$string['questioninuse'] = 'The question \'{$a->questionname}\' is currently being used in: <br />{$a->quiznames}<br />The question will not be deleted from these quizzes but only from the category list.';
$string['questionmissing'] = 'Question for this session is missing';
$string['questionname'] = 'Question name';
@ -795,7 +794,7 @@ $string['quizordernotrandom'] = 'Order of quiz not shuffled';
$string['quizorderrandom'] = '* Order of quiz is shuffled';
$string['quiz:preview'] = 'Preview quizzes';
$string['quiz:regrade'] = 'Regrade quiz attempts';
$string['quiz:reopenattempts'] = 'Re-open never submitted quiz attempts';
$string['quiz:reopenattempts'] = 'Reopen never submitted quiz attempts';
$string['quizreport'] = 'Quiz report';
$string['quiz:reviewmyattempts'] = 'Review your own attempts';
$string['quizsettings'] = 'Quiz settings';
@ -841,13 +840,13 @@ $string['removepagebreak'] = 'Remove page break';
$string['removeselected'] = 'Remove selected';
$string['rename'] = 'Rename';
$string['renderingserverconnectfailed'] = 'The server {$a} failed to process an RQP request. Check that the URL is correct.';
$string['reopenattempt'] = 'Re-open';
$string['reopenattemptareyousuremessage'] = 'Are you sure you wish to re-open quiz attempt {$a->attemptnumber} by {$a->attemptuser}?';
$string['reopenattemptareyousuretitle'] = 'Confirm re-open';
$string['reopenattemptwrongstate'] = 'Attempt {$a->attemptid} is in the wrong state ({$a->state}) to be re-openend.';
$string['reopenedattemptwillbeinprogress'] = 'The re-opened attempt will remain open so that it can be continued.';
$string['reopenedattemptwillbeinprogressuntil'] = 'The re-opened attempt will remain open so that it can be continued. It will be due for submission by {$a}.';
$string['reopenedattemptwillbesubmitted'] = 'The re-opened attempt will be immediately submitted for grading.';
$string['reopenattempt'] = 'Reopen';
$string['reopenattemptareyousuremessage'] = 'This will reopen attempt {$a->attemptnumber} by {$a->attemptuser}.';
$string['reopenattemptareyousuretitle'] = 'Reopen attempt?';
$string['reopenattemptwrongstate'] = 'Attempt {$a->attemptid} is in the wrong state ({$a->state}) to be reopened.';
$string['reopenedattemptwillbeinprogress'] = 'The attempt will remain open and can be continued.';
$string['reopenedattemptwillbeinprogressuntil'] = 'The attempt will remain open and can be continued until the quiz closes on {$a}.';
$string['reopenedattemptwillbesubmitted'] = 'The attempt will be immediately submitted for grading.';
$string['reorderquestions'] = 'Reorder questions';
$string['reordertool'] = 'Show the reordering tool';
$string['repaginate'] = 'Repaginate with {$a} questions per page';

View File

@ -1,8 +1,8 @@
@mod @mod_quiz @quiz @quiz_overview @javascript
Feature: Re-opening Never submitted quiz attempts
Feature: Reopening Never submitted quiz attempts
In order to cut some slack to students who forgot to submit their quiz attempt
As a teacher
I need to be able to re-open selected attempts.
I need to be able to reopen selected attempts.
Background:
Given the following "users" exist:
@ -31,19 +31,19 @@ Feature: Re-opening Never submitted quiz attempts
And user "student" has started an attempt at quiz "Test quiz"
And the attempt at "Test quiz" by "student" was never submitted
Scenario: Attempt can be re-opened
Scenario: Attempt can be reopened
Given I am on the "Test quiz" "mod_quiz > Grades report" page logged in as teacher
When I press "Re-open"
And I should see "Are you sure you wish to re-open quiz attempt 1 by Freddy Forgetful?" in the "Confirm re-open" "dialogue"
And I should see "The re-opened attempt will remain open so that it can be continued." in the "Confirm re-open" "dialogue"
And I click on "Re-open" "button" in the "Confirm re-open" "dialogue"
When I press "Reopen"
And I should see "This will reopen attempt 1 by Freddy Forgetful." in the "Reopen attempt?" "dialogue"
And I should see "The attempt will remain open and can be continued." in the "Reopen attempt?" "dialogue"
And I click on "Reopen" "button" in the "Reopen attempt?" "dialogue"
Then I should see "In progress" in the "Freddy Forgetful" "table_row"
And "Re-open" "button" should not exist
And "Reopen" "button" should not exist
Scenario: Re-opening an attempt can be cancelled and then nothing happens
Scenario: Reopening an attempt can be cancelled and then nothing happens
Given I am on the "Test quiz" "mod_quiz > Grades report" page logged in as teacher
And I start watching to see if a new page loads
When I press "Re-open"
And I click on "Cancel" "button" in the "Confirm re-open" "dialogue"
When I press "Reopen"
And I click on "Cancel" "button" in the "Reopen attempt?" "dialogue"
Then a new page should not have loaded since I started watching
And I should see "Never submitted" in the "Freddy Forgetful" "table_row"

View File

@ -121,19 +121,19 @@ Feature: Quiz group override
Scenario: "Not visible" groups should not be available for group overrides
Given the following "groups" exist:
| name | course | idnumber | visibility | participation |
| Visible to all/Participation | C1 | VP | 0 | 1 |
| Visible to members/Participation | C1 | MP | 1 | 1 |
| See own membership | C1 | O | 2 | 0 |
| Visible to everyone/Participation | C1 | VP | 0 | 1 |
| Only visible to members/Participation | C1 | MP | 1 | 1 |
| Only see own membership | C1 | O | 2 | 0 |
| Not visible | C1 | N | 3 | 0 |
| Visible to all/Non-Participation | C1 | VN | 0 | 0 |
| Visible to members/Non-Participation | C1 | MN | 1 | 0 |
| Visible to everyone/Non-Participation | C1 | VN | 0 | 0 |
| Only visible to members/Non-Participation | C1 | MN | 1 | 0 |
When I am on the "quiz1" Activity page logged in as teacher1
And I navigate to "Overrides" in current page administration
And I select "Group overrides" from the "jump" singleselect
And I press "Add group override"
Then I should see "Visible to all/Participation" in the "Override group" "select"
And I should see "Visible to all/Non-Participation" in the "Override group" "select"
And I should see "Visible to members" in the "Override group" "select"
And I should see "Visible to members/Non-Participation" in the "Override group" "select"
And I should see "See own membership" in the "Override group" "select"
Then I should see "Visible to everyone/Participation" in the "Override group" "select"
And I should see "Visible to everyone/Non-Participation" in the "Override group" "select"
And I should see "Only visible to members" in the "Override group" "select"
And I should see "Only visible to members/Non-Participation" in the "Override group" "select"
And I should see "Only see own membership" in the "Override group" "select"
And I should not see "Not visible" in the "Override group" "select"

View File

@ -120,7 +120,7 @@ Feature: Quiz question versioning
And I am on the "Quiz 1" "mod_quiz > Question bank" page logged in as teacher
And I set the field "question_status_dropdown" in the "First question" "table_row" to "Draft"
When I am on the "Quiz 1" "mod_quiz > Edit" page
Then I should see "This question has all versions in Draft status. The quiz will not work with this question in place."
Then I should see "This question is in draft status. To use it in the quiz, go to the question bank and change the status to ready."
@javascript
Scenario: Previewing a question set to use always latest version will set the preview to always latest version

View File

@ -64,7 +64,7 @@ class reopen_attempt_test extends externallib_advanced_testcase {
public function test_reopen_attempt_service_checks_attempt_state() {
[$attemptid] = $this->create_attempt_at_quiz_with_one_shortanswer_question(quiz_attempt::IN_PROGRESS);
$this->expectExceptionMessage("Attempt $attemptid is in the wrong state (In progress) to be re-openend.");
$this->expectExceptionMessage("Attempt $attemptid is in the wrong state (In progress) to be reopened.");
reopen_attempt::execute($attemptid);
}
@ -75,8 +75,8 @@ class reopen_attempt_test extends externallib_advanced_testcase {
$message = get_reopen_attempt_confirmation::execute($attemptid);
$this->assertEquals('<p>Are you sure you wish to re-open quiz attempt 1 by ' . fullname($this->student) .
'?</p><p>The re-opened attempt will remain open so that it can be continued.</p>',
$this->assertEquals('<p>This will reopen attempt 1 by ' . fullname($this->student) .
'.</p><p>The attempt will remain open and can be continued.</p>',
$message);
}
@ -88,8 +88,8 @@ class reopen_attempt_test extends externallib_advanced_testcase {
$message = get_reopen_attempt_confirmation::execute($attemptid);
$this->assertEquals('<p>Are you sure you wish to re-open quiz attempt 1 by ' . fullname($this->student) .
'?</p><p>The re-opened attempt will remain open so that it can be continued. It will be due for submission by ' .
$this->assertEquals('<p>This will reopen attempt 1 by ' . fullname($this->student) .
'.</p><p>The attempt will remain open and can be continued until the quiz closes on ' .
userdate($timeclose) . '.</p>',
$message);
}
@ -102,8 +102,8 @@ class reopen_attempt_test extends externallib_advanced_testcase {
$message = get_reopen_attempt_confirmation::execute($attemptid);
$this->assertEquals('<p>Are you sure you wish to re-open quiz attempt 1 by ' . fullname($this->student) .
'?</p><p>The re-opened attempt will be immediately submitted for grading.</p>',
$this->assertEquals('<p>This will reopen attempt 1 by ' . fullname($this->student) .
'.</p><p>The attempt will be immediately submitted for grading.</p>',
$message);
}
@ -120,7 +120,7 @@ class reopen_attempt_test extends externallib_advanced_testcase {
public function test_get_reopen_attempt_confirmation_service_checks_attempt_state() {
[$attemptid] = $this->create_attempt_at_quiz_with_one_shortanswer_question(quiz_attempt::IN_PROGRESS);
$this->expectExceptionMessage("Attempt $attemptid is in the wrong state (In progress) to be re-openend.");
$this->expectExceptionMessage("Attempt $attemptid is in the wrong state (In progress) to be reopened.");
get_reopen_attempt_confirmation::execute($attemptid);
}

View File

@ -24,8 +24,7 @@
*/
$string['alwayslatest'] = 'Always latest';
$string['newerversion'] = 'This preview is using version {$a->currentversion} of this question. '
. 'The latest version is {$a->latestversion}. {$a->restartbutton}?';
$string['newerversion'] = 'This preview is using an older version of the question. {$a->restartbutton}';
$string['pluginname'] = 'Preview question';
$string['privacy:metadata'] = 'The Preview question question bank plugin does not store any personal data.';
// Tag related errors.
@ -35,7 +34,7 @@ $string['tagsnotfound'] = 'Tags not found';
// Form string(s).
$string['previewoptions'] = 'Preview options';
$string['questionversion'] = 'Question version';
$string['restartnow'] = 'Restart now';
$string['restartnow'] = 'Use latest version';
// Preview title.
$string['versiontitle'] = 'Version {$a}';
$string['versiontitlelatest'] = 'Version {$a} (latest)';

View File

@ -136,8 +136,8 @@ Feature: A teacher can preview questions in the question bank
And I should see "Version 1 (latest)"
And I set the field "Answer:" to "3.14"
When I press "Submit and finish"
And I should see "This preview is using version 1 of this question. The latest version is 2."
And I press "Restart now"
And I should see "This preview is using an older version of the question."
And I press "Use latest version"
Then I should not see "Version 1"
And I should see "Version 2 (latest)"

View File

@ -19,23 +19,23 @@ Feature: Use the qbank plugin manager page for viewquestiontext
@javascript
Scenario: Display of plain question text can be turned on and off
When I am on the "Test quiz" "mod_quiz > question bank" page logged in as admin
And I set the field "Show question text in the question list" to "Text only"
And I set the field "Show question text in the question list?" to "Yes, text only"
Then I should see "Answer the first question"
And ".totestforhtml" "css_element" should not exist in the "Answer the first question" "table_row"
And I set the field "Show question text in the question list" to "No"
And I set the field "Show question text in the question list?" to "No"
And I should not see "Answer the first question"
@javascript
Scenario: Display of full question text can be turned on and off
When I am on the "Test quiz" "mod_quiz > question bank" page logged in as admin
And I set the field "Show question text in the question list" to "Full display"
And I set the field "Show question text in the question list?" to "Yes, with images, media, etc."
Then I should see "Answer the first question"
And ".totestforhtml" "css_element" should exist in the "Answer the first question" "table_row"
And I set the field "Show question text in the question list" to "No"
And I set the field "Show question text in the question list?" to "No"
And I should not see "Answer the first question"
Scenario: Option does not show if the plugin is disabled
Given the following config values are set as admin:
| disabled | 1 | qbank_viewquestiontext |
When I am on the "Test quiz" "mod_quiz > question bank" page logged in as admin
Then I should not see "Show question text in the question list"
Then I should not see "Show question text in the question list?"

View File

@ -61,7 +61,7 @@ Feature: The questions in the question bank can be sorted in various ways
@javascript
Scenario: The question text can be shown in the list of questions
When I set the field "Show question text in the question list" to "1"
When I set the field "Show question text in the question list?" to "1"
Then I should see "Question 1 text"
And I should see "Question 2 text"
And I should see "Question 3 text"

View File

@ -53,8 +53,8 @@ For information the three shapes use coordinates in this way:
Selecting a Marker text will add that text to the shape in the preview.';
$string['formerror_dragrequired'] = 'You must add at least one marker to this question.';
$string['formerror_droprequired'] = 'You must define at least one drop zone for this question.';
$string['followingarewrong'] = 'The following markers have been placed in the wrong area: {$a}.';
$string['followingarewrongandhighlighted'] = 'The following markers were incorrectly placed: {$a}. Highlighted marker(s) are now shown with the correct placement(s).<br /> Click on the marker to highlight the allowed area.';
$string['followingarewrong'] = 'Markers placed in the wrong area: {$a}.';
$string['followingarewrongandhighlighted'] = 'Incorrectly placed markers: {$a}. Highlighted markers are now shown with the correct placements. Click on the marker to highlight the allowed area.';
$string['formerror_nobgimage'] = 'You need to select an image to use as the background for the drag and drop area.';
$string['formerror_noitemselected'] = 'You have specified a drop zone but not chosen a marker that must be dragged to the zone.';
$string['formerror_nosemicolons'] = 'There are no semicolons in your coordinates string. Your coordinates for a {$a->shape} should be expressed as - {$a->coordsstring}.';

View File

@ -769,7 +769,7 @@ class walkthrough_test extends \qbehaviour_walkthrough_test_base {
$this->get_contains_draggable_marker_home_expectation(3, false),
$this->get_does_not_contain_submit_button_expectation(),
new question_pattern_expectation('~' . preg_quote(
'<div class="wrongparts">The following markers have been placed in the wrong area: ' .
'<div class="wrongparts">Markers placed in the wrong area: ' .
'<span class="wrongpart">quick</span>, <span class="wrongpart">fox</span>, ' .
'<span class="wrongpart">lazy</span>',
'~') . '~'),