|
51 | 51 |
|
52 | 52 | $data = $cache->get('manageroverview'); |
53 | 53 |
|
| 54 | +$field = $DB->get_record('customfield_field', array('shortname' => 'semester', 'type' => 'semester'), '*', MUST_EXIST); |
| 55 | +$fieldcontroller = \core_customfield\field_controller::create($field->id); |
| 56 | +$datacontroller = \core_customfield\data_controller::create(0, null, $fieldcontroller); |
| 57 | + |
| 58 | +if (!$data) { |
| 59 | + $data = new stdClass(); |
| 60 | + $data->semester = $datacontroller->get_default_value(); |
| 61 | +} |
| 62 | + |
| 63 | +$catids = array_merge($category->get_all_children_ids(), [$category->id]); |
| 64 | + |
| 65 | +$errtable = new error_courses_table($catids, $data->semester ?? null, $evasyscategory, $search); |
| 66 | +$errtable->define_baseurl($PAGE->url); |
| 67 | + |
| 68 | +$reqtable = new course_manager_table($catids, $data->semester ?? null, $search); |
| 69 | +$reqtable->define_baseurl($PAGE->url); |
| 70 | + |
| 71 | +$remtable = new remaining_courses_table($catids, $data->semester ?? null, $evasyscategory,$search); |
| 72 | +$remtable->define_baseurl($PAGE->url); |
| 73 | + |
| 74 | +$mantable = new manual_courses_table($catids, $data->semester ?? null, $search); |
| 75 | +$mantable->define_baseurl($PAGE->url); |
| 76 | + |
| 77 | +$invtable = new invalid_courses_table($catids, $data->semester ?? null, $evasyscategory, $search); |
| 78 | +$invtable->define_baseurl($PAGE->url); |
| 79 | + |
54 | 80 | $action = optional_param('action', null, PARAM_ALPHAEXT); |
55 | 81 | $forall = optional_param('all', 0, PARAM_INT); |
| 82 | + |
56 | 83 | switch ($action) { |
57 | 84 | case 'clearerror': |
58 | 85 | require_sesskey(); |
59 | | - $ids = required_param_array('ids', PARAM_INT); |
| 86 | + if ($forall === 1) { |
| 87 | + $ids = $errtable->get_all_error_courseids(); |
| 88 | + } else { |
| 89 | + $ids = required_param_array('ids', PARAM_INT); |
| 90 | + } |
60 | 91 | list($insql, $params) = $DB->get_in_or_equal($ids, SQL_PARAMS_NAMED); |
61 | 92 | $params['time'] = time(); |
62 | 93 | $params['evasyscat'] = $evasyscategory->get('id'); |
|
67 | 98 | case 'seteval': |
68 | 99 | require_sesskey(); |
69 | 100 | if ($forall === 1) { |
70 | | - // $courses = array_keys(array_keys($table->get_all_courses())); |
| 101 | + $courses = $remtable->get_all_remaining_courseids(); |
71 | 102 | } else { |
72 | 103 | $courses = required_param_array('ids', PARAM_INT); |
73 | 104 | } |
|
87 | 118 | redirect($PAGE->url); |
88 | 119 | } |
89 | 120 |
|
90 | | -$field = $DB->get_record('customfield_field', array('shortname' => 'semester', 'type' => 'semester'), '*', MUST_EXIST); |
91 | | -$fieldcontroller = \core_customfield\field_controller::create($field->id); |
92 | | -$datacontroller = \core_customfield\data_controller::create(0, null, $fieldcontroller); |
93 | | - |
94 | | -if (!$data) { |
95 | | - $data = new stdClass(); |
96 | | - $data->semester = $datacontroller->get_default_value(); |
97 | | -} |
98 | | - |
99 | | -$catids = array_merge($category->get_all_children_ids(), [$category->id]); |
100 | | - |
101 | | - |
102 | 121 | $PAGE->navigation->add('EvaSys', new moodle_url('/blocks/evasys_sync/manageroverview.php')) |
103 | 122 | ->add( |
104 | 123 | get_string('evaluations', 'block_evasys_sync') . ' in ' . data_controller::get_name_for_semester($data->semester), |
|
120 | 139 | 'extraclasses' => 'mb-3', |
121 | 140 | 'inform' => false, |
122 | 141 | 'searchstring' => get_string('search_for_courses', 'block_evasys_sync'), |
| 142 | + // Id as url param doesn't work, so set as hidden field. |
123 | 143 | 'hiddenfields' => [ |
124 | 144 | (object) ['type' => 'hidden', 'name' => 'id', 'value' => $id] |
125 | 145 | ], |
126 | 146 | 'query' => $search |
127 | 147 | ]); |
128 | 148 |
|
129 | | -$errtable = new error_courses_table($catids, $data->semester ?? null, $evasyscategory, $search); |
130 | | -$errtable->define_baseurl($PAGE->url); |
| 149 | + |
| 150 | +// Output search results ordered by tables the courses are in. |
| 151 | + |
| 152 | +$somethingfound = false; |
| 153 | + |
131 | 154 | $errtable->setup(); |
132 | 155 | $errtable->query_db(48, false); |
133 | 156 | $errtable->build_table(); |
134 | 157 | $errtable->close_recordset(); |
135 | 158 | if ($errtable->started_output) { |
136 | 159 | echo $OUTPUT->heading('<br>' . get_string('courses_with_errors', 'block_evasys_sync') . '<br>'); |
137 | 160 | $errtable->finish_output(); |
| 161 | + $somethingfound = true; |
138 | 162 | } |
139 | 163 |
|
140 | | -$somethingfound = false; |
141 | | - |
142 | | -$reqtable = new course_manager_table($catids, $data->semester ?? null, $search); |
143 | | -$reqtable->define_baseurl($PAGE->url); |
144 | 164 | $reqtable->setup(); |
145 | 165 | $reqtable->query_db(48, false); |
146 | 166 | $reqtable->build_table(); |
|
151 | 171 | $somethingfound = true; |
152 | 172 | } |
153 | 173 |
|
154 | | -$remtable = new remaining_courses_table($catids, $data->semester ?? null, $evasyscategory,$search); |
155 | | -$remtable->define_baseurl($PAGE->url); |
156 | 174 | $remtable->setup(); |
157 | 175 | $remtable->query_db(48, false); |
158 | 176 | $remtable->build_table(); |
|
163 | 181 | $somethingfound = true; |
164 | 182 | } |
165 | 183 |
|
166 | | -$mantable = new manual_courses_table($catids, $data->semester ?? null, $search); |
167 | | -$mantable->define_baseurl($PAGE->url); |
168 | 184 | $mantable->setup(); |
169 | 185 | $mantable->query_db(48, false); |
170 | 186 | $mantable->build_table(); |
171 | 187 | $mantable->close_recordset(); |
172 | 188 | if ($mantable->started_output) { |
173 | | - //echo $OUTPUT->heading(''); |
174 | 189 | echo $OUTPUT->heading('<br>' . get_string('courses_with_manual_evals', 'block_evasys_sync') . '<br>'); |
175 | 190 | $mantable->finish_output(); |
176 | 191 | $somethingfound = true; |
177 | 192 | } |
178 | 193 |
|
179 | | -$invtable = new invalid_courses_table($catids, $data->semester ?? null, $evasyscategory, $search); |
180 | | -$invtable->define_baseurl($PAGE->url); |
181 | 194 | $invtable->setup(); |
182 | 195 | $invtable->query_db(48, false); |
183 | 196 | $invtable->build_table(); |
|
0 commit comments