|
69 | 69 | }
|
70 | 70 |
|
71 | 71 | $questionnairehasdependencies = $questionnaire->has_dependencies();
|
72 |
| -$haschildren = []; |
| 72 | +$dependants = null; |
73 | 73 | if (!isset($SESSION->questionnaire)) {
|
74 | 74 | $SESSION->questionnaire = new stdClass();
|
75 | 75 | }
|
|
182 | 182 | if ($qtype == QUESPAGEBREAK) {
|
183 | 183 | redirect($CFG->wwwroot.'/mod/questionnaire/questions.php?id='.$questionnaire->cm->id.'&delq='.$qid);
|
184 | 184 | }
|
| 185 | + |
| 186 | + $action = "confirmdelquestion"; |
185 | 187 | if ($questionnairehasdependencies) {
|
186 | 188 | // Important: due to possibly multiple parents per question
|
187 | 189 | // just remove the dependency and inform the user about it.
|
188 |
| - $haschildren = $questionnaire->get_all_dependants($qid); |
189 |
| - } |
190 |
| - if (count($haschildren) != 0) { |
191 |
| - $action = "confirmdelquestionparent"; |
192 |
| - } else { |
193 |
| - $action = "confirmdelquestion"; |
| 190 | + $dependants = $questionnaire->get_all_dependants($qid); |
| 191 | + if (!(empty($dependants->directs) && empty($dependants->indirects))) { |
| 192 | + $action = "confirmdelquestionparent"; |
| 193 | + } |
194 | 194 | }
|
195 |
| - |
196 | 195 | } else if (isset($qformdata->editbutton)) {
|
197 | 196 | // Switch to edit question screen.
|
198 | 197 | $action = 'question';
|
|
400 | 399 | if ($action == "confirmdelquestionparent") {
|
401 | 400 | $strnum = get_string('position', 'questionnaire');
|
402 | 401 | $qid = key($qformdata->removebutton);
|
403 |
| - // Show the dependencies and inform about the dependencies to be removed. |
404 |
| - // Split dependencies in direct and indirect ones to separate for the confirm-dialogue. Only direct ones will be deleted. |
405 |
| - // List direct dependencies. |
406 |
| - $msg .= $questionnaire->renderer->dependency_warnings($haschildren->directs, 'directwarnings', $strnum); |
407 |
| - // List indirect dependencies. |
408 |
| - $msg .= $questionnaire->renderer->dependency_warnings($haschildren->indirects, 'indirectwarnings', $strnum); |
| 402 | + if ($dependants) { |
| 403 | + // Show the dependencies and inform about the dependencies to be removed. |
| 404 | + // Split dependencies in direct and indirect ones to separate for the confirm-dialogue. Only direct ones will be deleted. |
| 405 | + // List direct dependencies. |
| 406 | + $msg .= $questionnaire->renderer->dependency_warnings($dependants->directs, 'directwarnings', $strnum); |
| 407 | + // List indirect dependencies. |
| 408 | + $msg .= $questionnaire->renderer->dependency_warnings($dependants->indirects, 'indirectwarnings', $strnum); |
| 409 | + } |
409 | 410 | }
|
410 | 411 | $questionnaire->page->add_to_page('formarea', $questionnaire->renderer->confirm($msg, $buttonyes, $buttonno));
|
411 | 412 |
|
|
0 commit comments