Merge branch 'MDL-77997' of https://github.com/timhunt/moodle
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?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/>.
|
||||
|
||||
/**
|
||||
* Helper functions and callbacks.
|
||||
*
|
||||
* @package qbank_exporttoxml
|
||||
* @copyright 2023 The Open University
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
use core\plugininfo\qbank;
|
||||
use qbank_exporttoxml\helper;
|
||||
|
||||
/**
|
||||
* Callback to add content to the question preview screen.
|
||||
*
|
||||
* @param question_definition $question the question being previewed.
|
||||
* @param int $courseid the course id.
|
||||
* @return string HTML to add to the question preview screen.
|
||||
*/
|
||||
function qbank_exporttoxml_preview_display(question_definition $question, int $courseid): string {
|
||||
if (!qbank::is_plugin_enabled('qbank_exporttoxml')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (!question_has_capability_on($question, 'view')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$exporturl = helper::question_get_export_single_question_url($question);
|
||||
return html_writer::div(html_writer::link($exporturl, get_string('exportonequestion', 'question')));
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
@qbank @qbank_previewquestion
|
||||
Feature: A teacher can export a question as XML from the preview question screen
|
||||
To help reuse questions
|
||||
As a teacher
|
||||
I can easily export the question I am previewing
|
||||
|
||||
Background:
|
||||
Given the following "users" exist:
|
||||
| username |
|
||||
| teacher |
|
||||
And the following "courses" exist:
|
||||
| fullname | shortname |
|
||||
| Course 1 | C1 |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher | C1 | editingteacher |
|
||||
And the following "question categories" exist:
|
||||
| name | contextlevel | reference |
|
||||
| Test questions | Course | C1 |
|
||||
And the following "questions" exist:
|
||||
| questioncategory | qtype | name |
|
||||
| Test questions | numerical | Test question to be previewed |
|
||||
|
||||
Scenario: Question preview shows the question and other information
|
||||
When I am on the "Test question to be previewed" "core_question > preview" page logged in as teacher
|
||||
Then the state of "What is pi to two d.p.?" question is shown as "Not yet answered"
|
||||
And "Download this question in Moodle XML format" "link" should exist
|
||||
@@ -262,13 +262,12 @@ class helper {
|
||||
* @return array
|
||||
*/
|
||||
public static function get_preview_extra_elements(question_definition $question, int $courseid): array {
|
||||
$plugintype = 'qbank';
|
||||
$functionname = 'preview_display';
|
||||
$extrahtml = [];
|
||||
$plugins = get_plugin_list_with_function('qbank', 'preview_display');
|
||||
|
||||
$comment = '';
|
||||
$plugins = get_plugin_list_with_function($plugintype, $functionname);
|
||||
$extrahtml = [];
|
||||
foreach ($plugins as $componentname => $plugin) {
|
||||
$pluginhtml = component_callback($componentname, $functionname, [$question, $courseid]);
|
||||
$pluginhtml = component_callback($componentname, 'preview_display', [$question, $courseid]);
|
||||
if ($componentname === 'qbank_comment') {
|
||||
$comment = $pluginhtml;
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user