/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $countQuery = Training::find()->select('COUNT(*)')->where('`category_id` = `c`.`id`')->createCommand()->sql;
     $query = TrainingCategory::find()->from(['c' => self::tableName()])->select(['c.*', 'trainingsCount' => "({$countQuery})"]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['attributes' => ['name', 'trainingsCount'], 'defaultOrder' => ['name' => SORT_ASC]]]);
     $this->load($params);
     if (!$this->validate()) {
         return $dataProvider;
     }
     $query->andFilterWhere([]);
     $query->andFilterWhere(['like', 'c.name', $this->name]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $this->addParam('categoryId', $params);
     $query = Training::find()->from(['t' => self::tableName()])->joinWith('category');
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['attributes' => ['name', 'calories', 'categoryName' => ['asc' => ['c.name' => SORT_ASC], 'desc' => ['c.name' => SORT_DESC]]], 'defaultOrder' => ['name' => SORT_ASC]]]);
     $this->load($params);
     if (!$this->validate()) {
         return $dataProvider;
     }
     $query->andFilterWhere(['t.id' => $this->id, 't.calories' => $this->calories, 't.category_id' => $this->categoryId]);
     $query->andFilterWhere(['like', 't.name', $this->name])->andFilterWhere(['like', 't.description', $this->description])->andFilterWhere(['like', 'c.name', $this->categoryName]);
     return $dataProvider;
 }
Пример #3
0
 public function changeTraining(Request $request)
 {
     $rules = array('promotion' => 'required', 'select-students' => 'required');
     $validator = \Validator::make(\Input::all(), $rules);
     if ($validator->fails()) {
         return redirect()->back()->withErrors($validator);
     }
     $t = Training::find($request->input('promotion'));
     foreach ($request->input('select-students') as $sid) {
         $s = User::find($sid);
         $s->trainings()->detach();
         $s->trainings()->save($t);
     }
     return redirect()->back();
 }
 public static function saveQuickVisits($request)
 {
     if (!Training::find($request->get('training_id'))) {
         return;
     }
     self::removeVisits($request->get('training_id'));
     foreach ($request->all() as $key => $input) {
         if (strpos($key, 'player_') !== false && $input > 0) {
             $id = str_replace('player_', '', $key);
             if (Player::find($id)) {
                 self::addVisit($request->get('training_id'), $id, $input);
             }
         }
     }
 }
Пример #5
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $rules = array('title' => 'required', 'calendar' => 'required');
     $validator = \Validator::make(\Input::all(), $rules);
     if ($validator->fails()) {
         return redirect()->back()->withInput()->withErrors($validator);
     }
     if (!Training::find($id)) {
         return redirect()->back()->withInput()->withErrors(['News introuvable']);
     }
     $t = Training::find($id);
     $t->title = $request->input('title');
     $t->calendar_id = $request->input('calendar');
     $t->save();
     return redirect('/admin/training/index');
 }
Пример #6
0
 /**
  * Handle the event.
  *
  * @param  TrainingVisitChange $event
  * @return void
  */
 public function handle(TrainingVisitChange $event)
 {
     $player = Player::find($event->playerId);
     $training = Training::find($event->trainingId);
     $users = \App\Models\User::whereNotNull('email')->where('email', '!=', '')->get();
     $status = $event->visit;
     $visitList = TrainingVisit::getVisitList();
     $subject = trans('email.training.subject') . ' ' . str_limit($player->name, 10) . ' ' . str_limit($training->name, 10) . ' ' . $visitList[$status];
     Mail::send('emails.training_visit', ['player' => $player, 'training' => $training, 'status' => $status], function ($m) use($users, $subject) {
         foreach ($users as $user) {
             if ($user->isAdmin()) {
                 $m->to($user->email);
             }
         }
         $m->subject($subject);
     });
 }