mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
Merge branch 'MDL-76196-master' of https://github.com/HuongNV13/moodle
This commit is contained in:
commit
c4ad566bbc
2 changed files with 102 additions and 0 deletions
84
mod/folder/classes/completion/custom_completion.php
Normal file
84
mod/folder/classes/completion/custom_completion.php
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
<?php
|
||||||
|
// 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/>.
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace mod_folder\completion;
|
||||||
|
|
||||||
|
use core_completion\activity_custom_completion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activity custom completion subclass for the folder resource.
|
||||||
|
*
|
||||||
|
* Class for defining mod_folder's custom completion rules.
|
||||||
|
*
|
||||||
|
* @package mod_folder
|
||||||
|
* @copyright 2022 David Woloszyn <david.woloszyn@moodle.com>
|
||||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
|
*/
|
||||||
|
class custom_completion extends activity_custom_completion {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches the completion state for a given completion rule.
|
||||||
|
*
|
||||||
|
* @param string $rule The completion rule.
|
||||||
|
* @return int The completion state.
|
||||||
|
*/
|
||||||
|
public function get_state(string $rule): int {
|
||||||
|
return COMPLETION_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch the list of custom completion rules that this module defines.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function get_defined_custom_rules(): array {
|
||||||
|
// This activity/resource does not have any custom rules.
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an associative array of the descriptions of custom completion rules.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_custom_rule_descriptions(): array {
|
||||||
|
// This activity/resource does not have any custom rule descriptions.
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the manual completion button depending on the display option set.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function manual_completion_always_shown(): bool {
|
||||||
|
$display = $this->cm->customdata->display ?? null;
|
||||||
|
|
||||||
|
return ($display == FOLDER_DISPLAY_INLINE ?? false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array of all completion rules, in the order they should be displayed to users.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_sort_order(): array {
|
||||||
|
// This module only supports manual completion.
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,10 +12,12 @@ Feature: View activity completion information in the folder activity
|
||||||
And the following "courses" exist:
|
And the following "courses" exist:
|
||||||
| fullname | shortname | enablecompletion | showcompletionconditions |
|
| fullname | shortname | enablecompletion | showcompletionconditions |
|
||||||
| Course 1 | C1 | 1 | 1 |
|
| Course 1 | C1 | 1 | 1 |
|
||||||
|
| Course 2 | C2 | 1 | 0 |
|
||||||
And the following "course enrolments" exist:
|
And the following "course enrolments" exist:
|
||||||
| user | course | role |
|
| user | course | role |
|
||||||
| student1 | C1 | student |
|
| student1 | C1 | student |
|
||||||
| teacher1 | C1 | editingteacher |
|
| teacher1 | C1 | editingteacher |
|
||||||
|
| student1 | C2 | student |
|
||||||
|
|
||||||
Scenario: View automatic completion items
|
Scenario: View automatic completion items
|
||||||
Given the following "activity" exists:
|
Given the following "activity" exists:
|
||||||
|
@ -52,3 +54,19 @@ Feature: View activity completion information in the folder activity
|
||||||
Then the manual completion button of "Music history" is displayed as "Mark as done"
|
Then the manual completion button of "Music history" is displayed as "Mark as done"
|
||||||
And I toggle the manual completion state of "Music history"
|
And I toggle the manual completion state of "Music history"
|
||||||
And the manual completion button of "Music history" is displayed as "Done"
|
And the manual completion button of "Music history" is displayed as "Done"
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: The manual completion button will be shown on the course page for Inline on a course page display mode
|
||||||
|
Given the following "activity" exists:
|
||||||
|
| activity | folder |
|
||||||
|
| course | C2 |
|
||||||
|
| idnumber | mh2 |
|
||||||
|
| name | Music history |
|
||||||
|
| section | 1 |
|
||||||
|
| completion | 1 |
|
||||||
|
| display | 1 |
|
||||||
|
When I am on the "Course 2" course page logged in as student1
|
||||||
|
Then the manual completion button for "Music history" should exist
|
||||||
|
And the manual completion button of "Music history" is displayed as "Mark as done"
|
||||||
|
And I toggle the manual completion state of "Music history"
|
||||||
|
And the manual completion button of "Music history" is displayed as "Done"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue