Skip to content

Commit 066a8b7

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

File tree

83 files changed

+1215
-4396
lines changed

Some content is hidden

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

83 files changed

+1215
-4396
lines changed

action.php

+16-10
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,34 @@
1919
*
2020
* @package mod_capquiz
2121
* @author Aleksander Skrede <aleksander.l.skrede@ntnu.no>
22-
* @copyright 2018 NTNU
22+
* @copyright 2018 Norwegian University of Science and Technology (NTNU)
2323
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
2424
*/
2525

26-
namespace mod_capquiz;
26+
use mod_capquiz\capquiz;
27+
use mod_capquiz\capquiz_action_performer;
28+
29+
require_once ("../../config.php");
30+
global $CFG;
2731

28-
require_once("../../config.php");
2932
require_once($CFG->libdir . '/formslib.php');
3033
require_once($CFG->dirroot . '/mod/capquiz/lib.php');
3134
require_once($CFG->dirroot . '/mod/capquiz/classes/capquiz_action_performer.php');
3235

33-
$cmid = capquiz_urls::require_course_module_id_param();
36+
global $PAGE;
37+
38+
$cmid = required_param('id', PARAM_INT);
3439
$cm = get_coursemodule_from_id('capquiz', $cmid, 0, false, MUST_EXIST);
3540
require_login($cm->course, false, $cm);
3641

37-
$context = \context_module::instance($cmid);
42+
$context = context_module::instance($cmid);
3843
require_capability('mod/capquiz:instructor', $context);
39-
4044
$action = required_param('action', PARAM_TEXT);
4145

42-
$capquiz = new capquiz($cmid);
43-
capquiz_urls::set_page_url($capquiz, capquiz_urls::$urlasync);
44-
capquiz_action_performer::perform($action, $capquiz);
46+
$PAGE->set_context($context);
47+
$PAGE->set_cm($cm);
48+
$PAGE->set_url(new moodle_url('/mod/capquiz/async.php'));
49+
50+
capquiz_action_performer::perform($action, new capquiz($cmid));
4551

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

async.php

+19-13
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,42 @@
1919
*
2020
* @package mod_capquiz
2121
* @author Aleksander Skrede <aleksander.l.skrede@ntnu.no>
22-
* @copyright 2018 NTNU
22+
* @copyright 2018 Norwegian University of Science and Technology (NTNU)
2323
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
2424
*/
2525

26-
namespace mod_capquiz;
26+
use mod_capquiz\capquiz;
27+
use mod_capquiz\capquiz_question_attempt;
28+
use mod_capquiz\capquiz_question_engine;
2729

28-
require_once('../../config.php');
30+
require_once(__DIR__ . '/../../config.php');
2931

30-
$cmid = capquiz_urls::require_course_module_id_param();
32+
global $PAGE;
33+
34+
$cmid = required_param('id', PARAM_INT);
3135
$cm = get_coursemodule_from_id('capquiz', $cmid, 0, false, MUST_EXIST);
3236
require_login($cm->course, false, $cm);
33-
$context = \context_module::instance($cmid);
37+
38+
$context = context_module::instance($cmid);
3439
require_capability('mod/capquiz:student', $context);
3540

36-
$action = required_param('action', PARAM_TEXT);
3741
$attemptid = optional_param('attempt', null, PARAM_INT);
38-
$cmid = capquiz_urls::require_course_module_id_param();
39-
$capquiz = new capquiz($cmid);
42+
$action = required_param('action', PARAM_TEXT);
4043

41-
capquiz_urls::set_page_url($capquiz, capquiz_urls::$urlasync);
44+
$PAGE->set_context($context);
45+
$PAGE->set_cm($cm);
46+
$PAGE->set_url(new moodle_url('/mod/capquiz/async.php'));
4247

4348
if ($attemptid !== null) {
49+
$capquiz = new capquiz($cmid);
4450
$user = $capquiz->user();
4551
$attempt = capquiz_question_attempt::load_attempt($user, $attemptid);
4652
if ($action === 'answered') {
47-
$capquiz->question_engine($user)->attempt_answered($user, $attempt);
53+
(new capquiz_question_engine($capquiz))->attempt_answered($user, $attempt);
4854
} else if ($action === 'reviewed') {
49-
$capquiz->question_engine($user)->attempt_reviewed($attempt);
55+
(new capquiz_question_engine($capquiz))->attempt_reviewed($attempt);
5056
}
51-
capquiz_urls::redirect_to_dashboard();
57+
redirect(new moodle_url('/mod/capquiz/view.php', ['id' => $cmid]));
5258
}
5359

54-
capquiz_urls::redirect_to_front_page();
60+
redirect(new moodle_url('/'));

backup/moodle2/backup_capquiz_stepslib.php

