1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522 |
- <?php
-
- use Illuminate\Support\Facades\Input;
- use Illuminate\Support\Facades\Session;
-
- class TransformativeActionsController extends \BaseController
- {
-
- // load the Tranformative actions page
- public function editTA()
- {
- $title = "Transformative Action";
- $role = Auth::user()['role'];
- $outcomes = Outcome::orderBy('name', 'ASC')->lists('name', 'id');
-
- $schools = School::orderBy('name', 'ASC')->get();
- $criteria = Criterion::withTrashed()->orderBy('name', 'ASC')->get();
- $programs = Program::orderBy('name', 'ASC')->get();
- $user_id = auth::user()->id;
-
- switch ($role) {
- case 3:
- $program_id = DB::table('program_user')
- ->where('user_id', $user_id)
- ->select('program_id')
- ->lists('program_id');
-
- break;
-
- case 2:
- $program_id = DB::table('programs')
- ->where('school_id', Auth::user()->school_id)
- ->lists('id');
- break;
- }
- /*$program_id = DB::table('program_user')
- ->where('user_id', $user_id)
- ->select('program_id')
- ->get();
- $program_id = $program_id[0]->program_id; */ //program id 15 debido al user 8
- $outcomes = Outcome::orderBy('name', 'ASC')
- ->where('deactivation_date', '=', '0000-00-00')
- ->orWhereNull('deactivation_date')
- ->get();
- $objectives = array();
- $types = DB::table('transformative_actions')
- ->select('type_of_TA')
- ->where('type_of_TA', '<>', '')
- ->groupBy('type_of_TA')
- ->get();
- // if user is program coordinator
-
- //1 edit panel: load the TA that
- // are custom ('transformative_actions.by_professor' == 0)
- // were approved in past ('transformative_actions.is_custom' == 1)
- $ta_edit_panel = DB::table('transformative_actions')
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->orderBy('at_text', 'ASC')
- ->get();
- //2 approve panel: load TAs that
- // can be approved ('transformative_actions.by_professor' == 1)
- $ta_approval_panel = DB::table('transformative_actions')
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->orderBy('at_text', 'ASC')
- ->get();
- //2.1 approve panel: load the filter options.
- // the "->where()" should be the same from $ta_approval_panel,
- // but with aditional joins and different select
- //
- // get the names of the professors
- $professor_filter_approvePanel = DB::table('transformative_actions')
- ->join('users', 'users.id', '=', 'transformative_actions.user_id')
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('users.*')
- ->groupBy('transformative_actions.user_id')
- ->orderBy('users.first_name', 'ASC')
- ->get();
- // get the courses from asociated with a TA
- $course_filter_approvePanel = DB::table('ta_course')
- ->join('transformative_actions', 'transformative_actions.id', '=', 'ta_course.ta_id')
- ->join('courses', function ($join) {
- $join->on('courses.number', '=', 'ta_course.course_number');
- $join->on('courses.code', '=', 'ta_course.course_code');
- })
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('courses.*')
- ->groupBy('courses.number', 'courses.code', 'courses.name')
- ->orderBy('courses.name', 'ASC')
- ->orderBy('courses.code', 'ASC')
- ->get();
- // get the outcome asociated with a TA
- $outcome_filter_approvePanel = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->join('outcomes', 'outcomes.id', '=', 'objective_outcome.outcome_id')
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('outcomes.*')
- ->groupBy('outcomes.id')
- ->orderBy('outcomes.name', 'ASC')
- ->get();
- //3 edit panel: load the filter options.
- // the "->where()" should be the same from $ta_edit_panel,
- // but with aditional joins and different select
- //
- $professor_filter_editPanel = DB::table('transformative_actions')
- ->join('users', 'users.id', '=', 'transformative_actions.user_id')
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->select('users.*')
- ->groupBy('transformative_actions.user_id')
- ->orderBy('users.first_name', 'ASC')
- ->get();
- $course_filter_editPanel = DB::table('ta_course')
- ->join('transformative_actions', 'transformative_actions.id', '=', 'ta_course.ta_id')
- ->join('courses', function ($join) {
- $join->on('courses.number', '=', 'ta_course.course_number');
- $join->on('courses.code', '=', 'ta_course.course_code');
- })
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->select('courses.*')
- ->groupBy('courses.number', 'courses.code', 'courses.name')
- ->orderBy('courses.name', 'ASC')
- ->orderBy('courses.code', 'ASC')
- ->get();
- $outcome_filter_editPanel = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->join('outcomes', 'outcomes.id', '=', 'objective_outcome.outcome_id')
- ->where('transformative_actions.is_custom', 1)
- ->whereIn('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->select('outcomes.*')
- ->groupBy('outcomes.id')
- ->orderBy('outcomes.name', 'ASC')
- ->get();
- // 4 create panel: search all courses
- $courses_create = DB::table('courses')
- ->whereIn('courses.program_id', $program_id)
- ->select('courses.*')
- ->groupBy('courses.number', 'courses.code', 'courses.name')
- ->orderBy('courses.code', 'ASC')
- ->orderBy('courses.number', 'ASC')
- ->get();
- /*
- // if user is profesor
- elseif ($role == 4) {
- // 1 the user can only edit TA that need approval and has been submited by the same user
- $ta_edit_panel = DB::table('transformative_actions')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.user_id', Auth::user()->id)
- ->where('transformative_actions.by_professor', 1)
- ->select('transformative_actions.*')
- ->orderBy('at_text', 'ASC')
- ->get();
- // 2 approve panel: dont load TA since professors cant approve them
- $ta_approval_panel = array();
- // 3 edit panel: load professor filter for his courses
- $professor_filter_editPanel = array();
- $course_filter_editPanel = DB::table('ta_course')
- ->join('transformative_actions', 'transformative_actions.id', '=', 'ta_course.ta_id')
- ->join('courses', 'courses.id', '=', 'ta_course.course_id')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.user_id', Auth::user()->id)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('courses.*')
- ->groupBy('courses.name', 'courses.code')
- ->orderBy('courses.name', 'ASC')
- ->orderBy('courses.code', 'ASC')
- ->get();
- $outcome_filter_editPanel = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('criterion_objective_outcome', 'criterion_objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->join('outcomes', 'outcomes.id', '=', 'criterion_objective_outcome.outcome_id')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.user_id', Auth::user()->id)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('outcomes.*')
- ->groupBy('outcomes.id')
- ->orderBy('outcomes.name', 'ASC')
- ->get();
- // these arent used by professors
- $professor_filter_approvePanel = array();
- $course_filter_approvePanel = array();
- $outcome_filter_approvePanel = array();
-
- // 4 create panel: search courses given by the professor
- $courses_create = DB::table('courses')
- ->where('courses.program_id', $program_id)
- ->where('courses.user_id', Auth::user()->id)
- ->select('courses.*')
- ->groupBy('courses.name', 'courses.code')
- ->orderBy('courses.name', 'ASC')
- ->orderBy('courses.code', 'ASC')
- ->get();
- }
- */
- return View::make('local.managers.admins.transformativeAction', compact(
- 'title',
- 'role',
- 'types',
- 'outcomes',
- 'schools',
- 'criteria',
- 'programs',
- 'outcomes',
- 'objectives',
- 'ta_edit_panel',
- 'ta_approval_panel',
- 'courses_create',
- 'professor_filter_approvePanel',
- 'course_filter_approvePanel',
- 'outcome_filter_approvePanel',
- 'professor_filter_editPanel',
- 'outcome_filter_editPanel',
- 'course_filter_editPanel'
- ));
- }
-
- private function cleanInput()
- {
- $clean_input = array();
-
-
- $trimmed = trim(preg_replace('/\t+/', '', Input::get('text')));
-
- Log::info('trimmed 1 -->' . $trimmed . '<--');
-
- // if ($trimmed == '') {
- // $trimmed = NULL;
- // } else {
- // $trimmed = json_encode(preg_split('/\r\n/', $trimmed));
- // }
-
- Log::info('trimmed 2 -->' . $trimmed . '<--');
-
-
- $clean_input['text'] = $trimmed;
-
- //////
- $trimmed = trim(preg_replace('/\t+/', '', Input::get('description')));
-
- Log::info('trimmed 3 -->' . $trimmed . '<--');
-
- // if ($trimmed == '') {
- // $trimmed = NULL;
- // } else {
- // $trimmed = json_encode(preg_split('/\r\n/', $trimmed));
- // }
-
- Log::info('trimmed 4 -->' . $trimmed . '<--');
-
-
- $clean_input['description'] = $trimmed;
-
-
-
- $clean_input['objectiveid'] = Input::get('objectiveid');
- $clean_input['courseid'] = Input::get('courseid');
- $clean_input['approval'] = Input::get('approval');
- $clean_input['type'] = Input::get('type_of_ta');
- $clean_input['ta_id'] = Input::get('ta_id');
- $clean_input['new_type'] = Input::get('new_type');
-
- return $clean_input;
- }
-
- private function makeValidator($clean_input)
- {
-
- /** Validation rules */
- return Validator::make(
- array(
- 'text' => $clean_input['text'],
- 'description' => $clean_input['description'],
- 'objectiveid' => $clean_input['objectiveid'],
- 'courseid' => $clean_input['courseid'],
- 'approval' => $clean_input['approval'],
- 'ta_id' => $clean_input['ta_id'],
- 'type_of_ta' => $clean_input['type'],
- ),
- array(
- 'text' => 'required|string',
- 'description' => 'required|string',
- 'objectiveid' => 'required|array',
- 'courseid' => 'required|string',
- 'approval' => 'integer',
- 'ta_id' => 'integer',
- 'type_of_ta' => 'required|string'
- )
- );
- }
-
-
- // Create a Transformative Action
- public function createTA()
- {
- $clean_input = $this->cleanInput();
-
- /** Validation rules */
- $validator = $this->makeValidator($clean_input);
-
- /** If validation fails */
- if ($validator->fails()) {
- /** Prepare error message */
- $message = '<p>Error(s) creating a new Transformative Action:</p><ul>';
-
- foreach ($validator->messages()->all('<li>:message</li>') as $validationError) {
- $message .= $validationError;
- }
-
- $message .= '</ul>';
-
- /** Send error message and old data */
- Session::flash('status', 'danger');
- Session::flash('message', $message);
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- } else {
-
- $user_id = Auth::user()->id;
-
-
- /*$program_id = DB::table('program_user')
- ->where('user_id', $user_id)
- ->select('program_id')
- ->get();
- $program_id = $program_id[0]->program_id;*/
- $role = Auth::user()['role'];
- $by_professor = 1;
- if ($role != 4) {
- $by_professor = 0;
- }
- Log::info($clean_input['courseid']);
- // $by_professor = $clean_input['approval'];
-
- $parentesis = array('(', ')');
- $course_code_number = str_replace($parentesis, '', $clean_input['courseid']);
-
- $course_code_number = explode(',', $course_code_number);
-
- $program_id = DB::table('courses')
- ->where('code', $course_code_number[0])
- ->where('number', $course_code_number[1])
- ->select('program_id')
- ->first()->program_id;
-
-
- $current_timestamp = date('Y/m/d H:i:s', time());
- if ($clean_input['new_type']) $type = $clean_input['new_type'];
- else $type = $clean_input['type'];
- // insert the TA
- $ta_id = DB::table('transformative_actions')->insertGetId(
- array(
- 'at_text' => $clean_input['text'],
- 'description' => $clean_input['description'],
- 'is_custom' => 1,
- 'user_id' => $user_id,
- 'program_id' => $program_id,
- 'created_at' => $current_timestamp,
- 'by_professor' => $by_professor,
- 'type_of_TA' => $type
- )
- );
-
- //
- // // insert the multiple TA_objective_program
- foreach ($clean_input['objectiveid'] as $objective_id) {
- DB::table('transformative_objective')->insert(
- array(
- 'ta_id' => $ta_id,
- 'objective_id' => $objective_id,
-
-
- )
- );
- }
-
- //
- // // insert the multiple TA_course
- DB::table('ta_course')->insert(
- array(
- 'ta_id' => $ta_id,
- 'course_number' => $course_code_number[1],
- 'course_code' => $course_code_number[0],
-
- )
- );
-
-
- Session::flash('status', 'success');
- Session::flash('message', 'Transformative Action created: "' . $clean_input['text'] . '".');
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
- }
-
- // apporve a Transformative Action
- public function approveTA()
- {
- $role = Auth::user()['role'];
- if ($role != 3) {
- $message = 'Only Program Coordinators can approve a TA';
- Session::flash('status', 'danger');
- Session::flash('message', $message);
- return Redirect::to('transformativeAction')->withInput();
- }
-
- $ta_id = Input::get('ta_id');
- $text = Input::get('at_text');
-
- if ($ta_id == 0) {
- $message = 'Please select a Transformative Action</p>';
-
- Session::flash('status', 'danger');
- Session::flash('message', $message);
-
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
-
- $current_timestamp = date('Y/m/d H:i:s', time());
-
- if (Input::get('new_type')) {
- $type = Input::get('new_type');
- } else {
- $type = Input::get('type_of_ta');
- }
-
- // edit the TA
- DB::table('transformative_actions')
- ->where('id', $ta_id)
- ->update([
- 'by_professor' => 0,
- 'updated_at' => $current_timestamp,
- 'type_of_TA' => $type
- ]);
-
- Session::flash('status', 'success');
- Session::flash('message', 'Approved the Transformative Action: "' . $text . '".');
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
-
-
- // update a Tranformative Action
- public function updateTA()
- {
- $clean_input = $this->cleanInput();
-
- /** Validation rules */
- $validator = $this->makeValidator($clean_input);
-
- /** If validation fails */
- if ($validator->fails()) {
- /** Prepare error message */
- $message = 'Error(s) updating the Transformative Action: <ul>';
-
- foreach ($validator->messages()->all('<li>:message</li>') as $validationError) {
- $message .= $validationError;
- }
-
- $message .= '</ul>';
-
- /** Send error message and old data */
- Session::flash('status', 'danger');
- Session::flash('message', $message);
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- } else {
- $parentesis = array('(', ')');
- $course_code_number = str_replace($parentesis, '', $clean_input['courseid']);
-
- $course_code_number = explode(',', $course_code_number);
-
- $program_id = DB::table('courses')
- ->where('code', $course_code_number[0])
- ->where('number', $course_code_number[1])
- ->select('program_id')
- ->first()->program_id;
-
- $user_id = auth::user()->id;
- /* $program_id = DB::table('program_user')
- ->where('user_id', $user_id)
- ->select('program_id')
- ->get();
- $program_id = $program_id[0]->program_id;*/
- $role = Auth::user()['role'];
- $by_professor = $clean_input['approval'];
- if ($role == 4) {
- $by_professor = 1;
- }
-
- // $by_professor = $clean_input['approval'];
-
- if ($clean_input['new_type']) $type = $clean_input['new_type'];
- else $type = $clean_input['type'];
-
- $current_timestamp = date('Y/m/d H:i:s', time());
- // edit the TA
- DB::table('transformative_actions')
- ->where('id', $clean_input['ta_id'])
- ->update([
- 'by_professor' => $by_professor,
- 'at_text' => $clean_input['text'],
- 'description' => $clean_input['description'],
- 'updated_at' => $current_timestamp,
- 'type_of_TA' => $type
-
- ]);
-
-
- $ta_id = $clean_input['ta_id'];
- $new_objective_id = $clean_input['objectiveid'];
- $old_objective_id = DB::table('transformative_objective')
- ->where('ta_id', $ta_id)
- ->select('objective_id')
- ->lists('objective_id');
-
- //delete existing objective_id if it isnt in new_ids array
- foreach ($old_objective_id as $old_id) {
- if (in_array($old_id, $new_objective_id)) {
- //do nothing if a new id is already in atble
- } else {
- //if old id not in new id, delete
- DB::table('transformative_objective')
- ->where('ta_id', $ta_id)
- ->where('objective_id', $old_id)
- ->delete();
- }
- }
-
- //
- foreach ($new_objective_id as $new_id) {
- $result = DB::table('transformative_objective')
- ->where('objective_id', $new_id)
- ->select('objective_id')
- ->lists('objective_id');
-
- if (count($result) == 0) {
- //if the new_id does not exists, do nothing
- DB::table('transformative_objective')->insert(
- array(
- 'ta_id' => $ta_id,
- 'objective_id' => $new_id,
- // 'created_at' => $current_timestamp,
- )
- );
- } else {
- //if the new_id already exists, do nothing
- }
- }
-
-
-
-
-
- DB::update(
- "UPDATE `ta_course` set `course_number` = '{$course_code_number[1]}', `course_code` = '{$course_code_number[0]}' where ta_id = {$ta_id}"
- );
-
- /*$new_course_id = $clean_input['courseid'];
-
- $old_course_id = DB::table('ta_course')
- ->where('ta_id', $ta_id)
- ->select('course_id')
- ->lists('course_id');
-
- //delete existing course_id if it isnt in new_ids array
- foreach ($old_course_id as $old_id) {
- if (in_array($old_id, $new_course_id)) {
- //do nothing if a new id is already in atble
- } else {
- //if old id not in new id, delete
- DB::table('ta_course')
- ->where('ta_id', $ta_id)
- ->where('course_id', $old_id)
- ->delete();
- }
- }
- //add course_id if it isnt already inserted
- foreach ($new_course_id as $new_id) {
- $result = DB::table('ta_course')
- ->where('ta_id', $ta_id)
- ->where('course_id', $new_id)
- ->select('course_id')
- ->lists('course_id');
-
- if (count($result) == 0) {
- //if the new_id does not exists, do nothing
- DB::table('ta_course')->insert(
- array(
- 'ta_id' => $ta_id,
- 'course_id' => $new_id,
- )
- );
- } else {
- //if the new_id already exists, do nothing
- }
- } */
-
- Session::flash('status', 'success');
- Session::flash('message', 'Updated Transformative Action: "' . $clean_input['text'] . '".');
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
- }
-
- // delete a Transformative Action
- public function deleteTA()
- {
- $ta_id = array(Input::get('ta_id'));
-
- // si envia id 0, el backend se queja en la linea: $ta = $ta[0];
- // nunca deberia ocurrir, pero es un safity measure.
- if ($ta_id == 0) {
- $message = 'Please select a Transformative Action</p>';
-
- Session::flash('status', 'danger');
- Session::flash('message', $message);
-
- //$role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
-
- $ta = DB::table('transformative_actions')
- ->where('transformative_actions.is_custom', 1)
- ->where('id', $ta_id)
- ->get();
- $ta = $ta[0];
-
- $used = DB::table('annual_plan_transformative')
- ->where('id', $ta_id)
- ->get();
-
- $recommended = $ta->by_professor;
- // the TA can only be deleted if error if the TA is not currently as "Recommended"
- // and isnt used in an anual plan
- if ($recommended == 1 && count($used) == 0) {
- // delete the TA if it qualifies
- DB::delete("delete from transformative_actions where id = ?", $ta_id);
-
- $name = $ta->at_text;
-
- $message = 'The Transformative Action has been deleted:</p><ul>';
- $message .= '<li> ' . $name . ' </li>';
- $message .= '</ul>';
-
- Session::flash('status', 'success');
- Session::flash('message', $message);
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
-
-
- $message = 'Transformative Actions can only be deleted if:</p><ul>';
- $message .= '<li> It has a status of "Recommended"</li>';
- $message .= '<li> It is not currently used in a plan</li>';
- $message .= '</ul>';
-
- Session::flash('status', 'danger');
- Session::flash('message', $message);
-
- $role = Auth::user()['role'];
- return Redirect::to('transformativeAction')->withInput();
- }
-
-
-
- // load the information of a Tranformative Action when its
- // selected on the approve or edit panel
- public function selectTA()
- {
- $ta_id = Input::get("ta_id");
- $user_role = Auth::user()->role;
- switch ($user_role) {
- case 1:
-
- $program_ids = DB::table('programs')->lists('id');
- break;
- case 2:
- $user_school = Auth::user()->school_id;
- $program_ids = DB::table('programs')
- ->where('school_id', $user_school)
- ->lists('id');
- break;
-
- case 3:
- $user_id = Auth::user()->id;
- $program_ids = DB::table('program_user')
- ->where('user_id', $user_id)
- ->select('program_id')
- ->lists('program_id');
- break;
- }
- //$program_id = DB::table('program_user')
- // ->where('user_id', $user_id)
- // ->select('program_id')
- // ->get();
- //$program_id = $program_id[0]->program_id;
-
- $objectives = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objectives', 'objectives.id', '=', 'transformative_objective.objective_id')
- ->where('transformative_actions.id', $ta_id)
- ->where('objectives.id', '<>', 0)
- ->select('objectives.text as text', 'objectives.id as id')
- ->orderBy('objectives.text', 'ASC')
- ->get();
- $objective_ids = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objectives', 'objectives.id', '=', 'transformative_objective.objective_id')
- ->where('transformative_actions.id', $ta_id)
- ->where('objectives.id', '<>', 0)
- ->select('objectives.text as text', 'objectives.id as id')
- ->orderBy('objectives.text', 'ASC')
- ->lists('objectives.id');
- Log::info($ta_id);
-
- //$an_objective = $objectives[0]->id;
- $outcome_ids = DB::table('objective_outcome')
- ->whereIn('objective_outcome.objective_id', $objective_ids)
- ->select('objective_outcome.outcome_id')
- ->lists('outcome_id');
- //$outcome_id = $outcome_id[0]->outcome_id;
- Log::info("outcomes");
- Log::info($outcome_ids);
- $objectives_from_outcome = DB::table('objectives')
- ->join('objective_program', 'objective_program.objective_id', '=', 'objectives.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'objectives.id')
- ->whereIn('objective_outcome.outcome_id', $outcome_ids)
- ->whereIn('objective_program.program_id', $program_ids)
- ->where('objective_outcome.objective_id', '<>', 0)
- ->orderBy('objectives.text', 'ASC')
- ->select('objectives.text as text', 'objectives.id as id')
- ->distinct()
- ->get();
-
- $selected_courses = DB::table('ta_course')
- ->join('courses', function ($join) {
- $join->on('courses.number', '=', 'ta_course.course_number');
- $join->on('courses.code', '=', 'ta_course.course_code');
- })
- ->where('ta_id', $ta_id)
- ->orderBy('courses.name', 'ASC')
- ->orderBy('courses.code', 'ASC')
- ->select('courses.*')
- ->get();
- $name = DB::table('transformative_actions')
- ->where('id', $ta_id)
- ->select('at_text as name')
- ->lists('name');
- $description = DB::table('transformative_actions')
- ->where('id', $ta_id)
- ->select('description')
- ->lists('description');
- $status = DB::table('transformative_actions')
- ->where('id', $ta_id)
- ->select('by_professor as status')
- ->lists('status');
- $status = $status[0];
- $plans_count = DB::table('annual_plan_transformative')
- ->where('trans_id', $ta_id)
- ->get();
- $plans_count = count($plans_count);
- $can_be_deleted = false;
- if ($plans_count == 0 /*&& $status == 1*/) {
- $can_be_deleted = true;
- }
- return array(
- 'objectives' => $objectives,
- 'objectives_from_outcome' => $objectives_from_outcome,
- 'selected_courses' => $selected_courses,
- 'name' => $name,
- 'description' => $description,
- 'status' => $status,
- 'can_be_deleted' => $can_be_deleted,
- 'plans_count' => $plans_count,
- );
- }
-
- // load the available objectieves from an outcome when creating a Tranformative Action
- public function objectivesFromOutcome()
- {
- $user_role = Auth::user()->role;
-
-
- switch ($user_role) {
- case 1:
-
- $program_ids = DB::table('programs')->lists('id');
- break;
-
- case 2:
- $user_school = Auth::user()->school_id;
- $program_ids = DB::table('programs')
- ->where('school_id', $user_school)
- ->lists('id');
- break;
- case 3:
- $user_id = Auth::user()->id;
- $program_ids = DB::table('program_user')
- ->where('user_id', $user_id)
- ->select('program_id')
- ->lists('program_id');
- break;
- }
-
- //$program_id = DB::table('program_user')
- // ->where('user_id', $user_id)
- // ->select('program_id')
- // ->get();
- //$program_id = $program_id[0]->program_id;
- $ta_id = Input::get("ta_id");
- $outcome_id = Input::get("outcome_id");
-
- $objectives = DB::table('objectives')
- ->join('objective_program', 'objective_program.objective_id', '=', 'objectives.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'objectives.id')
- ->where('objective_outcome.outcome_id', $outcome_id)
- ->where('objective_outcome.objective_id', '<>', 0)
- ->whereIn('objective_program.program_id', $program_ids)
- ->orderBy('objectives.text', 'ASC')
- ->select('objectives.text as text', 'objectives.id as id')
- ->distinct()
- ->get();
-
- return array(
- 'objectives' => $objectives,
- );
- }
-
- // return Transformative Actions that meet the filter criterias
- public function filterTA()
- {
- $user_id = Auth::user()->id;
- $role = Auth::user()['role'];
- $professor_id = Input::get('professor_id');
- $course_id = Input::get('course_id');
- $outcome_id = Input::get('outcome_id');
- $panel_id = Input::get('panel_id');
-
- switch ($role) {
- case 1:
- $program_id = DB::table('programs')->lists('id');
- break;
-
- case 2:
- $program_id = DB::table('programs')->where('school_id', Auth::user()->school_id)
- ->lists('id');
- break;
- case 3:
- $program_id = DB::table('program_user')
- ->where('user_id', $user_id)
- ->lists('program_id');
-
- break;
- }
-
-
- // if the user is a coordinator filtering the approvePanel
- /*if ($role == '3' && $panel_id == 'approvePanel') {
-
- // if professor isnt a desired filter, search all professors
- if ($professor_id == 0) {
- $all_ta_users = DB::table('transformative_actions')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('transformative_actions.user_id')
- ->get();
- $professor_id = array();
- foreach ($all_ta_users as $key => $user) {
- array_push($professor_id, $user->user_id);
- }
- } else {
- $professor_id = array($professor_id);
- }
- // if course isnt a desired filter, search all courses
- if ($course_id == 0) {
- $courses = DB::table('ta_course')
- ->join('transformative_actions', 'transformative_actions.id', '=', 'ta_course.ta_id')
- ->join('courses', function ($join) {
- $join->on('courses.number', '=', 'ta_course.course_number');
- $join->on('courses.code', '=', 'ta_course.course_code');
- })
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('ta_course.course_number', 'ta_course.course_code')
- ->distinct()
- ->get();
-
- $course_id = array();
- foreach ($courses as $key => $course) {
- array_push($course_id["number"], $course->course_number);
- array_push($course_id["code"], $course->code);
- }
- } else {
-
- $parentesis = array('(', ')');
- $course_code_number = str_replace($parentesis, '', $course_id);
-
- $course_code_number = explode(',', $course_code_number);
-
- $course_id = array();
- $course_id['number'] = $course_code_number[1];
- $course_id['code'] = $course_code_number[0];
- }
- // if outcome isnt a desired filter, search all outcomes
- if ($outcome_id == 0) {
- $outcomes = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->join('outcomes', 'outcomes.id', '=', 'objective_outcome.outcome_id')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('outcomes.id')
- ->groupBy('outcomes.id')
- ->get();
- $outcome_id = array();
- foreach ($outcomes as $key => $outcome) {
- array_push($outcome_id, $outcome->id);
- }
- } else {
- $outcome_id = array($outcome_id);
- }
-
- // search TA with filters
-
- $filtered_at = DB::table('transformative_actions')
- ->join('ta_course', 'ta_course.ta_id', '=', 'transformative_actions.id')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->whereIn('transformative_actions.user_id', $professor_id)
- ->whereIn('objective_outcome.outcome_id', $outcome_id)
- ->whereIn('ta_course.course_code', $course_id['code'])
- ->whereIn('ta_course.course_number', $course_id['number'])
- ->select('transformative_actions.*')
- ->groupBy('transformative_actions.id')
- ->orderBy('transformative_actions.at_text', 'ASC')
- ->get();
- return $filtered_at;
- }*/
- // if the user is a coordinator filtering the editPanel
- if ($panel_id == 'editPanel') {
-
- // if professor isnt a desired filter, search all professors
- if ($professor_id == 0) {
- $all_ta_users = DB::table('transformative_actions')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->select('transformative_actions.user_id')
- ->get();
- $professor_id = array();
- foreach ($all_ta_users as $key => $user) {
- array_push($professor_id, $user->user_id);
- }
- } else {
- $professor_id = array($professor_id);
- }
- // if course isnt a desired filter, search all courses
- if ($course_id == 0) {
- $courses = DB::table('ta_course')
- ->join('transformative_actions', 'transformative_actions.id', '=', 'ta_course.ta_id')
- ->join('courses', function ($join) {
- $join->on('courses.number', '=', 'ta_course.course_number');
- $join->on('courses.code', '=', 'ta_course.course_code');
- })
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->select('ta_course.course_number', 'ta_course.course_code')
- ->distinct()
- ->get();
-
- $course_id = array();
- foreach ($courses as $key => $course) {
- array_push($course_id["number"], $course->course_number);
- array_push($course_id["code"], $course->code);
- }
- } else {
-
- $parentesis = array('(', ')');
- $course_code_number = str_replace($parentesis, '', $course_id);
-
- $course_code_number = explode(',', $course_code_number);
-
- $course_id = array();
- $course_id['number'] = $course_code_number[1];
- $course_id['code'] = $course_code_number[0];
- }
- // if outcome isnt a desired filter, search all outcomes
- if ($outcome_id == 0) {
- $outcomes = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->join('outcomes', 'outcomes.id', '=', 'objective_outcome.outcome_id')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->select('outcomes.id')
- ->groupBy('outcomes.id')
- ->get();
- $outcome_id = array();
- foreach ($outcomes as $key => $outcome) {
- array_push($outcome_id, $outcome->id);
- }
- } else {
- $outcome_id = array($outcome_id);
- }
- Log::info($course_id);
- // search TA with filters
- $filtered_at = DB::table('transformative_actions')
- ->join('ta_course', 'ta_course.ta_id', '=', 'transformative_actions.id')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 0)
- ->whereIn('transformative_actions.user_id', $professor_id)
- ->whereIn('objective_outcome.outcome_id', $outcome_id)
- ->whereIn('ta_course.course_code', $course_id['code'])
- ->whereIn('ta_course.course_number', $course_id['number'])
- ->select('transformative_actions.*')
- ->groupBy('transformative_actions.id')
- ->orderBy('transformative_actions.at_text', 'ASC')
- ->get();
- return $filtered_at;
- }
- // if the user is a professor filtering the editPanel
- /*elseif ($role == '4' && $panel_id == 'editPanel') {
-
- // if course isnt a desired filter, search all courses
- if ($course_id == 0) {
- $courses = DB::table('ta_course')
- ->join('transformative_actions', 'transformative_actions.id', '=', 'ta_course.ta_id')
- ->join('courses', 'courses.id', '=', 'ta_course.course_id')
- ->where('transformative_actions.user_id', Auth::user()->id)
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('ta_course.course_number', 'ta_course.course_code')
- ->distinct()
- ->get();
-
- $course_id = array();
- foreach ($courses as $key => $course) {
- array_push($course_id["number"], $course->course_number);
- array_push($course_id["code"], $course->code);
- }
- } else {
-
- $parentesis = array('(', ')');
- $course_code_number = str_replace($parentesis, '', $course_id);
-
- $course_code_number = explode(',', $course_code_number);
-
- $course_id = array();
- $course_id['number'] = $course_code_number[1];
- $course_id['code'] = $course_code_number[0];
- }
- // if outcome isnt a desired filter, search all outcomes
- if ($outcome_id == 0) {
- $outcomes = DB::table('transformative_actions')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->join('outcomes', 'outcomes.id', '=', 'objective_outcome.outcome_id')
- ->where('transformative_actions.user_id', Auth::user()->id)
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->select('outcomes.id')
- ->groupBy('outcomes.id')
- ->get();
- $outcome_id = array();
- foreach ($outcomes as $key => $outcome) {
- array_push($outcome_id, $outcome->id);
- }
- } else {
- $outcome_id = array($outcome_id);
- }
-
- // search TA with filters
- $filtered_at = DB::table('transformative_actions')
- ->join('ta_course', 'ta_course.ta_id', '=', 'transformative_actions.id')
- ->join('transformative_objective', 'transformative_objective.ta_id', '=', 'transformative_actions.id')
- ->join('objective_outcome', 'objective_outcome.objective_id', '=', 'transformative_objective.objective_id')
- ->where('transformative_actions.user_id', Auth::user()->id)
- ->where('transformative_actions.is_custom', 1)
- ->where('transformative_actions.program_id', $program_id)
- ->where('transformative_actions.by_professor', 1)
- ->whereIn('objective_outcome.outcome_id', $outcome_id)
- ->whereIn('ta_course.course_code', $course_id['code'])
- ->whereIn('ta_course.course_number', $course_id['number'])
- ->select('transformative_actions.*')
- ->groupBy('transformative_actions.id')
- ->orderBy('transformative_actions.at_text', 'ASC')
- ->get();
- return $filtered_at;
- }*/
- return 'ilegal';
- }
-
- function postActivityCriterion($activity_id)
- {
- DB::beginTransaction();
-
- $existing_transformative_action = DB::table('transformative_actions')
- ->join('transformative_activity_criterion', 'transformative_activity_criterion.trans_action_id', '=', 'transformative_actions.id')
- ->join('activity_criterion', 'activity_criterion.id', '=', 'transformative_activity_criterion.activity_criterion_id')
- ->where('activity_id', $activity_id)
- ->delete();
- $activity_criterion = Input::get('trans_act');
-
- $trans = new TransformativeAction;
-
- $trans->user_id = Auth::user()['id'];
- $program_id = DB::table('activities')
- ->join('courses', 'activities.course_id', '=', 'courses.id')
- ->where('activities.id', $activity_id)
- ->lists('program_id');
- $trans->program_id = $program_id[0];
- $trans->is_custom = 1;
- $trans->by_professor = 1;
-
- $trans->at_text = Input::get('name_trans');
- $trans->description = Input::get('transforming_actions');
-
- $activity = DB::table('activities')
- ->where('id', $activity_id)
- ->first();
- $course_credentials = DB::table('courses')
- ->where('id', $activity->course_id)
- ->first();
-
-
- if ($trans->save()) {
-
-
-
-
- foreach ($activity_criterion as $single_ac) {
- $result = DB::insert("insert into `transformative_activity_criterion` (`trans_action_id`, `activity_criterion_id`) values ($trans->id, $single_ac)");
- if (!$result) {
- DB::rollback();
- Session::flash('status', 'danger');
- Session::flash('message', 'Error saving Formative Action. Try again later.');
-
- return Redirect::to("professor/activities/{$activity_id}");
- }
- }
- $criteria = DB::table('activity_criterion')
- ->whereIn('id', $activity_criterion)
- ->lists('criterion_id');
-
- $allObjectives = DB::table('criterion_objective_outcome')
- ->whereIn('criterion_id', $criteria)
- ->select('objective_id')
- ->distinct()
- ->lists('objective_id');
-
-
- foreach ($allObjectives as $objective) {
- $result2 = DB::insert("insert into `transformative_objective` (`ta_id`, `objective_id`) values ({$trans->id},{$objective})");
- if (!$result2) {
- DB::rollback();
- Session::flash('status', 'danger');
- Session::flash('message', 'Error saving Formative Action. Try again later.');
-
- return Redirect::to("professor/activities/{$activity_id}");
- }
- }
- $result3 = DB::insert("insert into `ta_course` (`ta_id`, `course_number`, `course_code`) values ({$trans->id}, '{$course_credentials->number}', '{$course_credentials->code}')");
-
- if (!($result3)) {
- DB::rollback();
- Session::flash('status', 'danger');
- Session::flash('message', 'Error saving Formative Action. Try again later.');
- return Redirect::to("professor/activities/{$activity_id}");
- }
- DB::commit();
- Session::flash('status', 'success');
- Session::flash('message', 'Formative Actions Saved.');
-
- return Redirect::to("professor/activities/{$activity_id}");
- } else {
- DB::rollback();
- Session::flash('status', 'danger');
- Session::flash('message', 'Error saving Formative Action. Try again later.');
-
- return Redirect::to("professor/activities/{$activity_id}");
- }
- }
-
- public function viewFormativeActions()
- {
- $title = "Formative Actions";
- $semesters = Session::get('semesters_ids');
- $semesters = DB::table('semesters')->whereIn('id', $semesters)->orderBy('start', 'ASC')->first();
- Log::info($semesters->start);
- $outcomes = Outcome::select(array('id', 'name', 'expected_outcome'))
- ->whereNull('deleted_at')
- ->whereRaw("(deactivation_date IS NULL or deactivation_date >= '{$semesters->start}')")
- ->orderBy('name', 'ASC')->get();
- $semesters = DB::table('semesters')->where('is_visible', 1)->orderBy('end', 'DESC')->get();
- $role = Auth::user()->role;
- switch ($role) {
- case 1:
- $schools = DB::table('schools')->get();
- $programs = DB::table('programs')->get();
- break;
-
- case 2:
- $schools = DB::table('schools')->where('id', Auth::user()->school_id)->get();
- $programs = DB::table('programs')->where('school_id', $schools[0]->id)->get();
- break;
- case 3:
- $programs = DB::table('programs')
- ->join('program_user', 'programs.id', '=', 'program_user.program_id')
- ->where('user_id', Auth::user()->id)
- ->select('programs.*')
- ->get();
- $schools = DB::table('schools')->where('id', $programs[0]->school_id)->get();
- break;
- }
-
- return View::make('local.managers.shared.view_formative', compact('title', 'outcomes', 'schools', 'programs', 'semesters'));
- }
-
- public function fetchCourses()
- {
-
- $school = Input::get('schools');
-
- $programs = Input::get('programs');
- $semesters = Input::get('semesters');
- $outcome_id = Input::get('id');
-
- Log::info($programs);
- Log::info($semesters);
-
-
- /* if (in_array(0, $semesters)) {
- $semesters = DB::table('semesters')->where('is_visible', 1)->lists('id');
- }*/
-
- /* if (in_array(0, $programs)) {
-
- $role = Auth::user()->role;
-
- switch ($role) {
- case 1:
- $programs = DB::table('programs')->lists('id');
- break;
- case 2:
- $programs = DB::table('programs')->where('school_id', Auth::user()->school_id)->lists('id');
- break;
- case 3:
- $programs = DB::table('program_user')->where('user_id', Auth::user()->id)->lists('program_id');
- break;
- }
- }*/
-
- $typ_semester_outcome = DB::table('typ_semester_outcome')
- ->where('semester_id', $semesters)
- ->where('outcome_id', $outcome_id)
- ->lists('id');
-
-
- //each row has objectives, repeated ta, but distinct activity_criterion_id
- /* $objective_ta = DB::table('typ_semester_objectives')
- ->join('transformative_objective as trob', 'trob.objective_id', '=', 'typ_semester_objectives.objective_id')
- ->join('objectives', 'trob.objective_id', '=', 'objective_id')
- ->join('transformative_actions', 'transformative_actions.id', 'trob.ta_id')
- ->whereIn('typ_semester_objectives.typ_semester_outcome_id', $typ_semester_outcome)
- ->select('transformative_actions.*')
- ->addSelect('objectives.*')
- ->distinct()
- ->get();
-
- $objective_ta = DB::table('typ_semester_objectives')
- ->join('transformative_objective as trob', 'trob.objective_id', '=', 'typ_semester_objectives.objective_id')
- ->join('objectives', 'trob.objective_id', '=', 'objective_id')
- ->join('transformative_actions', 'transformative_actions.id', 'trob.ta_id')
- ->whereIn('typ_semester_objectives.typ_semester_outcome_id', $typ_semester_outcome)
- ->select('transformative_actions.*')
- ->addSelect('objectives.*')
- ->distinct()
- ->lists();*/
-
-
-
-
-
-
-
- $grouped_courses = DB::table('courses')
- ->where('program_id', $programs)
- ->where('semester_id', $semesters)
- ->join('activities', 'activities.course_id', '=', 'courses.id')
- ->join('activity_criterion', 'activities.id', '=', 'activity_criterion.activity_id')
-
- ->join('transformative_activity_criterion as tac', 'tac.activity_criterion_id', '=', 'activity_criterion.id')
- ->select('courses.*')
- ->groupBy(array('courses.code', 'courses.name', 'courses.semester_id'))
- ->orderBy('courses.code')
- ->orderBy('courses.number')
- ->get();
-
-
-
-
-
-
-
- foreach ($grouped_courses as $course_name) {
- $course_name->sections = DB::table('courses')
- ->where('code', $course_name->code)
- ->where('name', $course_name->name)
- ->where('semester_id', $course_name->semester_id)
- ->where('program_id', $course_name->program_id)
- ->get();
- foreach ($course_name->sections as $section) {
-
- $section->activities = DB::table('activities')
- ->join('activity_criterion', 'activities.id', '=', 'activity_criterion.activity_id')
-
- ->join('transformative_activity_criterion', 'transformative_activity_criterion.activity_criterion_id', '=', 'activity_criterion.id')
- ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'activity_criterion.criterion_id')
- ->join('transformative_actions', 'transformative_activity_criterion.trans_action_id', '=', 'transformative_actions.id')
- ->where('activities.course_id', $section->id)
- ->where('activities.draft', 0)
- ->where('activities.diagnostic', 0)
- ->where('criterion_objective_outcome.outcome_id', $outcome_id)
- ->select('activities.id as activity_id', 'activities.name')
- ->addSelect('transformative_actions.*', 'transformative_activity_criterion.trans_action_id as trans_action_id')
- ->groupBy('transformative_actions.id')
- ->get();
-
- //If section has activity that assessess outcome
- if (count($section->activities)) {
- $course_name->outcome_assessed = true;
- }
-
- foreach ($section->activities as $activity) {
- /*$activity->criterion = DB::table('transformative_activity_criterion')
- ->join('activity_criterion','activity_criterion.id','=','transformative_activity_criterion.activity_criterion_id')
- ->join('activities','activities.id','=','activity_criterion.activity_id')
- ->join('criteria','activity_criterion.criterion_id','=','criteria.id')
- ->where('activity_id', $activity->id)
- ->select('criteria')*/
- //Log::info($activity->trans_action_id);
- $activity->criterion_with_objective = DB::table('transformative_activity_criterion')
- ->join('activity_criterion', 'activity_criterion.id', '=', 'transformative_activity_criterion.activity_criterion_id')
- ->join('criteria', 'activity_criterion.criterion_id', '=', 'criteria.id')
- ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'criteria.id')
- ->join('objectives', 'objectives.id', '=', 'criterion_objective_outcome.objective_id')
- ->where('activity_id', $activity->activity_id)
- ->where('trans_action_id', $activity->trans_action_id)
- ->get();
- /*$activity->objectives = DB::table('transformative_objective')
- ->join('objectives', 'transformative_objective.objective_id', '=', 'objectives.id')
- ->where('ta_id', $activity->trans_action_id)
- ->get();*/
-
- /*foreach ($activity->objectives as $objective) {
- // Log::info($activity->activity_id);
- // Log::info($objective->objective_id);
- /* Log::info(DB::table('criterion_objective_outcome')
- ->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criterion_objective_outcome.criterion_id')
- ->join('criteria', 'criteria.id', '=', 'activity_criterion.criterion_id')
- ->where('activity_criterion.activity_id', $activity->activity_id)
- ->where('objective_id', $objective->objective_id)
- ->select('criteria.*')
- ->distinct()
- ->toSql());
- $objective->criterion = DB::table('criterion_objective_outcome')
- ->join('activity_criterion', 'activity_criterion.criterion_id', '=', 'criterion_objective_outcome.criterion_id')
- ->join('criteria', 'criteria.id', '=', 'activity_criterion.criterion_id')
- ->where('activity_criterion.activity_id', $activity->activity_id)
- ->where('objective_id', $objective->objective_id)
- ->select('criteria.*')
- ->distinct()
- ->get();
- }*/
- }
- }
- }
- return $grouped_courses;
- }
- public function createTAForOutcome()
- {
- $is_custom = Input::get('is_custom');
- $category = Input::get('category');
- $is_new = Input::get('is_new');
- $name = Input::get('name');
- $description = Input::get('description');
- $edit_ta_id = Input::get('edit');
- if ($is_new || $is_custom)
- $program_id = Input::get('program_id');
- else $program_id = NULL;
- $typ_semester_outcome_id = Input::get('typ_semester_outcome_id');
-
- if (!$edit_ta_id) {
- $ta_id = DB::table('transformative_actions')->insertGetId(array(
- 'program_id' => $program_id,
- 'type_of_TA' => $category,
- 'at_text' => $name,
- 'description' => $description,
- 'user_id' => Auth::user()->id,
- 'created_at' => date('Y-m-d H:i:s'),
- 'updated_at' => date('Y-m-d H:i:s'),
- 'by_professor' => 0,
- 'is_custom' => $is_custom
- ));
- DB::table('transformative_typ_outcome')->insert(array(
- 'trans_id' => $ta_id,
- 'typ_semester_outcome_id' => $typ_semester_outcome_id,
- 'proposing_coordinator_id' => Auth::user()->id,
-
- ));
- } else {
- DB::table('transformative_actions')
- ->where('id', $edit_ta_id)
- ->update(array(
- 'program_id' => $program_id,
- 'type_of_TA' => $category,
- 'at_text' => $name,
- 'description' => $description,
- 'user_id' => Auth::user()->id,
- 'created_at' => date('Y-m-d H:i:s'),
- 'updated_at' => date('Y-m-d H:i:s'),
- 'by_professor' => 0,
- 'is_custom' => $is_custom
- ));
- $ta_id = $edit_ta_id;
- }
- return $ta_id;
- }
- public function deleteTaFromOutcome()
- {
- DB::table('transformative_actions')
- ->where('id', Input::get('trans_id'))
- ->delete();
- return;
- }
-
- public function fetchStatus()
- {
- $trans_id = Input::get('trans_id');
- $semester_id = Input::get('semester_id');
- $transformative_action = DB::table('transformative_actions')
- ->where('id', $trans_id)
- ->first();
- $transformative_action->status = DB::table('transformative_action_status')
- ->where('trans_id', $transformative_action->id)
- ->where('semester_id', $semester_id)
- ->first();
-
-
- //TransformativeAction::find($trans_id)->status($semester_id);
-
- return array($transformative_action);
- }
- public function saveTransStatus()
- {
- $semester_id = Input::get('semester_id');
- $trans_id = Input::get('trans_id');
- $results = Input::get('results');
- $comments = Input::get('comments');
- $accomplished = Input::get('accomplished');
- $was_it_useful = Input::get('was_it_useful');
-
- $existing_status = DB::table('transformative_action_status')
- ->where('semester_id', $semester_id)
- ->where('trans_id', $trans_id)
- ->first();
- if ($existing_status) {
- DB::table('transformative_action_status')
- ->where('trans_id', $trans_id)
- ->update(array(
- 'results' => $results,
- 'comments' => $comments,
- 'accomplished' => $accomplished,
- 'it_was_useful' => $was_it_useful,
- 'supervised_coordinator_id' => Auth::user()->id
- ));
- } else {
- DB::table('transformative_action_status')->insert(array(
- 'trans_id' => $trans_id,
- 'results' => $results,
- 'comments' => $comments,
- 'accomplished' => $accomplished,
- 'it_was_useful' => $was_it_useful,
- 'semester_id' => $semester_id,
- 'supervised_coordinator_id' => Auth::user()->id
- ));
- }
- return "done";
- }
- }
|