Beispiel #1
0
 public function action_edit($id = null)
 {
     $where = ['id' => $id];
     if (Model_User::is_current_user('teacher')) {
         $where['subject.user_id'] = Auth::get('id');
     }
     if (Input::post('is_institutional') == 1) {
         $_POST['subject_id'] = Config::get('no_subject');
     }
     $activity = Model_Activity::find('first', ['where' => $where, 'related' => ['subject']]);
     if (empty($activity)) {
         Session::set_flash('error', 'Activity does not exist.');
         Response::redirect('site/activities');
     }
     $activity->date = Date::forge($activity->date)->format('mysql', true);
     $activity->end_date = Date::forge($activity->end_date)->format('mysql', true);
     $val = Model_Activity::validate('edit', Input::post('is_wholeday'));
     if (Input::post('end_date')) {
         $_POST['end_date'] = Input::post('end_date') . ':00';
     }
     if (Input::post('date')) {
         if (Input::post('is_wholeday')) {
             $_POST['end_date'] = substr(Input::post('date'), 0, 11) . '23:59:59';
             $_POST['date'] = substr(Input::post('date'), 0, 11) . '00:00';
         }
         $_POST['date'] = Date::create_from_string(Input::post('date') . ':00', "mysql")->get_timestamp();
     }
     if (Input::post('end_date')) {
         $_POST['end_date'] = Date::create_from_string(Input::post('end_date'), "mysql")->get_timestamp();
     }
     if ($val->run()) {
         $activity->type = Input::post('type');
         $activity->date = Input::post('date');
         $activity->end_date = Input::post('end_date');
         $activity->activity_content = Input::post('activity_content');
         $activity->subject_id = Input::post('subject_id');
         $activity->is_institutional = Input::post('is_institutional');
         if ($activity->save()) {
             Session::set_flash('success', e('Updated activity #' . $id));
             Response::redirect('site/activities');
         } else {
             Session::set_flash('error', e('Could not update activity #' . $id));
         }
     } else {
         if (Input::method() == 'POST') {
             $activity->type = $val->validated('type');
             $activity->date = $val->validated('date');
             $activity->end_date = $val->validated('end_date');
             $activity->activity_content = $val->validated('activity_content');
             $activity->subject_id = $val->validated('subject_id');
             $activity->is_institutional = $val->validated('is_institutional');
             Session::set_flash('error', $val->error());
         }
         $this->template->set_global('activity', $activity, false);
     }
     if (Input::post('date')) {
         $_POST['date'] = Date::forge(Input::post('date'))->format('mysql', true);
     }
     if (Input::post('end_date')) {
         $_POST['end_date'] = Date::forge(Input::post('end_date'))->format('mysql', true);
     }
     $this->template->title = "Activities";
     $this->template->content = View::forge('site/activities/edit');
 }