+7-20
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ protected function define_structure() {
4242
'timemodified',
4343
'published',
4444
'default_user_rating',
45+
'stars_to_pass',
46+
'timedue',
47+
'numquestioncandidates',
48+
'minquestionsuntilreappearance',
49+
'userwinprobability',
50+
'userkfactor',
51+
'questionkfactor',
4552
]);
4653
$questionlist = new backup_nested_element('questionlist', null, [
4754
'id',
@@ -68,18 +75,6 @@ protected function define_structure() {
6875
'manual',
6976
'timecreated',
7077
]);
71-
$questionselections = new backup_nested_element('questionselections');
72-
$questionselection = new backup_nested_element('questionselection', ['id'], [
73-
'capquiz_id',
74-
'strategy',
75-
'configuration',
76-
]);
77-
$ratingsystems = new backup_nested_element('ratingsystems');
78-
$ratingsystem = new backup_nested_element('ratingsystem', ['id'], [
79-
'capquiz_id',
80-
'rating_system',
81-
'configuration',
82-
]);
8378
$users = new backup_nested_element('users');
8479
$user = new backup_nested_element('user', ['id'], [
8580
'user_id',
@@ -121,12 +116,6 @@ protected function define_structure() {
121116
$question->add_child($questionratings);
122117
$questionratings->add_child($questionrating);
123118

124-
$capquiz->add_child($questionselections);
125-
$questionselections->add_child($questionselection);
126-
127-
$capquiz->add_child($ratingsystems);
128-
$ratingsystems->add_child($ratingsystem);
129-
130119
$capquiz->add_child($users);
131120
$users->add_child($user);
132121
$user->add_child($userratings);
@@ -139,8 +128,6 @@ protected function define_structure() {
139128
$questionlist->set_source_table('capquiz_question_list', ['capquiz_id' => backup::VAR_PARENTID]);
140129
$question->set_source_table('capquiz_question', ['question_list_id' => backup::VAR_PARENTID]);
141130
$questionrating->set_source_table('capquiz_question_rating', ['capquiz_question_id' => backup::VAR_PARENTID]);
142-
$questionselection->set_source_table('capquiz_question_selection', ['capquiz_id' => backup::VAR_PARENTID]);
143-
$ratingsystem->set_source_table('capquiz_rating_system', ['capquiz_id' => backup::VAR_PARENTID]);
144131
if ($this->get_setting_value('userinfo')) {
145132
$user->set_source_table('capquiz_user', ['capquiz_id' => backup::VAR_PARENTID]);
146133
$userrating->set_source_table('capquiz_user_rating', ['capquiz_user_id' => backup::VAR_PARENTID]);

backup/moodle2/restore_capquiz_stepslib.php

+1-32
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,10 @@ class restore_capquiz_activity_structure_step extends restore_questions_activity
4141
protected function define_structure() {
4242
$paths = [];
4343
$paths[] = new restore_path_element('capquiz', '/activity/capquiz');
44-
$questionlist = new restore_path_element('capquiz_question_list', '/activity/capquiz/questionlist');
45-
$paths[] = $questionlist;
44+
$paths[] = new restore_path_element('capquiz_question_list', '/activity/capquiz/questionlist');
4645
$paths[] = new restore_path_element('capquiz_question', '/activity/capquiz/questionlist/questions/question');
4746
$paths[] = new restore_path_element(
4847
'capquiz_question_rating', '/activity/capquiz/questionlist/questions/question/questionratings/question_rating');
49-
$paths[] = new restore_path_element('capquiz_question_selection', '/activity/capquiz/questionselections/questionselection');
50-
$paths[] = new restore_path_element('capquiz_rating_system', '/activity/capquiz/ratingsystems/ratingsystem');
5148
if ($this->get_setting_value('userinfo')) {
5249
$capuser = new restore_path_element('capquiz_user', '/activity/capquiz/users/user');
5350
$this->add_question_usages($capuser, $paths);
@@ -124,34 +121,6 @@ protected function process_capquiz_question_rating($data) {
124121
$this->set_mapping('capquiz_question_rating', $oldid, $newitemid);
125122
}
126123

127-
/**
128-
* Processes and backs up capquiz question selection
129-
*
130-
* @param object $data
131-
*/
132-
protected function process_capquiz_question_selection($data) {
133-
global $DB;
134-
$data = (object)$data;
135-
$data->capquiz_id = $this->get_new_parentid('capquiz');
136-
$oldid = $data->id;
137-
$newitemid = $DB->insert_record('capquiz_question_selection', $data);
138-
$this->set_mapping('capquiz_question_selection', $oldid, $newitemid);
139-
}
140-
141-
/**
142-
* Processes and backs up capquiz question rating system
143-
*
144-
* @param object $data
145-
*/
146-
protected function process_capquiz_rating_system($data) {
147-
global $DB;
148-
$data = (object)$data;
149-
$data->capquiz_id = $this->get_new_parentid('capquiz');
150-
$oldid = $data->id;
151-
$newitemid = $DB->insert_record('capquiz_rating_system', $data);
152-
$this->set_mapping('capquiz_rating_system', $oldid, $newitemid);
153-
}
154-
155124
/**
156125
* Processes and backs up capquiz user
157126
*

classes/bank/add_to_quiz_action.php

+10-4
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616

1717
namespace mod_capquiz\bank;
1818

19-
use mod_capquiz\capquiz_urls;
19+
use moodle_url;
2020
use stdClass;
2121

2222
/**
2323
* Question bank action to add question to quiz.
2424
*
2525
* @package mod_capquiz
26-
* @copyright 2024 NTNU
27-
* @author 2024 Sebastian Gundersen
26+
* @author 2024 Sebastian Gundersen <sebastian@sgundersen.com>
27+
* @copyright 2024 Norwegian University of Science and Technology (NTNU)
2828
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
2929
*/
3030
class add_to_quiz_action extends \core_question\local\bank\question_action_base {
@@ -38,9 +38,15 @@ class add_to_quiz_action extends \core_question\local\bank\question_action_base
3838
* $label - text label to display in the UI (either in the menu, or as a tool-tip on the icon)
3939
*/
4040
protected function get_url_icon_and_label(stdClass $question): array {
41+
global $PAGE;
4142
if (!question_has_capability_on($question, 'use')) {
4243
return [null, null, null];
4344
}
44-
return [capquiz_urls::add_question_to_list_url($question->id), 't/add', get_string('addtoquiz', 'quiz')];
45+
$url = new moodle_url('/mod/capquiz/action.php', [
46+
'id' => $PAGE->cm->id,
47+
'action' => 'add-question',
48+
'question-id' => $question->id,
49+
]);
50+
return [$url, 't/add', get_string('addtoquiz', 'quiz')];
4551
}
4652
}

0 commit comments

Comments
 (0)