Stats->find(); foreach ($stats as $stat) { $connex_nb_tot += $stat->connex_nb; $connex_dur_tot_tot += $stat->connex_dur_tot; } $connex_nb_year_avg = $connex_nb_tot / $stats->count(); $connex_dur_tot_avg = round($connex_dur_tot_tot / $connex_nb_tot); $this->set(compact('connex_nb_year_avg', 'connex_dur_tot_avg')); $sortWhitelist = [ 'year' => 'year', 'user_id' => 'Users.nom', 'last_login_time' => 'last_login_time', 'last_connex_dur' => 'last_connex_dur', 'last_logout_time' => 'last_logout_time', 'connex_dur_tot' => 'connex_dur_tot', 'connex_nb' => 'connex_nb', //'connexDurAvg' => 'connexDurAvg', ]; $this->index_generic( 'statistiques de connexion', [ 'year'=>['nice_name'=>'Année'], 'user_id'=>[ //'nice_name'=>'Utilisateur', 'contained_entity_name'=>'user', 'controller_name'=>'Users'], 'last_login_time' => [], 'last_connex_dur'=>[ 'nice_name'=>'Last connexion duration (h)', 'f'=>'getHourMnSecForDuration'], 'last_logout_time'=>[], 'connex_dur_tot'=>[ 'nice_name'=>"Temps connexion cumulé (h)", 'f'=>'getHourMnSecForDuration'], 'connex_nb'=>['nice_name'=>"Nb connexions"], 'connexDurAvg'=>[ 'nice_name'=>"Durée connexion moyenne (sur 1 an)", 'f'=>'getHourMnSecForDuration'] ], ['Users'], false, false, ['last_login_time' => 'desc'], [], $sortWhitelist ); /* $this->paginate = [ 'contain' => ['Users'] ]; $stats = $this->paginate($this->Stats)->sortBy('last_login_time'); $this->set(compact('stats')); */ } /** * View method * * @param string|null $id Stat id. * @return \Cake\Http\Response|null * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ //public function view($id = null) public function view($year=null,$user_id=null) { $id = [$year,$user_id]; $stat = $this->Stats->get($id, [ 'contain' => ['Users'] ]); $this->set('stat', $stat); } /** * Add method * * @return \Cake\Http\Response|null Redirects on successful add, renders view otherwise. */ public function add() { $stat = $this->Stats->newEntity(); if ($this->request->is('post')) { $stat = $this->Stats->patchEntity($stat, $this->request->getData()); if ($this->Stats->save($stat)) { $this->Flash->success(__('The stat has been saved.')); return $this->redirect(['action' => 'index']); } $this->Flash->error(__('The stat could not be saved. Please, try again.')); } $users = $this->Stats->Users->find('list', ['limit' => 200]); $this->set(compact('stat', 'users')); } /** * Edit method * * @param string|null $id Stat id. * @return \Cake\Http\Response|null Redirects on successful edit, renders view otherwise. * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ //public function edit($id = null) public function edit($year=null,$user_id=null) { $id = [$year,$user_id]; $stat = $this->Stats->get($id, [ 'contain' => [] ]); if ($this->request->is(['patch', 'post', 'put'])) { $stat = $this->Stats->patchEntity($stat, $this->request->getData()); if ($this->Stats->save($stat)) { $this->Flash->success(__('The stat has been saved.')); return $this->redirect(['action' => 'index']); } $this->Flash->error(__('The stat could not be saved. Please, try again.')); } $users = $this->Stats->Users->find('list', ['limit' => 200]); $this->set(compact('stat', 'users')); } /** * Delete method * * @param string|null $id Stat id. * @return \Cake\Http\Response|null Redirects to index. * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function delete($year=null,$user_id=null) //public function delete($id = null) { $id = [$year,$user_id]; $this->delete_generic($id); /* $this->request->allowMethod(['post', 'delete']); $stat = $this->Stats->get($id); if ($this->Stats->delete($stat)) { $this->Flash->success(__('The stat has been deleted.')); } else { $this->Flash->error(__('The stat could not be deleted. Please, try again.')); } return $this->redirect(['action' => 'index']); */ } }