1<?php
2/** @var action_plugin_bez $this */
3
4use \dokuwiki\plugin\bez;
5
6//if we don't have a token, generate a new one and redirect
7if (!isset($_GET['t']) && $this->model->authentication_tokenFactory->can_create_token()) {
8    $token = $this->model->authentication_tokenFactory->create_token($this->id());
9    header('Location: ' .
10           wl($this->id('8d', 'id', $this->get_param('id')), array('t' => $token), false, '&'));
11}
12
13if ($this->model->get_level() < BEZ_AUTH_VIEWER) {
14    throw new bez\meta\PermissionDeniedException();
15}
16
17/** @var bez\mdl\Thread $thread */
18$thread = $this->model->threadFactory->get_one($this->get_param('id'));
19$this->tpl->set('thread', $thread);
20$this->tpl->set('causes',
21        $this->model->thread_commentFactory->
22        get_from_thread($thread, array('type' => 'cause'))->fetchAll());
23$this->tpl->set('risks',
24    $this->model->thread_commentFactory->
25    get_from_thread($thread, array('type' => 'risk'))->fetchAll());
26$this->tpl->set('opportunities',
27                $this->model->thread_commentFactory->
28                get_from_thread($thread, array('type' => 'opportunity'))->fetchAll());
29$tasks = $this->model->taskFactory->get_by_type($thread);
30$this->tpl->set('8d_tasks', $tasks);
31
32$all_preventive_done = true;
33$max_preventive_close_date = null;
34foreach ($tasks['preventive'] as $preventive_action) {
35    if ($preventive_action->state != 'done') {
36        $all_preventive_done = false;
37        break;
38    }
39    $max_preventive_close_date = max($max_preventive_close_date, $preventive_action->close_date);
40}
41
42if ($all_preventive_done && $max_preventive_close_date != null) {
43    $this->tpl->set('preventive_close_date', date('Y-m-d', strtotime($max_preventive_close_date)));
44}