mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
MDL-76196 mod_folder: Display manual completion if inline display set
This commit is contained in:
parent
5877ae306e
commit
b0f872a528
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:
|
||||
| fullname | shortname | enablecompletion | showcompletionconditions |
|
||||
| Course 1 | C1 | 1 | 1 |
|
||||
| Course 2 | C2 | 1 | 0 |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| student1 | C1 | student |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C2 | student |
|
||||
|
||||
Scenario: View automatic completion items
|
||||
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"
|
||||
And I toggle the manual completion state of "Music history"
|
||||
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…
x
Reference in New Issue
Block a user