Compare commits
320 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 268abfacc5 | |||
| cd1c8d2132 | |||
| 446e0299b9 | |||
| 4ca17b63a1 | |||
| 973641fe13 | |||
| ac5dad467d | |||
| 30c8ed5c16 | |||
| ee5c60c53a | |||
| 920d3a95a1 | |||
| 04c3fef12f | |||
| e1e1aad183 | |||
| 2be707cb5e | |||
| 5684c89b93 | |||
| 3d562d19b9 | |||
| 2a1400b1b8 | |||
| c14701a2ce | |||
| 658fc5f0fa | |||
| c879ff69f4 | |||
| 442a3651ec | |||
| 5ba78f6231 | |||
| 0a0dc5d035 | |||
| d4b91dab8a | |||
| 5d84a61419 | |||
| 536c4e920a | |||
| 929727e3ef | |||
| c9f85a1014 | |||
| 0677018ec5 | |||
| c56d14be37 | |||
| 71dadd6d26 | |||
| e2b58a90fd | |||
| b4baee42e2 | |||
| 992365f8d5 | |||
| 0450f5e081 | |||
| b887c81907 | |||
| 7150323ecd | |||
| 9f59bc5b2c | |||
| bff0a28894 | |||
| 8af3e3abb2 | |||
| 1e03d74cfa | |||
| ca7b16fa70 | |||
| 505ce88467 | |||
| 9dfee70f6b | |||
| b1c8a860cb | |||
| 9e550d5804 | |||
| 367c85d78c | |||
| d309f3e218 | |||
| a1643e66b0 | |||
| 89fc74508b | |||
| 811d9ff941 | |||
| a88f8b2fd5 | |||
| c07712db17 | |||
| 29a004946b | |||
| 1abca11e0a | |||
| 34321d491b | |||
| 60941d4cb0 | |||
| 8728dbeecb | |||
| a73d64585a | |||
| 0fd2260069 | |||
| c0fe085c24 | |||
| cb5167df12 | |||
| 5c602bf5bb | |||
| 53b540c82a | |||
| 07eb3a0db7 | |||
| 27bdd818f6 | |||
| 923b230c8e | |||
| 7f43e2fe49 | |||
| 759f61fe1c | |||
| eface10d30 | |||
| 9d00c6e9e5 | |||
| d9e7af1d6a | |||
| 50c338b84b | |||
| 7d7e5a4cf0 | |||
| 4f54bdc733 | |||
| 61e1d3d96c | |||
| f3ba5f4249 | |||
| 03b5351f88 | |||
| 134b6485e2 | |||
| cd6041b98f | |||
| e0c901dc49 | |||
| d7256f3a49 | |||
| 98c3f736bb | |||
| 41abbbbde5 | |||
| 1ef6a5e30a | |||
| 63c492ece0 | |||
| 6b6847bc97 | |||
| ece791dbd4 | |||
| 405b90bcd2 | |||
| 2b98f0ea26 | |||
| 073fcb5aa1 | |||
| 60e75de317 | |||
| 70dfd48f53 | |||
| 393890e168 | |||
| ccf323d571 | |||
| 50d083f07a | |||
| 75a22eb9fb | |||
| 0c0f01aa4c | |||
| 4741c3162e | |||
| 40d5651302 | |||
| 33892edf18 | |||
| 461a5c667d | |||
| fcf2064a62 | |||
| b0e9bf8e90 | |||
| 44219e686f | |||
| 15d27733dc | |||
| 897444d761 | |||
| f0a2dbf188 | |||
| 13708875d3 | |||
| 96fd37749e | |||
| 7ae90fe03c | |||
| 39257eb39c | |||
| 2fb0f13a87 | |||
| 2a1cfd371f | |||
| c3d079c8a4 | |||
| 7b09be79d6 | |||
| 76943644d4 | |||
| bdabf42d9a | |||
| 5a2283cdc0 | |||
| df88d9a72e | |||
| 52ccda9607 | |||
| a7bb1dda6e | |||
| a8c2cb02ca | |||
| 9698f2dcce | |||
| 5d4dafcfa0 | |||
| 2059d6edb5 | |||
| 2664105c87 | |||
| 912a183033 | |||
| ad1bfe6a9c | |||
| 5620177efd | |||
| ea4176c24f | |||
| 8e70465aa8 | |||
| 18d157fe97 | |||
| 0be8dbd9b2 | |||
| af8cab9b69 | |||
| fc3d70d798 | |||
| beb3441b68 | |||
| 692b53480d | |||
| 0eecf87687 | |||
| c4d692285f | |||
| c7e4417533 | |||
| 3f3e7daae1 | |||
| 98c2893cdd | |||
| c827acae2d | |||
| b9103241e6 | |||
| eb2a003dd3 | |||
| 17fa366ab3 | |||
| d45047f628 | |||
| dcd3dea137 | |||
| bb51d20bac | |||
| e68d274f45 | |||
| dc30770656 | |||
| 2d5032db89 | |||
| 261560921d | |||
| 388a8dbc4f | |||
| 0a33c8ca94 | |||
| e716da5d13 | |||
| d636043aff | |||
| f418d89957 | |||
| 528278f78f | |||
| abb9ea1a3f | |||
| a7ea4fd62f | |||
| 412bde6fad | |||
| f6cbdf788a | |||
| 65cbefc403 | |||
| 60152a2828 | |||
| 6f8adf29fd | |||
| 832ffeb204 | |||
| d58854d3bf | |||
| c89ba86342 | |||
| e53d7e7c04 | |||
| a1057084e1 | |||
| d03602c86b | |||
| 8de0b1ab7d | |||
| 81967b54b6 | |||
| 35f11c55fb | |||
| 6967b71a34 | |||
| 7fdd86247b | |||
| 07d4b49760 | |||
| 378733a4c3 | |||
| 8ae171ed1c | |||
| ec7b75087c | |||
| 2140cca1db | |||
| f65ce33f99 | |||
| a71b983db8 | |||
| 0043daf4ca | |||
| 4838a19641 | |||
| ca112c42fd | |||
| 790bf3ace0 | |||
| 6885517d78 | |||
| d83d1e34e5 | |||
| 07a069f1c0 | |||
| fcd3bbfee0 | |||
| da322ad078 | |||
| 53f95c99cb | |||
| e5336562db | |||
| bae0f2375e | |||
| 4e968dc8a7 | |||
| bbf727f175 | |||
| 80b852d0c9 | |||
| 010a00db60 | |||
| 32cf4bcb93 | |||
| 7307b2746d | |||
| 724703d3e1 | |||
| 57678be26e | |||
| 15ab98e4e2 | |||
| 372def96c4 | |||
| 8e0549933e | |||
| ab4d78ea82 | |||
| e51176e598 | |||
| 5d15185247 | |||
| 79e4a72f09 | |||
| 2c216a6c39 | |||
| 128beb3d39 | |||
| 7adbac5a8e | |||
| ccf89705fe | |||
| f092c0881d | |||
| b5a3118ddb | |||
| 7e4d43e1a2 | |||
| 016e0abfbc | |||
| 58a2f0ac40 | |||
| 2239883b56 | |||
| a321eb06b7 | |||
| fa1e76d563 | |||
| 9f659e1af5 | |||
| 121b67411f | |||
| 8ffe9aef1f | |||
| 8c2d47d9d8 | |||
| 5e84acc2f3 | |||
| 283b1d32bd | |||
| 677e6345c2 | |||
| b770c41277 | |||
| e4b5a062d8 | |||
| 23007b4134 | |||
| 0b3c3bb8eb | |||
| 30dcc059be | |||
| 837cc5ba49 | |||
| dc7e2dcf96 | |||
| 0301e11bae | |||
| 715c3f5fef | |||
| e314b35471 | |||
| 1f69cd819f | |||
| a9ad3002e1 | |||
| 27d9859972 | |||
| 415023cefc | |||
| 7ee8effc55 | |||
| 525370afe1 | |||
| 1b2f9dc60c | |||
| e6858c084a | |||
| bc823ac6bf | |||
| c18aac4518 | |||
| f464529a7a | |||
| 8538c6ad0d | |||
| 67ee10307f | |||
| 8ab776ef69 | |||
| 16825c4e95 | |||
| 88474db22f | |||
| bbdef8886f | |||
| cc47c7174b | |||
| b7c7f0d10e | |||
| 3ff8d30246 | |||
| 9c8ef1397f | |||
| 814b5d6772 | |||
| 197adc93d5 | |||
| 3fb5ddc3d6 | |||
| b0ab1fdcff | |||
| 9914bd8b60 | |||
| 33b60a4720 | |||
| 8ec64e757e | |||
| d26eae4af4 | |||
| 8eb15a38ef | |||
| 1d0140757a | |||
| 55907a738a | |||
| f058c74eba | |||
| 1e72daa899 | |||
| 2f2383af51 | |||
| a6c1a1c753 | |||
| 729738d14c | |||
| 4ec4b2b65c | |||
| fd83879728 | |||
| 2cf9e3f0ca | |||
| d07c339272 | |||
| 68c1074625 | |||
| a9e9f96382 | |||
| c5fe77ffe4 | |||
| a8abd53a32 | |||
| 8668796317 | |||
| d066ed8db0 | |||
| c0dd0e3543 | |||
| ac29314ed1 | |||
| 1c693f7226 | |||
| be8b9189c4 | |||
| 4ae653024d | |||
| 440b4c54ca | |||
| 45b9207d7e | |||
| 11ee4f71a4 | |||
| e594a6a8e9 | |||
| 043ae97239 | |||
| 1eaba735f5 | |||
| 456b8a602c | |||
| 3123c2cff5 | |||
| 1a9068ae01 | |||
| d72fd8e28a | |||
| 1ac585fefd | |||
| 3032b16b3d | |||
| f824aceb50 | |||
| 68bf1ff4b3 | |||
| da1296dd07 | |||
| e90e0ea570 | |||
| 6b587d2be2 | |||
| f9ee3dbcc1 | |||
| b9cc7e01a1 | |||
| d4f96fa397 | |||
| 45fb8b5983 | |||
| f8a5c98eb6 | |||
| 1361cbb471 | |||
| 871988b0b4 | |||
| 2e1dff9f98 | |||
| 0a4f3eb27d | |||
| 9be3072d33 | |||
| bc219382b7 | |||
| 4d08decb77 |
@@ -1696,6 +1696,11 @@
|
||||
<ON_CHECK message="unsupporteddbtablerowformat" />
|
||||
</FEEDBACK>
|
||||
</CUSTOM_CHECK>
|
||||
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="unoconvwarning" />
|
||||
</FEEDBACK>
|
||||
</CUSTOM_CHECK>
|
||||
</CUSTOM_CHECKS>
|
||||
</MOODLE>
|
||||
</COMPATIBILITY_MATRIX>
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
@core @core_admin
|
||||
Feature: Enable multiple accounts to have the same email address
|
||||
In order to have multiple accounts registerd on the system with the same email address
|
||||
As an admin
|
||||
I need to enable multiple accounts to be registered with the same email address and verify it is applied
|
||||
|
||||
Background:
|
||||
Given I log in as "admin"
|
||||
|
||||
Scenario: Enable registration of multiple accounts with the same email address
|
||||
Given the following config values are set as admin:
|
||||
| allowaccountssameemail | 1 |
|
||||
When I navigate to "Add a new user" node in "Site administration>Users>Accounts"
|
||||
And I set the following fields to these values:
|
||||
| Username | testmultiemailuser1 |
|
||||
| Choose an authentication method | Manual accounts |
|
||||
| New password | test@User1 |
|
||||
| First name | Test |
|
||||
| Surname | Multi1 |
|
||||
| Email address | testmultiemailuser@example.com |
|
||||
And I press "Create user"
|
||||
And I should see "Test Multi1"
|
||||
And I press "Add a new user"
|
||||
And I set the following fields to these values:
|
||||
| Username | testmultiemailuser2 |
|
||||
| Choose an authentication method | Manual accounts |
|
||||
| New password | test@User2 |
|
||||
| First name | Test |
|
||||
| Surname | Multi2 |
|
||||
| Email address | testmultiemailuser@example.com |
|
||||
And I press "Create user"
|
||||
Then I should see "Test Multi2"
|
||||
And I should not see "This email address is already registered"
|
||||
|
||||
Scenario: Disable registration of multiple accounts with the same email address
|
||||
Given the following config values are set as admin:
|
||||
| allowaccountssameemail | 0 |
|
||||
When I navigate to "Add a new user" node in "Site administration>Users>Accounts"
|
||||
And I set the following fields to these values:
|
||||
| Username | testmultiemailuser1 |
|
||||
| Choose an authentication method | Manual accounts |
|
||||
| New password | test@User1 |
|
||||
| First name | Test |
|
||||
| Surname | Multi1 |
|
||||
| Email address | testmultiemailuser@example.com |
|
||||
And I press "Create user"
|
||||
And I should see "Test Multi1"
|
||||
And I press "Add a new user"
|
||||
And I set the following fields to these values:
|
||||
| Username | testmultiemailuser2 |
|
||||
| Choose an authentication method | Manual accounts |
|
||||
| New password | test@User2 |
|
||||
| First name | Test |
|
||||
| Surname | Multi2 |
|
||||
| Email address | testmultiemailuser@example.com |
|
||||
And I press "Create user"
|
||||
Then I should see "This email address is already registered"
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_assignmentupgrade';
|
||||
$plugin->dependencies = array('mod_assign' => 2015111000);
|
||||
$plugin->dependencies = array('mod_assign' => 2016051900);
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_availabilityconditions';
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -24,14 +24,14 @@
|
||||
|
||||
$string['acohortroleassignmentssaved'] = '{$a} cohort role assignments were saved.';
|
||||
$string['assign'] = 'Assign';
|
||||
$string['assignroletocohort'] = 'Assign role to users in the context of all members of these cohorts';
|
||||
$string['backgroundsync'] = 'Note: Roles assigned on this page will not take affect immediately, the changes to role assignments will be made by a background task.';
|
||||
$string['assignroletocohort'] = 'Assign user-context roles to all cohort members';
|
||||
$string['backgroundsync'] = 'Note: New cohort role assignments will not take effect immediately. Role assignment changes will be made by a scheduled task.';
|
||||
$string['cohortroleassignmentremoved'] = 'The cohort role assignment was removed.';
|
||||
$string['cohortroleassignmentnotremoved'] = 'The cohort role assignment was not removed.';
|
||||
$string['cohortroles'] = 'Cohort roles';
|
||||
$string['existingcohortroles'] = 'Existing cohort role assignments';
|
||||
$string['managecohortroles'] = 'Assign user roles for entire cohort';
|
||||
$string['noassignableroles'] = 'No roles can be assigned at a user context level. <a href="../../roles/manage.php">Manage roles</a>';
|
||||
$string['managecohortroles'] = 'Assign user roles to cohort';
|
||||
$string['noassignableroles'] = 'There are currently no roles that can be assigned in the user context. <a href="../../roles/manage.php">Manage roles</a>';
|
||||
$string['nocohortroleassignmentssaved'] = 'No cohort role assignments were saved.';
|
||||
$string['onecohortroleassignmentsaved'] = 'One cohort role assignment was saved.';
|
||||
$string['pluginname'] = 'Cohort roles management';
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
|
||||
$plugin->version = 2015111018; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2014110400; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
$plugin->dependencies = array(
|
||||
|
||||
@@ -25,6 +25,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_filetypes';
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_generator';
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_health'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
$plugin->maturity = MATURITY_ALPHA; // this version's maturity level
|
||||
|
||||
@@ -25,6 +25,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->component = 'tool_installaddon';
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
|
||||
@@ -25,6 +25,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2016041200; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
define(["core/str","core/yui"],function(a,b){var c=function(a){var b=a.drag.get("node"),c=a.drop.get("node");this.callback(b.getDOMNode(),c.getDOMNode())};return{dragdrop:function(d,e,f,g,h,i,j,k){a.get_strings([{key:"emptydragdropregion",component:"moodle"},{key:"movecontent",component:"moodle"},{key:"tocontent",component:"moodle"}]).done(function(){b.use("moodle-tool_lp-dragdrop-reorder",function(){var a={callback:k};M.tool_lp.dragdrop_reorder({group:d,dragHandleText:e,sameNodeText:f,parentNodeText:g,sameNodeClass:h,parentNodeClass:i,dragHandleInsertClass:j,callback:b.bind(c,a)})})})}}});
|
||||
define(["core/str","core/yui"],function(a,b){var c=null,d=function(a){var b=a.drag.get("node"),c=a.drop.get("node");this.callback(b.getDOMNode(),c.getDOMNode())};return{dragdrop:function(e,f,g,h,i,j,k,l){a.get_strings([{key:"emptydragdropregion",component:"moodle"},{key:"movecontent",component:"moodle"},{key:"tocontent",component:"moodle"}]).done(function(){b.use("moodle-tool_lp-dragdrop-reorder",function(){var a={callback:l};c&&c.destroy(),c=M.tool_lp.dragdrop_reorder({group:e,dragHandleText:f,sameNodeText:g,parentNodeText:h,sameNodeClass:i,parentNodeClass:j,dragHandleInsertClass:k,callback:b.bind(d,a)})})})}}});
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
define(["jquery"],function(a){var b=function(b,c,d,e,f,g){this._baseUrl=d,this._userId=e+"",this._competencyId=f+"",this._courseId=g,this._ignoreFirstUser=!0,this._ignoreFirstCompetency=!0,a(b).on("change",this._userChanged.bind(this)),a(c).on("change",this._competencyChanged.bind(this))};return b.prototype._userChanged=function(b){if(this._ignoreFirstUser)return void(this._ignoreFirstUser=!1);var c=a(b.target).val(),d="?userid="+c+"&courseid="+this._courseId+"&competencyid="+this._competencyId;document.location=this._baseUrl+d},b.prototype._competencyChanged=function(b){if(this._ignoreFirstCompetency)return void(this._ignoreFirstCompetency=!1);var c=a(b.target).val(),d="?userid="+this._userId+"&courseid="+this._courseId+"&competencyid="+c;document.location=this._baseUrl+d},b.prototype._competencyId=null,b.prototype._userId=null,b.prototype._courseId=null,b.prototype._baseUrl=null,b.prototype._ignoreFirstUser=null,b.prototype._ignoreFirstCompetency=null,b});
|
||||
define(["jquery"],function(a){var b=function(b,c,d,e,f,g){this._baseUrl=d,this._userId=e+"",this._competencyId=f+"",this._courseId=g,a(b).on("change",this._userChanged.bind(this)),a(c).on("change",this._competencyChanged.bind(this))};return b.prototype._userChanged=function(b){var c=a(b.target).val(),d="?userid="+c+"&courseid="+this._courseId+"&competencyid="+this._competencyId;document.location=this._baseUrl+d},b.prototype._competencyChanged=function(b){var c=a(b.target).val(),d="?userid="+this._userId+"&courseid="+this._courseId+"&competencyid="+c;document.location=this._baseUrl+d},b.prototype._competencyId=null,b.prototype._userId=null,b.prototype._courseId=null,b.prototype._baseUrl=null,b.prototype._ignoreFirstUser=null,b.prototype._ignoreFirstCompetency=null,b});
|
||||
@@ -22,9 +22,15 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
define(['core/str', 'core/yui'], function(str, Y) {
|
||||
|
||||
// Private variables and functions.
|
||||
|
||||
/**
|
||||
* Store the current instance of the core drag drop.
|
||||
*
|
||||
* @property dragDropInstance M.tool_lp.dragdrop_reorder
|
||||
*/
|
||||
var dragDropInstance = null;
|
||||
|
||||
/**
|
||||
* Translate the drophit event from YUI
|
||||
* into simple drag and drop nodes.
|
||||
@@ -70,7 +76,10 @@ define(['core/str', 'core/yui'], function(str, Y) {
|
||||
var context = {
|
||||
callback: callback
|
||||
};
|
||||
M.tool_lp.dragdrop_reorder({
|
||||
if (dragDropInstance) {
|
||||
dragDropInstance.destroy();
|
||||
}
|
||||
dragDropInstance = M.tool_lp.dragdrop_reorder({
|
||||
group: group,
|
||||
dragHandleText: dragHandleText,
|
||||
sameNodeText: sameNodeText,
|
||||
|
||||
@@ -69,6 +69,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
up: 38,
|
||||
right: 39,
|
||||
down: 40,
|
||||
eight: 56,
|
||||
asterisk: 106
|
||||
};
|
||||
|
||||
@@ -274,6 +275,8 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
Tree.prototype.handleKeyDown = function(item, e) {
|
||||
var currentIndex = this.visibleItems.index(item);
|
||||
var newItem = null;
|
||||
var hasKeyModifier = e.shiftKey || e.ctrlKey || e.metaKey || e.altKey;
|
||||
var thisObj = this;
|
||||
|
||||
switch (e.keyCode) {
|
||||
case this.keys.home: {
|
||||
@@ -282,7 +285,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
newItem.focus();
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(newItem);
|
||||
} else if (!e.ctrlKey) {
|
||||
} else if (!hasKeyModifier) {
|
||||
this.selectItem(newItem);
|
||||
}
|
||||
|
||||
@@ -295,7 +298,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
newItem.focus();
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(newItem);
|
||||
} else if (!e.ctrlKey) {
|
||||
} else if (!hasKeyModifier) {
|
||||
this.selectItem(newItem);
|
||||
}
|
||||
|
||||
@@ -307,7 +310,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(item);
|
||||
} else if (e.ctrlKey) {
|
||||
} else if (e.metaKey || e.ctrlKey) {
|
||||
this.toggleItem(item);
|
||||
} else {
|
||||
this.selectItem(item);
|
||||
@@ -327,7 +330,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
itemParent.focus();
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(itemParent);
|
||||
} else if (!e.ctrlKey) {
|
||||
} else if (!hasKeyModifier) {
|
||||
this.selectItem(itemParent);
|
||||
}
|
||||
}
|
||||
@@ -346,7 +349,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
newItem.focus();
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(newItem);
|
||||
} else if (!e.ctrlKey) {
|
||||
} else if (!hasKeyModifier) {
|
||||
this.selectItem(newItem);
|
||||
}
|
||||
}
|
||||
@@ -362,7 +365,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
prev.focus();
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(prev);
|
||||
} else if (!e.ctrlKey) {
|
||||
} else if (!hasKeyModifier) {
|
||||
this.selectItem(prev);
|
||||
}
|
||||
}
|
||||
@@ -377,7 +380,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
next.focus();
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(next);
|
||||
} else if (!e.ctrlKey) {
|
||||
} else if (!hasKeyModifier) {
|
||||
this.selectItem(next);
|
||||
}
|
||||
}
|
||||
@@ -386,9 +389,6 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
}
|
||||
case this.keys.asterisk: {
|
||||
// Expand all groups.
|
||||
|
||||
var thisObj = this;
|
||||
|
||||
this.parents.each(function() {
|
||||
thisObj.expandGroup($(this));
|
||||
});
|
||||
@@ -396,6 +396,18 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
e.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
case this.keys.eight: {
|
||||
if (e.shiftKey) {
|
||||
// Expand all groups.
|
||||
this.parents.each(function() {
|
||||
thisObj.expandGroup($(this));
|
||||
});
|
||||
|
||||
e.stopPropagation();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -409,7 +421,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
* @param {Event} e The event.
|
||||
*/
|
||||
Tree.prototype.handleKeyPress = function(item, e) {
|
||||
if (e.altKey || e.ctrlKey || e.shiftKey) {
|
||||
if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
|
||||
// Do nothing.
|
||||
return true;
|
||||
}
|
||||
@@ -498,7 +510,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
*/
|
||||
Tree.prototype.handleDblClick = function(item, e) {
|
||||
|
||||
if (e.altKey || e.ctrlKey || e.shiftKey) {
|
||||
if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
|
||||
// Do nothing.
|
||||
return true;
|
||||
}
|
||||
@@ -540,7 +552,7 @@ define(['jquery', 'core/url', 'core/log'], function($, url, log) {
|
||||
|
||||
if (e.shiftKey) {
|
||||
this.multiSelectItem(item);
|
||||
} else if (e.ctrlKey) {
|
||||
} else if (e.metaKey || e.ctrlKey) {
|
||||
this.toggleItem(item);
|
||||
} else {
|
||||
this.selectItem(item);
|
||||
|
||||
@@ -38,8 +38,6 @@ define(['jquery'], function($) {
|
||||
this._userId = userId + '';
|
||||
this._competencyId = competencyId + '';
|
||||
this._courseId = courseId;
|
||||
this._ignoreFirstUser = true;
|
||||
this._ignoreFirstCompetency = true;
|
||||
|
||||
$(userSelector).on('change', this._userChanged.bind(this));
|
||||
$(competencySelector).on('change', this._competencyChanged.bind(this));
|
||||
@@ -52,11 +50,6 @@ define(['jquery'], function($) {
|
||||
* @param {Event} e
|
||||
*/
|
||||
UserCompetencyCourseNavigation.prototype._userChanged = function(e) {
|
||||
if (this._ignoreFirstUser) {
|
||||
this._ignoreFirstUser = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var newUserId = $(e.target).val();
|
||||
var queryStr = '?userid=' + newUserId + '&courseid=' + this._courseId + '&competencyid=' + this._competencyId;
|
||||
document.location = this._baseUrl + queryStr;
|
||||
@@ -69,10 +62,6 @@ define(['jquery'], function($) {
|
||||
* @param {Event} e
|
||||
*/
|
||||
UserCompetencyCourseNavigation.prototype._competencyChanged = function(e) {
|
||||
if (this._ignoreFirstCompetency) {
|
||||
this._ignoreFirstCompetency = false;
|
||||
return;
|
||||
}
|
||||
var newCompetencyId = $(e.target).val();
|
||||
var queryStr = '?userid=' + this._userId + '&courseid=' + this._courseId + '&competencyid=' + newCompetencyId;
|
||||
document.location = this._baseUrl + queryStr;
|
||||
|
||||
@@ -58,7 +58,7 @@ class course_summary_exporter extends \core_competency\external\exporter {
|
||||
'type' => PARAM_TEXT,
|
||||
),
|
||||
'idnumber' => array(
|
||||
'type' => PARAM_TEXT,
|
||||
'type' => PARAM_RAW,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
namespace tool_lp\external;
|
||||
|
||||
use core_competency\api;
|
||||
use core_competency\user_competency;
|
||||
use context_course;
|
||||
use renderer_base;
|
||||
use stdClass;
|
||||
@@ -72,6 +73,8 @@ class user_competency_summary_in_course_exporter extends \core_competency\extern
|
||||
$related['usercompetency'] = null;
|
||||
$exporter = new user_competency_summary_exporter(null, $related);
|
||||
$result->usercompetencysummary = $exporter->export($output);
|
||||
$result->usercompetencysummary->cangrade = user_competency::can_grade_user_in_course($this->related['user']->id,
|
||||
$this->related['course']->id);
|
||||
|
||||
$context = context_course::instance($this->related['course']->id);
|
||||
$exporter = new course_summary_exporter($this->related['course'], array('context' => $context));
|
||||
|
||||
@@ -102,7 +102,7 @@ class competency extends persistent {
|
||||
$mform->setType('description', PARAM_RAW);
|
||||
// ID number.
|
||||
$mform->addElement('text', 'idnumber', get_string('idnumber', 'tool_lp'), 'maxlength="100"');
|
||||
$mform->setType('idnumber', PARAM_TEXT);
|
||||
$mform->setType('idnumber', PARAM_RAW);
|
||||
$mform->addRule('idnumber', null, 'required', null, 'client');
|
||||
$mform->addRule('idnumber', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ class competency_framework extends persistent {
|
||||
$mform->setType('description', PARAM_RAW);
|
||||
// ID number.
|
||||
$mform->addElement('text', 'idnumber', get_string('idnumber', 'tool_lp'), 'maxlength="100"');
|
||||
$mform->setType('idnumber', PARAM_TEXT);
|
||||
$mform->setType('idnumber', PARAM_RAW);
|
||||
$mform->addRule('idnumber', null, 'required', null, 'client');
|
||||
$mform->addRule('idnumber', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
|
||||
|
||||
|
||||
@@ -73,6 +73,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:coursecompetencyview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
'tool_lp_data_for_template_competencies_page' => array(
|
||||
'classname' => 'tool_lp\external',
|
||||
@@ -100,6 +101,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:planviewown',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
'tool_lp_data_for_plan_page' => array(
|
||||
'classname' => 'tool_lp\external',
|
||||
@@ -109,6 +111,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:planview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
'tool_lp_data_for_related_competencies_section' => array(
|
||||
'classname' => 'tool_lp\external',
|
||||
@@ -147,6 +150,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:userevidenceview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
'tool_lp_data_for_user_evidence_page' => array(
|
||||
'classname' => 'tool_lp\external',
|
||||
@@ -156,6 +160,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:userevidenceview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
|
||||
// User competency.
|
||||
@@ -167,6 +172,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:planview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
'tool_lp_data_for_user_competency_summary_in_plan' => array(
|
||||
'classname' => 'tool_lp\external',
|
||||
@@ -176,6 +182,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:planview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
'tool_lp_data_for_user_competency_summary_in_course' => array(
|
||||
'classname' => 'tool_lp\external',
|
||||
@@ -185,6 +192,7 @@ $functions = array(
|
||||
'type' => 'read',
|
||||
'capabilities' => 'moodle/competency:coursecompetencyview',
|
||||
'ajax' => true,
|
||||
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -144,6 +144,8 @@ $string['nfiles'] = '{$a} file(s)';
|
||||
$string['noactivities'] = 'No activities';
|
||||
$string['nocompetencies'] = 'No competencies have been created in this framework.';
|
||||
$string['nocompetenciesincourse'] = 'No competencies have been linked to this course.';
|
||||
$string['nocompetenciesinevidence'] = 'No competencies have been linked to this evidence.';
|
||||
$string['nocompetenciesinlearningplan'] = 'No competencies have been linked to this learning plan.';
|
||||
$string['nocompetenciesintemplate'] = 'No competencies have been linked to this learning plan template.';
|
||||
$string['nocompetencyframeworks'] = 'No competency frameworks have been created yet.';
|
||||
$string['nocompetencyselected'] = 'No competency selected';
|
||||
|
||||
@@ -6,13 +6,14 @@
|
||||
}
|
||||
.path-admin-tool-lp .progresstext {
|
||||
display: inline-block;
|
||||
height: 40px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.path-admin-tool-lp .progress {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
margin-right: 2em;
|
||||
}
|
||||
.path-admin-tool-lp .progress .bar {
|
||||
min-width: 3em;
|
||||
}
|
||||
.dir-rtl.path-admin-tool-lp .progress .bar {
|
||||
float: right;
|
||||
@@ -113,7 +114,8 @@
|
||||
display: table-cell;
|
||||
}
|
||||
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-outcome"] select,
|
||||
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] select {
|
||||
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] select,
|
||||
.path-admin-tool-lp [data-region="competencylinktree"] select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -219,6 +221,10 @@ input[type="checkbox"].tool_lp_scale_proficient {
|
||||
.user-competency-course-navigation {
|
||||
width: 240px;
|
||||
}
|
||||
.user-competency-course-navigation span {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/** Competency grader */
|
||||
.competency-grader textarea {
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
<ul data-enhance="movetree" style="display: none;">
|
||||
<li>
|
||||
<span>{{framework.shortname}}</span>
|
||||
<span>{{{framework.shortname}}}</span>
|
||||
<ul>
|
||||
{{#competencies}}
|
||||
{{> tool_lp/competencies_tree }}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<li data-id="{{id}}">
|
||||
{{#canmanage}}
|
||||
<span draggable="true">
|
||||
{{shortname}}
|
||||
{{{shortname}}}
|
||||
</span>
|
||||
{{/canmanage}}
|
||||
{{^canmanage}}
|
||||
<span>
|
||||
{{shortname}}
|
||||
{{{shortname}}}
|
||||
</span>
|
||||
{{/canmanage}}
|
||||
{{#haschildren}}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<ul data-enhance="tree">
|
||||
<li><span>{{shortname}}</span>
|
||||
<li><span>{{{shortname}}}</span>
|
||||
<ul>
|
||||
{{#competencies}}
|
||||
{{> tool_lp/competencies_tree }}
|
||||
|
||||
@@ -39,10 +39,10 @@
|
||||
}}
|
||||
<nav id="competency-path-{{uniqid}}">
|
||||
<small>
|
||||
<a href="{{pluginbaseurl}}/competencies.php?competencyframeworkid={{framework.id}}&pagecontextid={{pagecontextid}}" >{{framework.name}}</a>
|
||||
<a href="{{pluginbaseurl}}/competencies.php?competencyframeworkid={{framework.id}}&pagecontextid={{pagecontextid}}" >{{{framework.name}}}</a>
|
||||
/
|
||||
{{#ancestors}}
|
||||
<a data-action="competency-dialogue" href="#" data-id="{{id}}">{{name}}</a>
|
||||
<a data-action="competency-dialogue" href="#" data-id="{{id}}">{{{name}}}</a>
|
||||
{{^last}}<span> / </span>{{/last}}
|
||||
{{/ancestors}}
|
||||
</small>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<h3>{{#str}}competencyframeworks, tool_lp{{/str}}</h3>
|
||||
<select data-action="chooseframework">
|
||||
{{#frameworks}}
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{shortname}} <em>{{idnumber}}</em></option>
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{{shortname}}} <em>{{idnumber}}</em></option>
|
||||
{{/frameworks}}
|
||||
</select>
|
||||
{{/singleFramework}}
|
||||
@@ -15,7 +15,7 @@
|
||||
<button>{{#pix}}a/search, ,{{#str}}search{{/str}}{{/pix}}</button>
|
||||
</form>
|
||||
<ul data-enhance="linktree" style="display: none;">
|
||||
<li><span>{{framework.shortname}}</span>
|
||||
<li><span>{{{framework.shortname}}}</span>
|
||||
<ul>
|
||||
{{#competencies}}
|
||||
{{> tool_lp/competencies_tree }}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<button>{{#pix}}a/search, ,{{#str}}search{{/str}}{{/pix}}</button>
|
||||
</form>
|
||||
<ul data-enhance="linktree" style="display: none;">
|
||||
<li data-id="0"><span>{{framework.shortname}}</span>
|
||||
<li data-id="0"><span>{{{framework.shortname}}}</span>
|
||||
<ul>
|
||||
{{#competencies}}
|
||||
{{> tool_lp/competencies_tree }}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<h3>{{#str}}learningplans, tool_lp{{/str}}</h3>
|
||||
<select data-action="chooseplan">
|
||||
{{#plans}}
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{name}}</em></option>
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{{name}}}</option>
|
||||
{{/plans}}
|
||||
</select>
|
||||
{{/singlePlan}}
|
||||
@@ -17,7 +17,7 @@
|
||||
</form>
|
||||
|
||||
<ul data-enhance="linktree" style="display: none;">
|
||||
<li><span>{{plan.name}}</span>
|
||||
<li><span>{{{plan.name}}}</span>
|
||||
<ul>
|
||||
{{#competencies}}
|
||||
{{> tool_lp/competencies_tree }}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<label for="competency-nav-{{uniqid}}" class="accesshide">{{#str}}jumptocompetency, tool_lp{{/str}}</label>
|
||||
<select id="competency-nav-{{uniqid}}">
|
||||
{{#competencies}}
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{shortname}} {{idnumber}}</option>
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{{shortname}}} {{idnumber}}</option>
|
||||
{{/competencies}}
|
||||
</select>
|
||||
</span>
|
||||
|
||||
@@ -10,9 +10,15 @@
|
||||
<tbody>
|
||||
{{#children}}
|
||||
<tr data-competency="{{id}}">
|
||||
<th scope="row">{{shortname}}</th>
|
||||
<td><input type="number" min="0" value="{{points}}" name="points" aria-label="{{#str}}pointsgivenfor, tool_lp, {{competency.shortname}}{{/str}}"></td>
|
||||
<td><input type="checkbox" value="1" name="required" {{#required}}checked{{/required}} aria-label="{{#str}}aisrequired, tool_lp, {{competency.shortname}}{{/str}}"></td>
|
||||
<th scope="row">{{{shortname}}}</th>
|
||||
<td>
|
||||
<label class="accesshide" for="pointsforcompetency-{{id}}">{{#str}}pointsgivenfor, tool_lp, {{{competency.shortname}}}{{/str}}</label>
|
||||
<input id="pointsforcompetency-{{id}}" type="number" min="0" value="{{points}}" name="points" />
|
||||
</td>
|
||||
<td>
|
||||
<label class="accesshide" for="competency-{{id}}-isrequired">{{#str}}aisrequired, tool_lp, {{{competency.shortname}}}{{/str}}</label>
|
||||
<input id="competency-{{id}}-isrequired" type="checkbox" value="1" name="required" {{#required}}checked{{/required}} />
|
||||
</td>
|
||||
</tr>
|
||||
{{/children}}
|
||||
</tbody>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<div class='competency-heading'>
|
||||
<h4 id="competency_link_{{competency.id}}">{{competency.shortname}}
|
||||
<h4 id="competency_link_{{competency.id}}">{{{competency.shortname}}}
|
||||
<small>{{competency.idnumber}}</small>
|
||||
</h4>
|
||||
{{#framework}}
|
||||
<div class='competency-origin'>
|
||||
<p><small>{{framework.shortname}} - {{taxonomyterm}}</small>
|
||||
<p><small>{{{framework.shortname}}} - {{taxonomyterm}}</small>
|
||||
</div>
|
||||
{{/framework}}
|
||||
</div>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<a href="{{pluginbaseurl}}user_competency_in_course.php?courseid={{courseid}}&competencyid={{competency.id}}&userid={{gradableuserid}}"
|
||||
id="competency-info-link-{{competency.id}}"
|
||||
title="{{#str}}viewdetails, tool_lp{{/str}}">
|
||||
<p><strong>{{competency.shortname}} <em>{{competency.idnumber}}</em></strong></p>
|
||||
<p><strong>{{{competency.shortname}}} <em>{{competency.idnumber}}</em></strong></p>
|
||||
</a>
|
||||
<p>{{{competency.description}}}</p>
|
||||
{{/competency}}
|
||||
@@ -108,7 +108,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
{{^competencies}}
|
||||
<p class="alert-info">
|
||||
<p class="alert alert-info">
|
||||
{{#str}}nocompetenciesincourse, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/competencies}}
|
||||
|
||||
@@ -45,19 +45,13 @@
|
||||
{{#competencycount}}
|
||||
<div data-region="coursecompetencystatistics" class="well">
|
||||
{{#canbegradedincourse}}
|
||||
<div class="clearfix">
|
||||
<div class="span6">
|
||||
<div class="progresstext">
|
||||
{{< tool_lp/progress_bar}}
|
||||
{{$progresstext}}
|
||||
{{#str}}xcompetenciesproficientoutofyincourse, tool_lp, { "x": "{{proficientcompetencycount}}", "y": "{{competencycount}}" } {{/str}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<span class="pull-right label label-info">{{proficientcompetencypercentageformatted}} %</span>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {{proficientcompetencypercentage}}%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/progresstext}}
|
||||
{{$percentage}}{{proficientcompetencypercentage}}{{/percentage}}
|
||||
{{$percentlabel}}{{proficientcompetencypercentageformatted}} %{{/percentlabel}}
|
||||
{{/tool_lp/progress_bar}}
|
||||
{{/canbegradedincourse}}
|
||||
{{#canmanagecoursecompetencies}}
|
||||
{{#leastproficientcount}}
|
||||
@@ -68,7 +62,7 @@
|
||||
<div>
|
||||
{{#leastproficient}}
|
||||
<a href="#competency-info-link-{{id}}">
|
||||
<div><p>{{shortname}} <em>{{idnumber}}</em></p></div>
|
||||
<div><p>{{{shortname}}} <em>{{idnumber}}</em></p></div>
|
||||
</a>
|
||||
{{/leastproficient}}
|
||||
</div>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
}}
|
||||
<div data-region="managecompetencies">
|
||||
<h2>
|
||||
{{framework.shortname}}
|
||||
{{{framework.shortname}}}
|
||||
{{#canmanage}}
|
||||
<a href="{{pluginbaseurl}}/editcompetencyframework.php?id={{framework.id}}&pagecontextid={{pagecontextid}}&return=competencies">{{#pix}}t/edit, core, {{#str}}editcompetencyframework, tool_lp{{/str}}{{/pix}}</a>
|
||||
{{/canmanage}}
|
||||
@@ -121,7 +121,7 @@ require(['tool_lp/tree', 'tool_lp/competencytree', 'tool_lp/competencyactions',
|
||||
function(ariatree, treeModel, actions, $) {
|
||||
|
||||
treeModel.init({{framework.id}},
|
||||
'{{framework.shortname}}',
|
||||
{{#quote}} {{{framework.shortname}}} {{/quote}},
|
||||
'{{search}}',
|
||||
'[data-enhance=tree]',
|
||||
{{canmanage}});
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
* navigation - array of strings containing buttons for navigation
|
||||
}}
|
||||
<div data-region="managecompetencies">
|
||||
<div class="btn-group pull-left">
|
||||
<div class="pull-left">
|
||||
{{#navigation}}
|
||||
{{{.}}}
|
||||
{{/navigation}}
|
||||
@@ -52,7 +52,7 @@
|
||||
<tbody class="drag-parentnode">
|
||||
{{#competencyframeworks}}
|
||||
<tr class="drag-samenode" data-frameworkid="{{id}}">
|
||||
<td><span class="drag-handlecontainer"></span><span><a href="{{pluginbaseurl}}/competencies.php?competencyframeworkid={{id}}&pagecontextid={{pagecontextid}}">{{shortname}} ({{idnumber}})</a></span> {{^visible}}{{#str}}hiddenhint, tool_lp{{/str}}{{/visible}}</td>
|
||||
<td><span class="drag-handlecontainer"></span><span><a href="{{pluginbaseurl}}/competencies.php?competencyframeworkid={{id}}&pagecontextid={{pagecontextid}}">{{{shortname}}} ({{idnumber}})</a></span> {{^visible}}{{#str}}hiddenhint, tool_lp{{/str}}{{/visible}}</td>
|
||||
<td>{{competenciescount}}</td>
|
||||
<td>{{contextnamenoprefix}}</td>
|
||||
<td>
|
||||
@@ -86,7 +86,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
{{^competencyframeworks}}
|
||||
<p class="alert-info">
|
||||
<p class="alert alert-info">
|
||||
{{#str}}nocompetencyframeworks, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/competencyframeworks}}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
* navigation - array of strings containing buttons for navigation
|
||||
}}
|
||||
<div data-region="managetemplates">
|
||||
<div class="btn-group pull-left">
|
||||
<div class="pull-left">
|
||||
{{#navigation}}
|
||||
{{{.}}}
|
||||
{{/navigation}}
|
||||
@@ -53,7 +53,7 @@
|
||||
<tbody class="drag-parentnode">
|
||||
{{#templates}}
|
||||
<tr class="drag-samenode" data-templateid="{{id}}">
|
||||
<td><a href="{{pluginbaseurl}}/templatecompetencies.php?templateid={{id}}&pagecontextid={{pagecontextid}}">{{shortname}}</a></span> {{^visible}}{{#str}}hiddenhint, tool_lp{{/str}}{{/visible}}</td>
|
||||
<td><a href="{{pluginbaseurl}}/templatecompetencies.php?templateid={{id}}&pagecontextid={{pagecontextid}}">{{{shortname}}}</a></span> {{^visible}}{{#str}}hiddenhint, tool_lp{{/str}}{{/visible}}</td>
|
||||
<td>{{contextnamenoprefix}}</td>
|
||||
<td><a class="template-cohorts" href="{{pluginbaseurl}}/template_cohorts.php?id={{id}}&pagecontextid={{pagecontextid}}">{{cohortscount}}</a></td>
|
||||
<td><a class="template-userplans" href="{{pluginbaseurl}}/template_plans.php?id={{id}}&pagecontextid={{pagecontextid}}">{{planscount}}</a></td>
|
||||
@@ -98,7 +98,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
{{^templates}}
|
||||
<p class="alert-info">
|
||||
<p class="alert alert-info">
|
||||
{{#str}}notemplates, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/templates}}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<p class="alert-error">
|
||||
<p class="alert alert-error">
|
||||
{{#str}}nocompetencyframeworks, tool_lp{{/str}}
|
||||
</p>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
}}
|
||||
<div data-region="plan-page" data-id="{{plan.id}}" data-userid="{{plan.userid}}">
|
||||
<h2>
|
||||
{{plan.name}}
|
||||
{{{plan.name}}}
|
||||
{{#plan.canbeedited}}
|
||||
<a href="{{pluginbaseurl}}/editplan.php?id={{plan.id}}&userid={{plan.userid}}">{{#pix}}t/edit, core, {{#str}}editplan, tool_lp{{/str}}{{/pix}}</a>
|
||||
{{/plan.canbeedited}}
|
||||
@@ -79,7 +79,7 @@
|
||||
{{#canread}}
|
||||
<a href="{{pluginbaseurl}}/templatecompetencies.php?templateid={{id}}&pagecontextid={{contextid}}">
|
||||
{{/canread}}
|
||||
{{plan.template.shortname}}{{#canread}}</a>{{/canread}}
|
||||
{{{plan.template.shortname}}}{{#canread}}</a>{{/canread}}
|
||||
{{#plan.isunlinkallowed}}
|
||||
(<a data-action="plan-unlink" href="#">{{#str}}unlinkplantemplate, tool_lp{{/str}}</a>)
|
||||
{{/plan.isunlinkallowed}}
|
||||
@@ -91,17 +91,13 @@
|
||||
{{/description}}
|
||||
<dt>{{#str}}progress, tool_lp{{/str}}</dt>
|
||||
<dd>
|
||||
<div class="span4">
|
||||
<div class="progresstext">
|
||||
{{#str}}xcompetenciesproficientoutofy, tool_lp, { "x": "{{proficientcompetencycount}}", "y": "{{competencycount}}" }{{/str}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<span class="pull-right label label-info">{{proficientcompetencypercentageformatted}} %</span>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {{proficientcompetencypercentage}}%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
{{< tool_lp/progress_bar}}
|
||||
{{$progresstext}}
|
||||
{{#str}}xcompetenciesproficientoutofy, tool_lp, { "x": "{{proficientcompetencycount}}", "y": "{{competencycount}}" }{{/str}}
|
||||
{{/progresstext}}
|
||||
{{$percentage}}{{proficientcompetencypercentage}}{{/percentage}}
|
||||
{{$percentlabel}}{{proficientcompetencypercentageformatted}} %{{/percentlabel}}
|
||||
{{/tool_lp/progress_bar}}
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
@@ -135,7 +131,7 @@
|
||||
{{#plan.canbeedited}}
|
||||
<span class="drag-handlecontainer pull-left"></span>
|
||||
{{/plan.canbeedited}}
|
||||
<a data-usercompetency="true" href="#">{{competency.shortname}}</a>
|
||||
<a data-usercompetency="true" href="#">{{{competency.shortname}}}</a>
|
||||
<em>{{competency.idnumber}}</em>
|
||||
{{#comppath}}
|
||||
<br>
|
||||
@@ -184,6 +180,11 @@
|
||||
{{/competencies}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{^competencies}}
|
||||
<p class="alert alert-info">
|
||||
{{#str}}nocompetenciesinlearningplan, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/competencies}}
|
||||
</div>
|
||||
</div>
|
||||
{{#js}}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
}}
|
||||
|
||||
<div data-region="plans">
|
||||
<div class="btn-group pull-left">
|
||||
<div class="pull-left">
|
||||
{{#navigation}}
|
||||
{{{.}}}
|
||||
{{/navigation}}
|
||||
@@ -53,7 +53,7 @@
|
||||
{{#plans}}
|
||||
<tr data-region="plan-node" data-id="{{id}}" data-userid="{{userid}}">
|
||||
<td>
|
||||
<span><a href="{{pluginbaseurl}}/plan.php?id={{id}}">{{name}}</a></span>
|
||||
<span><a href="{{pluginbaseurl}}/plan.php?id={{id}}">{{{name}}}</a></span>
|
||||
</td>
|
||||
<td>
|
||||
{{#isbasedontemplate}}
|
||||
@@ -149,7 +149,7 @@
|
||||
</table>
|
||||
|
||||
{{^plans}}
|
||||
<p class="alert-info">
|
||||
<p class="alert alert-info">
|
||||
{{#str}}nouserplans, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/plans}}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
{{!
|
||||
This file is part of Moodle - http://moodle.org/
|
||||
|
||||
Moodle is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Moodle is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
}}
|
||||
{{!
|
||||
@template tool_lp/progress_bar
|
||||
|
||||
Moodle progress bar template for tool_lp.
|
||||
|
||||
The purpose of this template is to render a progress bar with a brief description.
|
||||
Inherits core/columns-1to2.
|
||||
|
||||
Classes required for JS:
|
||||
* none
|
||||
|
||||
Data attributes required for JS:
|
||||
* none
|
||||
|
||||
Context variables required for this template:
|
||||
* progresstextvalue A brief text that describes the progress bar.
|
||||
* percentagevalue The numeric value for the progress bar's percentage.
|
||||
* percentlabelvalue The progress bar's label that shows the percentage value.
|
||||
|
||||
Example context (json):
|
||||
{
|
||||
"progresstextvalue": "Progress:",
|
||||
"percentagevalue": "50",
|
||||
"percentlabelvalue": "50.00 %"
|
||||
}
|
||||
|
||||
}}
|
||||
<div class="row-fluid rtl-compatible">
|
||||
<div class="span4">
|
||||
<div class="progresstext">
|
||||
{{$progresstext}}{{progresstextvalue}}{{/progresstext}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span8">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {{$percentage}}{{percentagevalue}}{{/percentage}}%;" role="progressbar" aria-valuenow="{{$percentage}}{{percentagevalue}}{{/percentage}}" aria-valuemin="0" aria-valuemax="100">
|
||||
{{$percentlabel}}{{percentlabelvalue}}{{/percentlabel}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -12,7 +12,7 @@
|
||||
{{/showdeleterelatedaction}}
|
||||
<p>
|
||||
<a href="#" data-action="competency-dialogue" data-id="{{id}}">
|
||||
{{shortname}}{{#idnumber}} {{idnumber}}{{/idnumber}}
|
||||
{{{shortname}}}{{#idnumber}} {{idnumber}}{{/idnumber}}
|
||||
</a>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
}}
|
||||
<div data-region="templatecompetenciespage">
|
||||
<h2>
|
||||
{{template.shortname}}
|
||||
{{{template.shortname}}}
|
||||
{{#template.canmanage}}
|
||||
<a href="{{pluginbaseurl}}/edittemplate.php?id={{template.id}}&pagecontextid={{pagecontextid}}">{{#pix}}t/edit, core, {{#str}}edittemplate, tool_lp{{/str}}{{/pix}}</a>
|
||||
{{/template.canmanage}}
|
||||
@@ -55,7 +55,7 @@
|
||||
{{#hascourses}}
|
||||
<ul class="inline">
|
||||
{{#linkedcourses}}
|
||||
<li><a href="{{viewurl}}?id={{id}}">{{fullname}} ({{shortname}})</a></li>
|
||||
<li><a href="{{viewurl}}?id={{id}}">{{{fullname}}} ({{{shortname}}})</a></li>
|
||||
{{/linkedcourses}}
|
||||
</ul>
|
||||
{{/hascourses}}
|
||||
@@ -68,7 +68,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{^competencies}}
|
||||
<p class="alert-info">
|
||||
<p class="alert alert-info">
|
||||
{{#str}}nocompetenciesintemplate, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/competencies}}
|
||||
|
||||
@@ -46,50 +46,30 @@
|
||||
}}
|
||||
{{#competencycount}}
|
||||
<div data-region="templatestatistics" class="well">
|
||||
<div class="clearfix">
|
||||
<div class="span4">
|
||||
<div class="progresstext">
|
||||
{{#str}}xcompetencieslinkedoutofy, tool_lp, { "x": "{{linkedcompetencycount}}", "y": "{{competencycount}}" } {{/str}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<span class="pull-right label label-info">{{linkedcompetencypercentageformatted}} %</span>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {{linkedcompetencypercentage}}%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{< tool_lp/progress_bar}}
|
||||
{{$progresstext}}
|
||||
{{#str}}xcompetencieslinkedoutofy, tool_lp, { "x": "{{linkedcompetencycount}}", "y": "{{competencycount}}" } {{/str}}
|
||||
{{/progresstext}}
|
||||
{{$percentage}}{{linkedcompetencypercentage}}{{/percentage}}
|
||||
{{$percentlabel}}{{linkedcompetencypercentageformatted}} %{{/percentlabel}}
|
||||
{{/tool_lp/progress_bar}}
|
||||
{{#plancount}}
|
||||
<div class="clearfix">
|
||||
<div class="span4">
|
||||
<div class="progresstext">
|
||||
{{< tool_lp/progress_bar}}
|
||||
{{$progresstext}}
|
||||
{{#str}}xplanscompletedoutofy, tool_lp, { "x": "{{completedplancount}}", "y": "{{plancount}}" } {{/str}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<span class="pull-right label label-info">{{completedplanpercentageformatted}} %</span>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {{completedplanpercentage}}%;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/progresstext}}
|
||||
{{$percentage}}{{completedplanpercentage}}{{/percentage}}
|
||||
{{$percentlabel}}{{completedplanpercentageformatted}} %{{/percentlabel}}
|
||||
{{/tool_lp/progress_bar}}
|
||||
{{/plancount}}
|
||||
{{#usercompetencyplancount}}
|
||||
<div class="clearfix">
|
||||
<div class="span4">
|
||||
<div class="progresstext">
|
||||
{{< tool_lp/progress_bar}}
|
||||
{{$progresstext}}
|
||||
{{#str}}averageproficiencyrate, tool_lp, {{proficientusercompetencyplanpercentageformatted}} {{/str}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<span class="pull-right label label-info">{{proficientusercompetencyplanpercentageformatted}} %</span>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {{proficientusercompetencyplanpercentage}}%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/progresstext}}
|
||||
{{$percentage}}{{proficientusercompetencyplanpercentage}}{{/percentage}}
|
||||
{{$percentlabel}}{{proficientusercompetencyplanpercentageformatted}} %{{/percentlabel}}
|
||||
{{/tool_lp/progress_bar}}
|
||||
{{/usercompetencyplancount}}
|
||||
{{#leastproficientcount}}
|
||||
<div>
|
||||
@@ -101,7 +81,7 @@
|
||||
{{#showcompetencylinks}}
|
||||
<a href="#competency_link_{{id}}">
|
||||
{{/showcompetencylinks}}
|
||||
<div><p>{{shortname}} <em>{{idnumber}}</em></p></div>
|
||||
<div><p>{{{shortname}}} <em>{{idnumber}}</em></p></div>
|
||||
{{#showcompetencylinks}}
|
||||
</a>
|
||||
{{/showcompetencylinks}}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<label for="competency-nav-{{uniqid}}" class="accesshide">{{#str}}jumptocompetency, tool_lp{{/str}}</label>
|
||||
<select id="competency-nav-{{uniqid}}">
|
||||
{{#competencies}}
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{shortname}} {{idnumber}}</option>
|
||||
<option value="{{id}}" {{#selected}}selected="selected"{{/selected}}>{{{shortname}}} {{idnumber}}</option>
|
||||
{{/competencies}}
|
||||
</select>
|
||||
</span>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
}}
|
||||
|
||||
<div data-region="user-evidence-list">
|
||||
<div class="btn-group pull-left">
|
||||
<div class="pull-left">
|
||||
{{#navigation}}
|
||||
{{{.}}}
|
||||
{{/navigation}}
|
||||
@@ -53,7 +53,7 @@
|
||||
<tbody>
|
||||
{{#evidence}}
|
||||
<tr data-region='user-evidence-node' data-id="{{id}}" data-userid="{{userid}}">
|
||||
<td><a href="{{pluginbaseurl}}/user_evidence.php?id={{id}}">{{name}}</a></td>
|
||||
<td><a href="{{pluginbaseurl}}/user_evidence.php?id={{id}}">{{{name}}}</a></td>
|
||||
<td>
|
||||
{{^hasurlorfiles}}
|
||||
-
|
||||
@@ -77,7 +77,7 @@
|
||||
<ul class="user-evidence-competencies">
|
||||
{{#usercompetencies}}
|
||||
<li>
|
||||
{{competency.shortname}} <small><em>{{competency.idnumber}}</em></small> ({{usercompetency.statusname}}{{#usercompetency.reviewer.fullname}} / {{usercompetency.reviewer.fullname}}{{/usercompetency.reviewer.fullname}})
|
||||
{{{competency.shortname}}} <small><em>{{competency.idnumber}}</em></small> ({{usercompetency.statusname}}{{#usercompetency.reviewer.fullname}} / {{usercompetency.reviewer.fullname}}{{/usercompetency.reviewer.fullname}})
|
||||
</li>
|
||||
{{/usercompetencies}}
|
||||
</ul>
|
||||
@@ -123,7 +123,7 @@
|
||||
</table>
|
||||
|
||||
{{^evidence}}
|
||||
<p class="alert-info">{{#str}}nouserevidence, tool_lp{{/str}}</p>
|
||||
<p class="alert alert-info">{{#str}}nouserevidence, tool_lp{{/str}}</p>
|
||||
{{/evidence}}
|
||||
|
||||
</div>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
{{#userevidence}}
|
||||
<div data-region="user-evidence-page" data-id="{{id}}" data-userid="{{userid}}">
|
||||
<h2>
|
||||
{{name}}
|
||||
{{{name}}}
|
||||
{{#canmanage}}
|
||||
<a href="{{pluginbaseurl}}/user_evidence_edit.php?id={{id}}&userid={{userid}}">{{#pix}}t/edit, core, {{#str}}editthisuserevidence, tool_lp{{/str}}{{/pix}}</a>
|
||||
{{/canmanage}}
|
||||
@@ -78,7 +78,7 @@
|
||||
{{#usercompetencies}}
|
||||
<tr data-id="{{competency.id}}">
|
||||
<td>
|
||||
<a href="{{pluginbaseurl}}/user_competency.php?id={{usercompetency.id}}" data-id="{{usercompetency.id}}">{{competency.shortname}}</a>
|
||||
<a href="{{pluginbaseurl}}/user_competency.php?id={{usercompetency.id}}" data-id="{{usercompetency.id}}">{{{competency.shortname}}}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{usercompetency.statusname}} {{#usercompetency.reviewer.fullname}} / {{usercompetency.reviewer.fullname}}{{/usercompetency.reviewer.fullname}}
|
||||
@@ -94,6 +94,11 @@
|
||||
{{/usercompetencies}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{^usercompetencies}}
|
||||
<p class="alert alert-info">
|
||||
{{#str}}nocompetenciesinevidence, tool_lp{{/str}}
|
||||
</p>
|
||||
{{/usercompetencies}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -25,6 +25,6 @@
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
|
||||
$plugin->version = 2016020925; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2014110400; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_lp'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
Vendored
+1
-1
@@ -65,7 +65,7 @@ Y.extend(DRAGREORDER, M.core.dragdrop, {
|
||||
|
||||
M.tool_lp = M.tool_lp || {};
|
||||
M.tool_lp.dragdrop_reorder = function(params) {
|
||||
new DRAGREORDER(params);
|
||||
return new DRAGREORDER(params);
|
||||
};
|
||||
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
YUI.add("moodle-tool_lp-dragdrop-reorder",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r={EDITINGMOVE:"editing_move",ICONCLASS:"iconsmall"};e.extend(n,M.core.dragdrop,{initializer:function(t){if(e.one("."+t.parentNodeClass).all("."+t.dragHandleInsertClass).size()<=1)return;this.groups=[t.group],this.samenodeclass=t.sameNodeClass,this.parentnodeclass=t.parentNodeClass,this.draghandleinsertclass=t.dragHandleInsertClass,this.draghandle=this.get_drag_handle(t.dragHandleText,r.EDITINGMOVE,r.ICONCLASS,!0),this.samenodelabel=t.sameNodeLabel,this.parentnodelabel=t.parentNodeLabel,this.callback=t.callback;var n=new e.DD.Delegate({container:"."+t.parentNodeClass,nodes:"."+t.sameNodeClass,target:!0,handles:["."+r.EDITINGMOVE],dragConfig:{groups:this.groups}});n.dd.plug(e.Plugin.DDProxy),e.one("."+t.parentNodeClass).all("."+t.dragHandleInsertClass).each(function(e){e.insert(this.draghandle.cloneNode(!0))},this)},drop_hit:function(e){this.callback(e)}},{NAME:"tool_lp-dragdrop-reorder",ATTRS:{}}),M.tool_lp=M.tool_lp||{},M.tool_lp.dragdrop_reorder=function(e){new n(e)}},"@VERSION@",{requires:["moodle-core-dragdrop"]});
|
||||
YUI.add("moodle-tool_lp-dragdrop-reorder",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)},r={EDITINGMOVE:"editing_move",ICONCLASS:"iconsmall"};e.extend(n,M.core.dragdrop,{initializer:function(t){if(e.one("."+t.parentNodeClass).all("."+t.dragHandleInsertClass).size()<=1)return;this.groups=[t.group],this.samenodeclass=t.sameNodeClass,this.parentnodeclass=t.parentNodeClass,this.draghandleinsertclass=t.dragHandleInsertClass,this.draghandle=this.get_drag_handle(t.dragHandleText,r.EDITINGMOVE,r.ICONCLASS,!0),this.samenodelabel=t.sameNodeLabel,this.parentnodelabel=t.parentNodeLabel,this.callback=t.callback;var n=new e.DD.Delegate({container:"."+t.parentNodeClass,nodes:"."+t.sameNodeClass,target:!0,handles:["."+r.EDITINGMOVE],dragConfig:{groups:this.groups}});n.dd.plug(e.Plugin.DDProxy),e.one("."+t.parentNodeClass).all("."+t.dragHandleInsertClass).each(function(e){e.insert(this.draghandle.cloneNode(!0))},this)},drop_hit:function(e){this.callback(e)}},{NAME:"tool_lp-dragdrop-reorder",ATTRS:{}}),M.tool_lp=M.tool_lp||{},M.tool_lp.dragdrop_reorder=function(e){return new n(e)}},"@VERSION@",{requires:["moodle-core-dragdrop"]});
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ Y.extend(DRAGREORDER, M.core.dragdrop, {
|
||||
|
||||
M.tool_lp = M.tool_lp || {};
|
||||
M.tool_lp.dragdrop_reorder = function(params) {
|
||||
new DRAGREORDER(params);
|
||||
return new DRAGREORDER(params);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -63,5 +63,5 @@ Y.extend(DRAGREORDER, M.core.dragdrop, {
|
||||
|
||||
M.tool_lp = M.tool_lp || {};
|
||||
M.tool_lp.dragdrop_reorder = function(params) {
|
||||
new DRAGREORDER(params);
|
||||
return new DRAGREORDER(params);
|
||||
};
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
<h4>{{#str}}unmappedin, tool_lpmigrate, {{frameworkfrom.shortname}}{{/str}}</h4>
|
||||
<ul>
|
||||
{{#unmappedfrom}}
|
||||
<li><a href="#" data-id="{{id}}" data-action="competency-dialogue" data-includecourses="true">{{shortname}}</a> <em>{{idnumber}}</em></li>
|
||||
<li><a href="#" data-id="{{id}}" data-action="competency-dialogue" data-includecourses="true">{{{shortname}}}</a> <em>{{idnumber}}</em></li>
|
||||
{{/unmappedfrom}}
|
||||
</ul>
|
||||
{{/hasunmappedfrom}}
|
||||
@@ -119,7 +119,7 @@
|
||||
<h4>{{#str}}unmappedin, tool_lpmigrate, {{frameworkto.shortname}}{{/str}}</h4>
|
||||
<ul>
|
||||
{{#unmappedto}}
|
||||
<li><a href="#" data-id="{{id}}" data-action="competency-dialogue" data-includecourses="true">{{shortname}}</a> <em>{{idnumber}}</em></li>
|
||||
<li><a href="#" data-id="{{id}}" data-action="competency-dialogue" data-includecourses="true">{{{shortname}}}</a> <em>{{idnumber}}</em></li>
|
||||
{{/unmappedto}}
|
||||
</ul>
|
||||
{{/hasunmappedto}}
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2016022401; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2014110400; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_lpmigrate'; // Full name of the plugin (used for diagnostics).
|
||||
$plugin->dependencies = array(
|
||||
'tool_lp' => ANY_VERSION
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_messageinbound';
|
||||
|
||||
@@ -62,7 +62,7 @@ class api {
|
||||
'component' => $component,
|
||||
'version' => $version,
|
||||
'addon' => $addonname,
|
||||
'dependencies' => !empty($addon['dependencies']) ? $addoninfo['dependencies'] : array(),
|
||||
'dependencies' => !empty($addoninfo['dependencies']) ? $addoninfo['dependencies'] : array(),
|
||||
'fileurl' => '',
|
||||
'filehash' => '',
|
||||
'filesize' => 0
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
$plugin->version = 2016032401; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016032400.00; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_mobile'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -26,6 +26,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die;
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -126,6 +126,9 @@ class category_bin extends base_bin {
|
||||
throw new \moodle_exception('Failed to backup activity prior to deletion.');
|
||||
}
|
||||
|
||||
// Have finished with the controller, let's destroy it, freeing mem and resources.
|
||||
$controller->destroy();
|
||||
|
||||
// Grab the filename.
|
||||
$file = $result['backup_destination'];
|
||||
if (!$file->get_contenthash()) {
|
||||
@@ -259,6 +262,9 @@ class category_bin extends base_bin {
|
||||
// Run the import.
|
||||
$controller->execute_plan();
|
||||
|
||||
// Have finished with the controller, let's destroy it, freeing mem and resources.
|
||||
$controller->destroy();
|
||||
|
||||
// Fire event.
|
||||
$event = \tool_recyclebin\event\category_bin_item_restored::create(array(
|
||||
'objectid' => $item->id,
|
||||
|
||||
@@ -130,6 +130,9 @@ class course_bin extends base_bin {
|
||||
throw new \moodle_exception('Failed to backup activity prior to deletion.');
|
||||
}
|
||||
|
||||
// Have finished with the controller, let's destroy it, freeing mem and resources.
|
||||
$controller->destroy();
|
||||
|
||||
// Grab the filename.
|
||||
$file = $result['backup_destination'];
|
||||
if (!$file->get_contenthash()) {
|
||||
@@ -246,6 +249,9 @@ class course_bin extends base_bin {
|
||||
// Run the import.
|
||||
$controller->execute_plan();
|
||||
|
||||
// Have finished with the controller, let's destroy it, freeing mem and resources.
|
||||
$controller->destroy();
|
||||
|
||||
// Fire event.
|
||||
$event = \tool_recyclebin\event\course_bin_item_restored::create(array(
|
||||
'objectid' => $item->id,
|
||||
|
||||
@@ -85,6 +85,8 @@ class tool_recyclebin_course_bin_tests extends advanced_testcase {
|
||||
public function test_restore() {
|
||||
global $DB;
|
||||
|
||||
$startcount = $DB->count_records('course_modules');
|
||||
|
||||
// Delete the course module.
|
||||
course_delete_module($this->quiz->cmid);
|
||||
|
||||
@@ -95,7 +97,7 @@ class tool_recyclebin_course_bin_tests extends advanced_testcase {
|
||||
}
|
||||
|
||||
// Check that it was restored and removed from the recycle bin.
|
||||
$this->assertEquals(1, $DB->count_records('course_modules'));
|
||||
$this->assertEquals($startcount, $DB->count_records('course_modules'));
|
||||
$this->assertEquals(0, count($recyclebin->get_items()));
|
||||
}
|
||||
|
||||
@@ -105,6 +107,8 @@ class tool_recyclebin_course_bin_tests extends advanced_testcase {
|
||||
public function test_delete() {
|
||||
global $DB;
|
||||
|
||||
$startcount = $DB->count_records('course_modules');
|
||||
|
||||
// Delete the course module.
|
||||
course_delete_module($this->quiz->cmid);
|
||||
|
||||
@@ -115,7 +119,7 @@ class tool_recyclebin_course_bin_tests extends advanced_testcase {
|
||||
}
|
||||
|
||||
// Item was deleted, so no course module was restored.
|
||||
$this->assertEquals(0, $DB->count_records('course_modules'));
|
||||
$this->assertEquals($startcount - 1, $DB->count_records('course_modules'));
|
||||
$this->assertEquals(0, count($recyclebin->get_items()));
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2016030200; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_recyclebin'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_replace'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
$plugin->maturity = MATURITY_ALPHA; // this version's maturity level
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600;
|
||||
$plugin->requires = 2015111000;
|
||||
$plugin->version = 2016052300;
|
||||
$plugin->requires = 2016051900;
|
||||
$plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -21,6 +21,6 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_templatelibrary'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -740,7 +740,6 @@ class tool_uploadcourse_course {
|
||||
$this->error('errorwhilerestoringcourse', new lang_string('errorwhilerestoringthecourse', 'tool_uploadcourse'));
|
||||
}
|
||||
$rc->destroy();
|
||||
unset($rc); // File logging is a mess, we can only try to rely on gc to close handles.
|
||||
}
|
||||
|
||||
// Proceed with enrolment data.
|
||||
|
||||
@@ -35,13 +35,6 @@ global $CFG;
|
||||
*/
|
||||
class tool_uploadcourse_course_testcase extends advanced_testcase {
|
||||
|
||||
/**
|
||||
* Tidy up open files that may be left open.
|
||||
*/
|
||||
protected function tearDown() {
|
||||
gc_collect_cycles();
|
||||
}
|
||||
|
||||
public function test_proceed_without_prepare() {
|
||||
$this->resetAfterTest(true);
|
||||
$mode = tool_uploadcourse_processor::MODE_CREATE_NEW;
|
||||
|
||||
@@ -129,7 +129,6 @@ class tool_uploadcourse_helper_testcase extends advanced_testcase {
|
||||
$this->assertTrue(isset($result['backup_destination']));
|
||||
$c1backupfile = $result['backup_destination']->copy_content_to_temp();
|
||||
$bc->destroy();
|
||||
unset($bc); // File logging is a mess, we can only try to rely on gc to close handles.
|
||||
|
||||
// Creating backup file.
|
||||
$bc = new backup_controller(backup::TYPE_1COURSE, $c2->id, backup::FORMAT_MOODLE,
|
||||
@@ -139,7 +138,6 @@ class tool_uploadcourse_helper_testcase extends advanced_testcase {
|
||||
$this->assertTrue(isset($result['backup_destination']));
|
||||
$c2backupfile = $result['backup_destination']->copy_content_to_temp();
|
||||
$bc->destroy();
|
||||
unset($bc); // File logging is a mess, we can only try to rely on gc to close handles.
|
||||
|
||||
$oldcfg = isset($CFG->keeptempdirectoriesonbackup) ? $CFG->keeptempdirectoriesonbackup : false;
|
||||
$CFG->keeptempdirectoriesonbackup = true;
|
||||
|
||||
@@ -36,13 +36,6 @@ require_once($CFG->libdir . '/csvlib.class.php');
|
||||
*/
|
||||
class tool_uploadcourse_processor_testcase extends advanced_testcase {
|
||||
|
||||
/**
|
||||
* Tidy up open files that may be left open.
|
||||
*/
|
||||
protected function tearDown() {
|
||||
gc_collect_cycles();
|
||||
}
|
||||
|
||||
public function test_basic() {
|
||||
global $DB;
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version.
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version.
|
||||
$plugin->component = 'tool_uploadcourse'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_cas'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
$plugin->dependencies = array('auth_ldap' => 2015111000);
|
||||
$plugin->dependencies = array('auth_ldap' => 2016051900);
|
||||
|
||||
+2
-2
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_db'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die;
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_email'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
+2
-2
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_fc'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_imap'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
+5
-2
@@ -937,7 +937,9 @@ class auth_plugin_ldap extends auth_plugin_base {
|
||||
// It isn't possible to just rely on the configured suspension attribute since
|
||||
// things like active directory use bit masks, other things using LDAP might
|
||||
// do different stuff as well.
|
||||
$user->suspended = $this->is_user_suspended($user);
|
||||
//
|
||||
// The cast to int is a workaround for MDL-53959.
|
||||
$user->suspended = (int)$this->is_user_suspended($user);
|
||||
if (empty($user->lang)) {
|
||||
$user->lang = $CFG->lang;
|
||||
}
|
||||
@@ -1012,7 +1014,8 @@ class auth_plugin_ldap extends auth_plugin_base {
|
||||
if (!empty($updatekeys)) {
|
||||
$newuser = new stdClass();
|
||||
$newuser->id = $userid;
|
||||
$newuser->suspended = $this->is_user_suspended((object) $newinfo);
|
||||
// The cast to int is a workaround for MDL-53959.
|
||||
$newuser->suspended = (int)$this->is_user_suspended((object) $newinfo);
|
||||
|
||||
foreach ($updatekeys as $key) {
|
||||
if (isset($newinfo[$key])) {
|
||||
|
||||
@@ -25,6 +25,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_ldap'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['auth_ltidescription'] = 'The LTI authentication plugin enables your site to behave as an LTI provider - this plugin works in conjunction with the LTI enrolment plugin by allowing external users to access a course or individual activities.';
|
||||
$string['auth_ltidescription'] = 'The LTI authentication plugin, together with the \'Publish as LTI tool\' enrolment plugin, allows remote users to access selected courses and activities. In other words, Moodle functions as an LTI tool provider.';
|
||||
$string['pluginname'] = 'LTI';
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2016040800; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016040700; // Requires this Moodle version (3.1).
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version (3.1).
|
||||
$plugin->component = 'auth_lti'; // Full name of the plugin (used for diagnostics).
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_manual'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_mnet'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2015111000; // Requires this Moodle version
|
||||
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
|
||||
$plugin->requires = 2016051900; // Requires this Moodle version
|
||||
$plugin->component = 'auth_nntp'; // Full name of the plugin (used for diagnostics)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user