-
Notifications
You must be signed in to change notification settings - Fork 5
/
view.php
executable file
·54 lines (47 loc) · 1.99 KB
/
view.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?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/>.
/**
* Displays the correct view, depending on your role, acts as an entrypoint to the capquiz
*
* @package mod_capquiz
* @author Aleksander Skrede <aleksander.l.skrede@ntnu.no>
* @copyright 2018 NTNU
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_capquiz;
require_once('../../config.php');
require_once($CFG->dirroot . '/question/editlib.php');
require_once($CFG->dirroot . '/mod/capquiz/lib.php');
$cmid = capquiz_urls::require_course_module_id_param();
$cm = get_coursemodule_from_id('capquiz', $cmid, 0, false, MUST_EXIST);
require_login($cm->course, false, $cm);
$capquiz = new capquiz($cmid);
$renderer = $capquiz->renderer();
capquiz_urls::set_page_url($capquiz, capquiz_urls::$urlview);
if (has_capability('mod/capquiz:instructor', $capquiz->context())) {
if ($capquiz->has_question_list()) {
$renderer->display_instructor_dashboard($capquiz);
} else {
$renderer->display_choose_question_list_view();
}
} else {
require_capability('mod/capquiz:student', $capquiz->context());
// Question engine is null if the quiz is not published.
$qengine = $capquiz->question_engine($capquiz->user());
$qengine?->delete_invalid_attempt($capquiz->user());
$capquiz->update_grades();
$renderer->display_question_attempt_view($capquiz);
}