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'); }