From 760f718f6ac71932c259d7e62cfe4b0b5b5f6709 Mon Sep 17 00:00:00 2001 From: Rogier Neeleman Date: Thu, 31 Mar 2016 23:02:14 +0200 Subject: [PATCH] Dashboard view with progress --- application/controllers/Dashboard.php | 58 +++++++++++++- application/models/Dashboard_model.php | 100 +++++++++++++++++++++++++ application/views/dashboard_user.php | 45 ++++++++++- 3 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 application/models/Dashboard_model.php diff --git a/application/controllers/Dashboard.php b/application/controllers/Dashboard.php index 54699e2..12fce73 100644 --- a/application/controllers/Dashboard.php +++ b/application/controllers/Dashboard.php @@ -20,7 +20,8 @@ class Dashboard extends CI_Controller if ($this->session->admin == '1' OR $this->session->superadmin == '1') { redirect(base_url('/dashboard/admin')); } else { - redirect(base_url('/dashboard/user')); + redirect(base_url('/dashboard/admin')); + // redirect(base_url('/dashboard/user')); } } @@ -28,11 +29,57 @@ class Dashboard extends CI_Controller { $data['page'] = 'home'; + // Load model + // Totaal bar + $this->load->model('Dashboard_model'); + $vragen = $this->Dashboard_model->get_total_vragen(); + $antwoorden = $this->Dashboard_model->get_total_gedaan(); + + $data['gedaan'] = round(($antwoorden/$vragen)*100); + + // Per lijst + $subgroepen = $this->Dashboard_model->get_subgroepen(); + $lijsten = $this->Dashboard_model->get_lijsten(); + + foreach ($lijsten as $lijst) + { + $beantwoord = 0; + $bardata[$lijst['id']]['naam'] = $lijst['naam']; + $vragen = $this->Dashboard_model->get_vragen($lijst['id']); + foreach ($vragen as $vraag) + { + $aantal = $this->Dashboard_model->get_antwoorden($vraag['id']); + $beantwoord = $beantwoord + $aantal; + } + $bardata[$lijst['id']]['percentage'] = (($beantwoord)/($subgroepen*count($vragen)))*100; + } + + $data['bardata'] = $bardata; + + $barok = 0; + $barnok = 0; + $barbezig = 0; + + foreach ($bardata as $bar) + { + if ($bar['percentage'] == 100) { + $barok = $barok + 1; + } elseif ($bar['percentage'] == 0) { + $barnok = $barnok + 1; + } else { + $barbezig = $barbezig + 1; + } + } + + $data['bar']['gedaan'] = round(($barok/($barok + $barnok + $barbezig))*100); + $data['bar']['bezig'] = round(($barbezig/($barok + $barnok + $barbezig))*100); + $data['bar']['doen'] = 100-$data['bar']['gedaan']-$data['bar']['bezig']; + // Header $this->load->view('header', $data); // login page - //$this->load->view('dashboard_user', $data); + $this->load->view('dashboard_user', $data); // Footer $this->load->view('footer'); @@ -42,6 +89,13 @@ class Dashboard extends CI_Controller { $data['page'] = 'home'; + // Load model + $this->load->model('Dashboard_model'); + $vragen = $this->Dashboard_model->get_total_vragen(); + $antwoorden = $this->Dashboard_model->get_total_gedaan(); + + $data['gedaan'] = round(($antwoorden/$vragen)*100); + // Header $this->load->view('header', $data); diff --git a/application/models/Dashboard_model.php b/application/models/Dashboard_model.php new file mode 100644 index 0000000..bc08082 --- /dev/null +++ b/application/models/Dashboard_model.php @@ -0,0 +1,100 @@ +db->select('COUNT(*) as antwoord'); + $this->db->from('vragen'); + $this->db->where('regioid', $this->session->regio); + $this->db->where('jaar', date('Y')); + + $query = $this->db->get(); + + $vragen = $query->row()->antwoord; + + $this->db->select('COUNT(*) as antwoord'); + $this->db->from('subgroep'); + $this->db->where('regioid', $this->session->regio); + $this->db->where('jaar', date('Y')); + + $query = $this->db->get(); + + $subgroepen = $query->row()->antwoord; + + return $vragen*$subgroepen; + } + + public function get_total_gedaan() + { + $this->db->select('COUNT(*) as antwoord'); + $this->db->from('resultaat'); + $this->db->where('regioid', $this->session->regio); + //$this->db->where('jaar', date('Y')); + + $query = $this->db->get(); + + return $query->row()->antwoord; + } + + public function get_subgroepen() + { + $this->db->select('COUNT(*) as antwoord'); + $this->db->from('subgroep'); + $this->db->where('regioid', $this->session->regio); + $this->db->where('jaar', date('Y')); + + $query = $this->db->get(); + + return $query->row()->antwoord; + } + + public function get_lijsten() + { + $this->db->select('id, naam'); + $this->db->from('lijst'); + $this->db->where('jaar', date('Y')); + $this->db->where('regioid', $this->session->regio); + $this->db->order_by('naam', 'ASC'); + + $query = $this->db->get(); + + return $query->result_array(); + } + + public function get_vragen($lijstid) + { + $this->db->select('id'); + $this->db->from('vragen'); + $this->db->where('regioid', $this->session->regio); + $this->db->where('jaar', date('Y')); + $this->db->where('lijstid', $lijstid); + + $query = $this->db->get(); + + return $query->result_array(); + } + + public function get_antwoorden($vraagid) + { + $this->db->select('COUNT(*) as antwoord'); + $this->db->from('resultaat'); + $this->db->where('regioid', $this->session->regio); + //$this->db->where('jaar', date('Y')); + $this->db->where('vraagid', $vraagid); + + $query = $this->db->get(); + + return $query->row()->antwoord; + } +} \ No newline at end of file diff --git a/application/views/dashboard_user.php b/application/views/dashboard_user.php index e0feaaf..bfda7e8 100644 --- a/application/views/dashboard_user.php +++ b/application/views/dashboard_user.php @@ -1,5 +1,48 @@

- Welkom bij het score systeem. Maak een keuze. +

Totalen
+ Er is op dit moment % van de beoordelingen beantwoord.

+
+
+ % Gedaan +
+
+ + Er is op dit moment van de lijsten % helemaal gedaan, + % is gedeeltelijk gedaan en + % moet nog gedaan worden.

+
+
+ % Gedaan +
+
+ % Nog bezig +
+
+ % Te doen +
+
+ + +

Per onderdeel + + +

+ +

+
+ % Complete +
+
+ +
+
+ % Complete +
+
+ +

+ +

\ No newline at end of file