Skip to content

Commit 30e7712

Browse files
committed
#222 #234 DRAFT - Refactoring to simplify codebase
1 parent 2b45097 commit 30e7712

File tree

129 files changed

+3385
-9536
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+3385
-9536
lines changed

action.php

+78-11
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,96 @@
1818
* Performs actions on the capquiz
1919
*
2020
* @package mod_capquiz
21+
* @author Sebastian Gundersen <sebastian@sgundersen.com>
2122
* @author Aleksander Skrede <aleksander.l.skrede@ntnu.no>
22-
* @copyright 2018 NTNU
23+
* @copyright 2024 Norwegian University of Science and Technology (NTNU)
2324
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
2425
*/
2526

26-
namespace mod_capquiz;
27+
use mod_capquiz\api;
28+
use mod_capquiz\capquiz;
29+
use mod_capquiz\capquiz_question;
30+
use mod_capquiz\capquiz_question_list;
31+
32+
require_once ("../../config.php");
33+
34+
global $CFG, $DB, $PAGE;
2735

28-
require_once("../../config.php");
2936
require_once($CFG->libdir . '/formslib.php');
3037
require_once($CFG->dirroot . '/mod/capquiz/lib.php');
31-
require_once($CFG->dirroot . '/mod/capquiz/classes/capquiz_action_performer.php');
3238

33-
$cmid = capquiz_urls::require_course_module_id_param();
39+
$cmid = required_param('id', PARAM_INT);
3440
$cm = get_coursemodule_from_id('capquiz', $cmid, 0, false, MUST_EXIST);
3541
require_login($cm->course, false, $cm);
3642

37-
$context = \context_module::instance($cmid);
43+
$context = context_module::instance($cmid);
3844
require_capability('mod/capquiz:instructor', $context);
39-
4045
$action = required_param('action', PARAM_TEXT);
4146

42-
$capquiz = new capquiz($cmid);
43-
capquiz_urls::set_page_url($capquiz, capquiz_urls::$urlasync);
44-
capquiz_action_performer::perform($action, $capquiz);
47+
$PAGE->set_context($context);
48+
$PAGE->set_cm($cm);
49+
$PAGE->set_url(new moodle_url('/mod/capquiz/action.php'));
50+
51+
$capquiz = new capquiz($cm->instance);
52+
53+
switch ($action) {
54+
case 'remove-question':
55+
$questionid = required_param('questionid', PARAM_INT);
56+
$qlist = capquiz_question_list::get_record(['capquiz_id' => $capquiz->get('id')]);
57+
if ($qlist) {
58+
$DB->delete_records('capquiz_question', ['id' => $questionid, 'question_list_id' => $qlist->get('id')]);
59+
}
60+
exit;
61+
62+
case 'publish-question-list':
63+
$qlist = capquiz_question_list::get_record(['capquiz_id' => $capquiz->get('id')]);
64+
if (capquiz_question::count_records(['question_list_id' => $qlist->get('id')])) {
65+
$capquiz->set('published', 1);
66+
$capquiz->save();
67+
}
68+
break;
69+
70+
case 'set-question-list':
71+
$qlistid = required_param('question-list-id', PARAM_INT);
72+
api::copy_question_list($qlistid, $capquiz->get('id'));
73+
break;
74+
75+
case 'create-question-list-template':
76+
$qlist = capquiz_question_list::get_record(['capquiz_id' => $capquiz->get('id')]);
77+
api::copy_question_list($qlist->get('id'), null);
78+
break;
79+
80+
case 'merge_qlist':
81+
$sourceqlistid = required_param('qlistid', PARAM_INT);
82+
$qlist = capquiz_question_list::get_record(['capquiz_id' => $capquiz->get('id')]);
83+
foreach (capquiz_question::get_records(['question_list_id' => $sourceqlistid]) as $sourcequestion) {
84+
$existingquestion = capquiz_question::get_record([
85+
'question_list_id' => $qlist->get('id'),
86+
'question_id' => $sourcequestion->get('question_id'),
87+
]);
88+
if (!$existingquestion) {
89+
$question = new capquiz_question();
90+
$question->set('question_list_id', $qlist->get('id'));
91+
$question->set('question_id', $sourcequestion->get('question_id'));
92+
$question->save();
93+
api::set_question_rating($question->get('id'), $sourcequestion->get('rating'), false);
94+
}
95+
}
96+
redirect(new moodle_url('/mod/capquiz/view.php', ['id' => $PAGE->cm->id, 'page' => 'questions']));
97+
break;
98+
99+
case 'delete_qlist':
100+
$srcqlistid = required_param('qlistid', PARAM_INT);
101+
$DB->delete_records('capquiz_question', ['question_list_id' => $srcqlistid]);
102+
$DB->delete_records('capquiz_question_list', ['id' => $srcqlistid]);
103+
break;
104+
105+
case 'regrade-all':
106+
capquiz_update_grades($capquiz->to_record());
107+
break;
108+
109+
default:
110+
break;
111+
}
45112

46-
capquiz_urls::redirect_to_dashboard();
113+
redirect(new moodle_url('/mod/capquiz/view.php', ['id' => $cmid]));

adminlib.php

-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ public function search($query): array {
8080
}
8181
}
8282

83-
8483
/**
8584
* Class that handles the display and configuration of the list of capquiz plugins.
8685
*

adminmanageplugins.php

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
require_once("../../config.php");
2727

28+
global $CFG, $PAGE;
29+
2830
require_login();
2931

3032
require_once($CFG->dirroot . '/mod/capquiz/adminlib.php');

amd/build/attempt.min.js

-9
This file was deleted.

amd/build/attempt.min.js.map

-1
This file was deleted.

amd/build/edit_questions.min.js

+1-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)