Procházet zdrojové kódy

Merge branch 'Merge_gabriel_mayo' of https://git.ccom.uprrp.edu/CDCC/OLAS into Merge_gabriel_mayo

verificar route
Carlos J Corrada Bravo před 2 roky
rodič
revize
af7b333548
24 změnil soubory, kde provedl 3958 přidání a 737 odebrání
  1. 42
    6
      app/controllers/AnnualPlansController.php
  2. 401
    378
      app/controllers/ProgramsController.php
  3. 3
    2
      app/controllers/SchoolCoordinatorsController.php
  4. 458
    239
      app/controllers/SchoolsController.php
  5. 68
    39
      app/controllers/TemplatesController.php
  6. 35
    2
      app/controllers/ThreeYearPlanController.php
  7. 6
    4
      app/models/Course.php
  8. 1
    1
      app/models/Criterion.php
  9. 23
    0
      app/routes.php
  10. 653
    0
      app/views/annual_htmls/plan-on-10-10-2022-for-15-by-5478.blade.php
  11. 948
    0
      app/views/annual_htmls/report-on-10-10-2022-for-15-by-5478.blade.php
  12. 36
    2
      app/views/global/view-three-year-plan.blade.php
  13. 1
    0
      app/views/local/managers/admins/_new_navigation.blade.php
  14. 65
    8
      app/views/local/managers/admins/appraisal-program.blade.php
  15. 277
    0
      app/views/local/managers/admins/assign_other_programs.blade.php
  16. 1
    1
      app/views/local/managers/admins/learning-outcome_new.blade.php
  17. 63
    28
      app/views/local/managers/admins/learning-outcomes.blade.php
  18. 57
    7
      app/views/local/managers/admins/show-typ-program.blade.php
  19. 68
    1
      app/views/local/managers/admins/view_template.blade.php
  20. 1
    1
      app/views/local/managers/sCoords/_new_navigation.blade.php
  21. 4
    0
      app/views/local/managers/shared/rubric_list.blade.php
  22. 66
    0
      app/views/local/managers/shared/rubrics_new.blade.php
  23. 34
    18
      app/views/local/managers/shared/school.blade.php
  24. 647
    0
      app/views/three_year_plan_htmls/10-10-2022-for-15-by-5478.blade.php

+ 42
- 6
app/controllers/AnnualPlansController.php Zobrazit soubor

@@ -129,14 +129,45 @@ class AnnualPlansController extends \BaseController
129 129
   }*/
130 130
   public function adminIndex()
131 131
   {
132
-    Log::info("Entre" . json_encode($this));
132
+    //Log::info("Entre" . json_encode($this));
133 133
 
134 134
     $title = "Annual Plans";
135
-    $programs = Program::get();
135
+    $programs = Program::orderBy('name', "ASC")->get();
136
+    $annual_cycle = DB::table('annual_cycle')
137
+      ->orderBy('academic_year', "DESC")
138
+      ->get();
139
+    $report = 0;
140
+
141
+    return View::make('local.managers.admins.appraisal-program', compact('title', 'programs', 'annual_cycle', 'report'));
142
+  }
136 143
 
137
-    return View::make('local.managers.admins.appraisal-program', compact('title', 'programs'));
144
+  public function adminReportIndex()
145
+  {
146
+    $title = "Annual Reports";
147
+    $programs = Program::orderBy('name', "ASC")->get();
148
+    $annual_cycle = DB::table('annual_cycle')
149
+      ->orderBy('academic_year', "DESC")
150
+      ->get();
151
+    $report = 1;
152
+
153
+    return View::make('local.managers.admins.appraisal-program', compact('title', 'programs', 'annual_cycle', 'report'));
154
+  }
155
+
156
+  //fetch submitted
157
+
158
+  public function  fetchSubmitted()
159
+  {
160
+    $annual_cycle = Input::get('annual_cycle');
161
+    $report = Input::get('report');
162
+    return DB::table("annual_plans")
163
+      ->join('paths_for_annual_plans as pa', 'pa.annual_plan_id', '=', 'annual_plans.id')
164
+      ->where('report', $report)
165
+      ->where('annual_cycle_id', $annual_cycle)
166
+      ->get();
138 167
   }
139 168
 
169
+
170
+
140 171
   public function showPlan($program_id, $typ_id = null)
141 172
   {
142 173
     $program = Program::find($program_id);
@@ -1128,9 +1159,6 @@ class AnnualPlansController extends \BaseController
1128 1159
     return Redirect::back();
1129 1160
   }
1130 1161
 
1131
-  public function adminReportIndex()
1132
-  {
1133
-  }
1134 1162
 
1135 1163
 
1136 1164
   public function downloadPDF($download, $path_id)
@@ -1342,6 +1370,14 @@ class AnnualPlansController extends \BaseController
1342 1370
         'last' => 0
1343 1371
       ));
1344 1372
 
1373
+    DB::table('annual_plans')
1374
+      ->where('id', $annual_id)
1375
+      ->update(array(
1376
+        'is_submitted' => 1,
1377
+        'submitted_on' => date('Y-m-d H:i:s')
1378
+
1379
+      ));
1380
+
1345 1381
     DB::table('paths_for_annual_plans')->insert(array(
1346 1382
       "path_to_pdf" => $path,
1347 1383
       'annual_plan_id' => $annual_id,

+ 401
- 378
app/controllers/ProgramsController.php Zobrazit soubor

@@ -124,6 +124,83 @@ class ProgramsController extends \BaseController
124 124
   }
125 125
 
126 126
 
127
+  // manage course index
128
+
129
+  public function assignOtherProgramIndex()
130
+  {
131
+
132
+    $title = 'Assign courses to other Programs';
133
+    $programs = Program::orderBy("name")->get();
134
+
135
+    return View::make('local.managers.admins.assign_other_programs', compact('title', 'programs'));
136
+  }
137
+
138
+  //create other course pairing
139
+
140
+  public function addToOtherProgramTYP()
141
+  {
142
+    $clean_input = Input::all();
143
+    Log::info($clean_input);
144
+    DB::beginTransaction();
145
+    foreach ($clean_input['other_program'] as $index => $program_id) {
146
+      $id = DB::table('other_programs_courses_typ')->insertGetId(array(
147
+        'program_id' => $clean_input['program'],
148
+        'other_program_id' => $program_id
149
+      ));
150
+
151
+      if (!isset($id)) {
152
+        Session::flash('status', 'danger');
153
+        Session::flash('message', 'Error saving Program. Try again later.');
154
+
155
+        return Redirect::back();
156
+      }
157
+    }
158
+    DB::commit();
159
+
160
+    Session::flash('status', 'success');
161
+    Session::flash('message', 'Pairing created.');
162
+
163
+    return Redirect::action('ProgramsController@assignOtherProgramIndex');
164
+  }
165
+
166
+  public function updatePairingInfo()
167
+  {
168
+    $clean_input = Input::all();
169
+    Log::info($clean_input);
170
+    DB::beginTransaction();
171
+    DB::table("other_programs_courses_typ")->where('program_id', $clean_input['program'])
172
+      ->delete();
173
+    foreach ($clean_input['other_program'] as $index => $program_id) {
174
+      $id = DB::table('other_programs_courses_typ')->insertGetId(array(
175
+        'program_id' => $clean_input['program'],
176
+        'other_program_id' => $program_id
177
+      ));
178
+
179
+      if (!isset($id)) {
180
+        Session::flash('status', 'danger');
181
+        Session::flash('message', 'Error saving Program. Try again later.');
182
+
183
+        return Redirect::back();
184
+      }
185
+    }
186
+    DB::commit();
187
+
188
+    Session::flash('status', 'success');
189
+    Session::flash('message', 'Pairing created.');
190
+
191
+    return Redirect::action('ProgramsController@assignOtherProgramIndex');
192
+  }
193
+
194
+  public function fetchPairingInfo()
195
+  {
196
+
197
+    return DB::table("other_programs_courses_typ")->where('program_id', Input::get('program_id'))
198
+      ->lists("other_program_id");
199
+  }
200
+
201
+
202
+
203
+
127 204
   public function showReport()
128 205
   {
129 206
 
@@ -246,302 +323,254 @@ class ProgramsController extends \BaseController
246 323
     return View::make('local.managers.shared.program_report', compact('title', 'programs_info', 'selected_divulgaciones', 'selected_semesters', 'tables_names'));
247 324
   }
248 325
 
249
-	private function cmp($a, $b) 
250
-	{
251
-		return strcmp($a->name, $b->name);
252
-	}
253
-
254
-    public function studentProgramAssessmentReport($program_id)
255
-    {
256
-		$id=$program_id;
257
-		ini_set('memory_limit', -1);
258
-		ini_set('max_execution_time', 300);
259
-
260
-
261
-		$program = Program::find($program_id);
262
-		$title= $program->school->name.': '.$program->name;
263
-		$outcomes = Outcome::orderBy('name', 'asc')->get();
264
-		$schools = School::all();
265
-		$outcomeCount = Outcome::all()->count();
266
-		
267
-// 		var_dump(json_encode($outcomes));
268
-		$role=Auth::user()->role;
269
-
270
-		$programs_ids=array($program->id);
271
-
272
-	   $users = User::
273
-        select('users.*')
274
-        ->leftJoin('program_user', 'users.id', '=', 'program_user.user_id')
275
-        ->where(function($query) use($program)
276
-        {
277
-            $query
278
-                ->where('school_id', $program->school_id)
279
-                ->where('role', 2);
280
-        })
281
-        ->orWhere(function($query) use($program)
282
-        {
283
-            $query
284
-                ->where('role', 3)
285
-                ->where('program_id', $program->id);
286
-        })
287
-        ->orWhere(function($query) use($program)
288
-        {
289
-            $query
290
-                ->where('role', 4)
291
-                ->where('program_id', $program->id);
292
-        })
293
-        ->get();
294
-	
295
-// 		$outcomes = Outcome::orderBy('name', 'asc')->get();
296
-// 		$school = School::find($school_id);
297
-// 		$title= $school->name;
298
-// 		$outcomeCount = Outcome::all()->count();
299
-// 		$programs=Program::where('school_id','=',$school_id)->get();
300
-// 		$programs_ids=array();
301
-// // 				var_dump($programs);exit();
302
-// 		$programs_name=array();
303
-// 		foreach($programs as $program)
304
-// 		{
305
-// // 			var_dump($program);
306
-// 			$programs_ids[]=$program->id;
307
-// 			$programs_name[$program->id]=$program->name;
308
-// 		}
309
-
310
-        $grouped_courses = Course::
311
-            //             select(DB::raw('courses.name, courses.code, courses.number, max(courses.outcomes_attempted) as outcomes_attempted, courses.semester_id, courses.program_id'))
312
-            select(DB::raw('courses.name, courses.code, courses.number, courses.semester_id, courses.program_id'))
313
-            ->with('semester')
314
-            ->with('program')
315
-            ->whereIn('courses.program_id', $programs_ids)
316
-            ->whereIn('courses.semester_id', Session::get('semesters_ids'))
317
-            ->leftJoin('programs', 'courses.program_id', '=', 'programs.id')
318
-            ->groupBy(array('courses.code', 'courses.number', 'courses.semester_id'))
319
-            ->orderBy('courses.code')
320
-            ->orderBy('courses.number')
321
-            ->orderBy('courses.semester_id')
322
-            ->get();
323
-
324
-
325
-		$role=Auth::user()->role;
326
-
327
-		$users =array();
328
-
329
-
330
-		$resultados_todos_obj = DB::table('assessments')
331
-         						->join('activity_criterion', 'activity_criterion.id', '=', 'assessments.activity_criterion_id')
332
-         						->join('activities', 'activities.id', '=', 'activity_criterion.activity_id')
333
-         						->join('courses', 'courses.id', '=', 'activities.course_id')
334
-         						->join('students', 'students.id', '=', 'assessments.student_id')
335
-         						->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'activity_criterion.criterion_id')
336
-         						->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
337
-         						->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
338
-         						->join('semesters', 'semesters.id', '=', 'courses.semester_id')
339
-          						->whereIn('students.program_id',$programs_ids)
340
-                   			   	->whereIn('semester_id', Session::get('semesters_ids'))
341
-                   			   	->where('semesters.is_visible','=',1)
342
-                    			->select('student_id', 'students.program_id', 'semesters.code', 'outcome_id', 'criterion_objective_outcome.criterion_id','score','expected_points')
343
-								->distinct()
344
-                    			->get();
345
-
346
-		foreach($resultados_todos_obj as $resultado)
347
-		{
348
-			if(!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']))
349
-			{
350
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']=array();
351
-			}
352
-			$resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'][]=$resultado->code;
353
-			$resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']=array_unique($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']);
354
-			if(!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']))
355
-			{
356
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']=0;
357
-			}
358
-			$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']++;
359
-
360
-			if(!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']))
361
-			{
362
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']=0;
363
-			}
364
-			if($resultado->score>=$resultado->expected_points)
365
-			{
366
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']++;
367
-			}
368
-		}
369
-
370
-		$outcomes_colap=array();
371
-		$programs=array();
372
-// 			$outcomes_colap=array();
373
-		$i=0;
374
-		$outcomes_attempted=array();
375
-		$outcomes_attempted_colap=array();
376
-		$outcomes_achieved_colap=array();
377
-		$outcomes_attempted_semesters=array();
378
-		foreach($resultados_todos as $program_id => $resultados_prog)
379
-		{
380
-	     	$outcomes_attempted_semesters[$program_id]=array();
381
-			foreach($resultados_prog as $out=>$datos_out)
382
-			{
383
-				$outcomes_achieved[$program_id][$out] = 0;
384
-				$outcomes_attempted[$program_id][$out] = 0;
385
-// 				var_dump($datos_out);outcomes_attempted_semesters
386
-				$outcomes_attempted_semesters[$program_id][$out]=$datos_out['semesters'];
387
-				unset($datos_out['semesters']);
388
-// 				var_dump($outcomes_attempted_semesters[$program_id][$out]);
389
-// 				var_dump($datos_out);
390
-// 				exit();
391
-				foreach($datos_out as $res)
392
-				{
393
-					$outcomes_attempted[$program_id][$out]++;
394
-					if(3*$res['achieved']>=2*$res['attempted'])
395
-						$outcomes_achieved[$program_id][$out]++;
396
-				}		
397
-			}
398
-			$programs[]=Program::find($program_id);
399
-			if(Program::find($program_id)->is_graduate)
400
-			{
401
-				$colapso=array(1=>array(),3=>array(),2=>array(11),12=>array(7,14),10=>array(),4=>array(6,15));
402
-			}
403
-			else
404
-			{
405
-				$colapso=array(10=>array(),1=>array(),12=>array(7),3=>array(9,8,14),2=>array(11),5=>array(),4=>array(6,13),16=>array());
406
-			}	
407
-		
408
-			$resultados_todos_colap[$program_id]=array();
409
-			foreach($colapso as $out=>$pares)
410
-			{
411
-				$resultados_todos_colap[$program_id][$out]["semesters"]=array();
412
-				if(isset($resultados_todos[$program_id][$out]))
413
-					$resultados_todos_colap[$program_id][$out]=$resultados_todos[$program_id][$out];
414
-					else $resultados_todos_colap[$program_id][$out]=array();
415
-				foreach($pares as $par)
416
-				{
417
-					if(isset($resultados_todos[$program_id][$par]))
418
-					{	
419
-// 						unset($resultados_todos[$program_id][$par]['semesters']);
420
-						
421
-						foreach($resultados_todos[$program_id][$par] as $estu => $resus)
422
-						{
423
-							if($estu!="semesters")
424
-							{
425
-								if(!isset($resultados_todos_colap[$program_id][$out][$estu]))
426
-								{
427
-									$resultados_todos_colap[$program_id][$out][$estu]['attempted']=0;
428
-									$resultados_todos_colap[$program_id][$out][$estu]['achieved']=0;
429
-
430
-								}
431
-	// 							print $program_id." ".$par." ".$estu."<br>";
432
-	// 							var_dump($resultados_todos[$program_id][$par][$estu]); 
433
-								$resultados_todos_colap[$program_id][$out][$estu]['attempted']+=$resultados_todos[$program_id][$par][$estu]['attempted'];
434
-								$resultados_todos_colap[$program_id][$out][$estu]['achieved']+=$resultados_todos[$program_id][$par][$estu]['achieved'];
435
-							}
436
-							else if(isset($resultados_todos[$program_id][$par]["semesters"]))
437
-							{
438
-								if(isset($resultados_todos_colap[$program_id][$out]["semesters"]))
439
-								{
440
-									$tmp=array_merge($resultados_todos_colap[$program_id][$out]["semesters"],$resultados_todos[$program_id][$par]["semesters"]);
441
-// 									var_dump(($tmp));
442
-// 									var_dump(array_unique($tmp));
443
-// 									exit();
444
-
445
-									$resultados_todos_colap[$program_id][$out]["semesters"]=array_unique($tmp);
446
-								}
447
-								else 
448
-									$resultados_todos_colap[$program_id][$out]["semesters"]=array_unique($resultados_todos[$program_id][$par]["semesters"]);
449
-							}
450
-						}
451
-					}
452
-				}
453
-		
454
-			}
455
-// 			var_dump($resultados_todos_colap);
456
-			
457
-			$outcomes_attempted_colap[$program_id]=array();
458
-			$outcomes_achieved_colap[$program_id]=array();
459
-			$outcomes_attempted_colap_semesters[$program_id]=array();
460
-// 			print $program_id."<br>";
461
-// 				var_dump($resultados_todos_colap[$program_id]);
462
-// 			print "<br>";
463
-			foreach($resultados_todos_colap[$program_id] as $out=>$datos_out)
464
-			{
465
-				if(!$i)$outcomes_colap[]=Outcome::find($out);
466
-// 				$outcomes_attempted_colap_semesters[$program_id][$out]=array();
467
-				if(isset($datos_out['semesters']))
468
-				{
469
-					$outcomes_attempted_colap_semesters[$program_id][$out]=$datos_out['semesters'];
470
-					unset($datos_out['semesters']);
471
-				}
472
-				foreach($datos_out as $res)
473
-				{
474
-					if(!isset($outcomes_attempted_colap[$program_id][$out]))
475
-					{
476
-						$outcomes_attempted_colap[$program_id][$out]=0;
477
-						$outcomes_achieved_colap[$program_id][$out]=0;
478
-					
479
-					}
480
-					$outcomes_attempted_colap[$program_id][$out]++;
481
-					if(3*$res['achieved']>=2*$res['attempted'])
482
-						$outcomes_achieved_colap[$program_id][$out]++;
483
-				}
484
-				if(empty($datos_out))
485
-				{
486
-					$outcomes_attempted_colap[$program_id][$out]=0;
487
-					$outcomes_achieved_colap[$program_id][$out]=0;
488
-				}
489
-
490
-			}
491
-			$i++;
492
-		}		
493
-		usort($outcomes_colap, array($this, "cmp"));
494
-	// 		var_dump($outcomes_attempted_colap); print "<br>";
495
-	// 		var_dump($outcomes_achieved_colap); print "<br>";
496
-	// 	exit();
497
-		$outcomes_attempted_colap_todo=array();
498
-		$outcomes_achieved_colap_todo=array();
499
-		foreach($outcomes_attempted_colap as $program_id => $out_res)
500
-		{
501
-			foreach($out_res as $out=>$res)
502
-			{
503
-				if(!isset($outcomes_attempted_colap_todo[$out]))
504
-				{
505
-					$outcomes_attempted_colap_todo[$out]=0;
506
-					$outcomes_achieved_colap_todo[$out]=0;
507
-			
508
-				}
509
-				$outcomes_attempted_colap_todo[$out]+=$outcomes_attempted_colap[$program_id][$out];
510
-				$outcomes_achieved_colap_todo[$out]+=$outcomes_achieved_colap[$program_id][$out];
511
-		
512
-		
513
-			}
514
-	
515
-		}
516
-		$outcomes_attempted_todo=array();
517
-		$outcomes_achieved_todo=array();
518
-		foreach($outcomes_attempted as $program_id => $out_res)
519
-		{
520
-			foreach($out_res as $out=>$res)
521
-			{
522
-				if(!isset($outcomes_attempted_todo[$out]))
523
-				{
524
-					$outcomes_attempted_todo[$out]=0;
525
-					$outcomes_achieved_todo[$out]=0;
526
-			
527
-				}
528
-				$outcomes_attempted_todo[$out]+=$outcomes_attempted[$program_id][$out];
529
-				$outcomes_achieved_todo[$out]+=$outcomes_achieved[$program_id][$out];
530
-		
531
-		
532
-			}
533
-	
534
-		}
535
-	$outcomes_attempted_colap=$outcomes_attempted_colap_todo;
536
-	$outcomes_achieved_colap=$outcomes_achieved_colap_todo;
537
-	$outcomes_attempted=$outcomes_attempted_todo;
538
-	$outcomes_achieved=$outcomes_achieved_todo;
539
-// 	var_dump($outcomes_attempted_colap);
540
-// 	var_dump($outcomes_attempted_colap);
541
-// 	    return View::make('local.managers.shared.school_student_result', compact('title','outcomes_attempted_colap_semesters','outcomes_attempted_semesters','outcomes_attempted_colap_todo','outcomes_achieved_colap_todo','outcomes_attempted_todo','outcomes_achieved_todo','school','programs_name','role','outcomes','outcomes_colap', 'outcomes_attempted', 'outcomes_achieved', 'outcomes_attempted_colap', 'outcomes_achieved_colap', 'programs', 'users','program_courses','grouped_courses'));
542
-
543
-    return View::make('local.managers.shared.program_student_result', compact('title','role','outcomes','outcomes_colap', 'outcomes_attempted', 'outcomes_achieved', 'outcomes_attempted_colap', 'outcomes_achieved_colap', 'program', 'users','program_courses','grouped_courses'));
326
+  private function cmp($a, $b)
327
+  {
328
+    return strcmp($a->name, $b->name);
329
+  }
330
+
331
+  public function studentProgramAssessmentReport($program_id)
332
+  {
333
+    $id = $program_id;
334
+    ini_set('memory_limit', -1);
335
+    ini_set('max_execution_time', 300);
336
+
337
+
338
+    $program = Program::find($program_id);
339
+    $title = $program->school->name . ': ' . $program->name;
340
+    $outcomes = Outcome::orderBy('name', 'asc')->get();
341
+    $schools = School::all();
342
+    $outcomeCount = Outcome::all()->count();
343
+
344
+    // 		var_dump(json_encode($outcomes));
345
+    $role = Auth::user()->role;
346
+
347
+    $programs_ids = array($program->id);
348
+
349
+    $users = User::select('users.*')
350
+      ->leftJoin('program_user', 'users.id', '=', 'program_user.user_id')
351
+      ->where(function ($query) use ($program) {
352
+        $query
353
+          ->where('school_id', $program->school_id)
354
+          ->where('role', 2);
355
+      })
356
+      ->orWhere(function ($query) use ($program) {
357
+        $query
358
+          ->where('role', 3)
359
+          ->where('program_id', $program->id);
360
+      })
361
+      ->orWhere(function ($query) use ($program) {
362
+        $query
363
+          ->where('role', 4)
364
+          ->where('program_id', $program->id);
365
+      })
366
+      ->get();
367
+
368
+    // 		$outcomes = Outcome::orderBy('name', 'asc')->get();
369
+    // 		$school = School::find($school_id);
370
+    // 		$title= $school->name;
371
+    // 		$outcomeCount = Outcome::all()->count();
372
+    // 		$programs=Program::where('school_id','=',$school_id)->get();
373
+    // 		$programs_ids=array();
374
+    // // 				var_dump($programs);exit();
375
+    // 		$programs_name=array();
376
+    // 		foreach($programs as $program)
377
+    // 		{
378
+    // // 			var_dump($program);
379
+    // 			$programs_ids[]=$program->id;
380
+    // 			$programs_name[$program->id]=$program->name;
381
+    // 		}
382
+
383
+    $grouped_courses = Course::
384
+      //             select(DB::raw('courses.name, courses.code, courses.number, max(courses.outcomes_attempted) as outcomes_attempted, courses.semester_id, courses.program_id'))
385
+      select(DB::raw('courses.name, courses.code, courses.number, courses.semester_id, courses.program_id'))
386
+      ->with('semester')
387
+      ->with('program')
388
+      ->whereIn('courses.program_id', $programs_ids)
389
+      ->whereIn('courses.semester_id', Session::get('semesters_ids'))
390
+      ->leftJoin('programs', 'courses.program_id', '=', 'programs.id')
391
+      ->groupBy(array('courses.code', 'courses.number', 'courses.semester_id'))
392
+      ->orderBy('courses.code')
393
+      ->orderBy('courses.number')
394
+      ->orderBy('courses.semester_id')
395
+      ->get();
396
+
397
+
398
+    $role = Auth::user()->role;
399
+
400
+    $users = array();
401
+
402
+
403
+    $resultados_todos_obj = DB::table('assessments')
404
+      ->join('activity_criterion', 'activity_criterion.id', '=', 'assessments.activity_criterion_id')
405
+      ->join('activities', 'activities.id', '=', 'activity_criterion.activity_id')
406
+      ->join('courses', 'courses.id', '=', 'activities.course_id')
407
+      ->join('students', 'students.id', '=', 'assessments.student_id')
408
+      ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'activity_criterion.criterion_id')
409
+      ->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
410
+      ->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
411
+      ->join('semesters', 'semesters.id', '=', 'courses.semester_id')
412
+      ->whereIn('students.program_id', $programs_ids)
413
+      ->whereIn('semester_id', Session::get('semesters_ids'))
414
+      ->where('semesters.is_visible', '=', 1)
415
+      ->select('student_id', 'students.program_id', 'semesters.code', 'outcome_id', 'criterion_objective_outcome.criterion_id', 'score', 'expected_points')
416
+      ->distinct()
417
+      ->get();
418
+
419
+    foreach ($resultados_todos_obj as $resultado) {
420
+      if (!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'])) {
421
+        $resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'] = array();
422
+      }
423
+      $resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'][] = $resultado->code;
424
+      $resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'] = array_unique($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']);
425
+      if (!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted'])) {
426
+        $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted'] = 0;
427
+      }
428
+      $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']++;
429
+
430
+      if (!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved'])) {
431
+        $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved'] = 0;
432
+      }
433
+      if ($resultado->score >= $resultado->expected_points) {
434
+        $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']++;
435
+      }
436
+    }
437
+
438
+    $outcomes_colap = array();
439
+    $programs = array();
440
+    // 			$outcomes_colap=array();
441
+    $i = 0;
442
+    $outcomes_attempted = array();
443
+    $outcomes_attempted_colap = array();
444
+    $outcomes_achieved_colap = array();
445
+    $outcomes_attempted_semesters = array();
446
+    foreach ($resultados_todos as $program_id => $resultados_prog) {
447
+      $outcomes_attempted_semesters[$program_id] = array();
448
+      foreach ($resultados_prog as $out => $datos_out) {
449
+        $outcomes_achieved[$program_id][$out] = 0;
450
+        $outcomes_attempted[$program_id][$out] = 0;
451
+        // 				var_dump($datos_out);outcomes_attempted_semesters
452
+        $outcomes_attempted_semesters[$program_id][$out] = $datos_out['semesters'];
453
+        unset($datos_out['semesters']);
454
+        // 				var_dump($outcomes_attempted_semesters[$program_id][$out]);
455
+        // 				var_dump($datos_out);
456
+        // 				exit();
457
+        foreach ($datos_out as $res) {
458
+          $outcomes_attempted[$program_id][$out]++;
459
+          if (3 * $res['achieved'] >= 2 * $res['attempted'])
460
+            $outcomes_achieved[$program_id][$out]++;
461
+        }
462
+      }
463
+      $programs[] = Program::find($program_id);
464
+      if (Program::find($program_id)->is_graduate) {
465
+        $colapso = array(1 => array(), 3 => array(), 2 => array(11), 12 => array(7, 14), 10 => array(), 4 => array(6, 15));
466
+      } else {
467
+        $colapso = array(10 => array(), 1 => array(), 12 => array(7), 3 => array(9, 8, 14), 2 => array(11), 5 => array(), 4 => array(6, 13), 16 => array());
468
+      }
469
+
470
+      $resultados_todos_colap[$program_id] = array();
471
+      foreach ($colapso as $out => $pares) {
472
+        $resultados_todos_colap[$program_id][$out]["semesters"] = array();
473
+        if (isset($resultados_todos[$program_id][$out]))
474
+          $resultados_todos_colap[$program_id][$out] = $resultados_todos[$program_id][$out];
475
+        else $resultados_todos_colap[$program_id][$out] = array();
476
+        foreach ($pares as $par) {
477
+          if (isset($resultados_todos[$program_id][$par])) {
478
+            // 						unset($resultados_todos[$program_id][$par]['semesters']);
479
+
480
+            foreach ($resultados_todos[$program_id][$par] as $estu => $resus) {
481
+              if ($estu != "semesters") {
482
+                if (!isset($resultados_todos_colap[$program_id][$out][$estu])) {
483
+                  $resultados_todos_colap[$program_id][$out][$estu]['attempted'] = 0;
484
+                  $resultados_todos_colap[$program_id][$out][$estu]['achieved'] = 0;
485
+                }
486
+                // 							print $program_id." ".$par." ".$estu."<br>";
487
+                // 							var_dump($resultados_todos[$program_id][$par][$estu]); 
488
+                $resultados_todos_colap[$program_id][$out][$estu]['attempted'] += $resultados_todos[$program_id][$par][$estu]['attempted'];
489
+                $resultados_todos_colap[$program_id][$out][$estu]['achieved'] += $resultados_todos[$program_id][$par][$estu]['achieved'];
490
+              } else if (isset($resultados_todos[$program_id][$par]["semesters"])) {
491
+                if (isset($resultados_todos_colap[$program_id][$out]["semesters"])) {
492
+                  $tmp = array_merge($resultados_todos_colap[$program_id][$out]["semesters"], $resultados_todos[$program_id][$par]["semesters"]);
493
+                  // 									var_dump(($tmp));
494
+                  // 									var_dump(array_unique($tmp));
495
+                  // 									exit();
496
+
497
+                  $resultados_todos_colap[$program_id][$out]["semesters"] = array_unique($tmp);
498
+                } else
499
+                  $resultados_todos_colap[$program_id][$out]["semesters"] = array_unique($resultados_todos[$program_id][$par]["semesters"]);
500
+              }
501
+            }
502
+          }
503
+        }
504
+      }
505
+      // 			var_dump($resultados_todos_colap);
506
+
507
+      $outcomes_attempted_colap[$program_id] = array();
508
+      $outcomes_achieved_colap[$program_id] = array();
509
+      $outcomes_attempted_colap_semesters[$program_id] = array();
510
+      // 			print $program_id."<br>";
511
+      // 				var_dump($resultados_todos_colap[$program_id]);
512
+      // 			print "<br>";
513
+      foreach ($resultados_todos_colap[$program_id] as $out => $datos_out) {
514
+        if (!$i) $outcomes_colap[] = Outcome::find($out);
515
+        // 				$outcomes_attempted_colap_semesters[$program_id][$out]=array();
516
+        if (isset($datos_out['semesters'])) {
517
+          $outcomes_attempted_colap_semesters[$program_id][$out] = $datos_out['semesters'];
518
+          unset($datos_out['semesters']);
519
+        }
520
+        foreach ($datos_out as $res) {
521
+          if (!isset($outcomes_attempted_colap[$program_id][$out])) {
522
+            $outcomes_attempted_colap[$program_id][$out] = 0;
523
+            $outcomes_achieved_colap[$program_id][$out] = 0;
524
+          }
525
+          $outcomes_attempted_colap[$program_id][$out]++;
526
+          if (3 * $res['achieved'] >= 2 * $res['attempted'])
527
+            $outcomes_achieved_colap[$program_id][$out]++;
528
+        }
529
+        if (empty($datos_out)) {
530
+          $outcomes_attempted_colap[$program_id][$out] = 0;
531
+          $outcomes_achieved_colap[$program_id][$out] = 0;
532
+        }
533
+      }
534
+      $i++;
535
+    }
536
+    usort($outcomes_colap, array($this, "cmp"));
537
+    // 		var_dump($outcomes_attempted_colap); print "<br>";
538
+    // 		var_dump($outcomes_achieved_colap); print "<br>";
539
+    // 	exit();
540
+    $outcomes_attempted_colap_todo = array();
541
+    $outcomes_achieved_colap_todo = array();
542
+    foreach ($outcomes_attempted_colap as $program_id => $out_res) {
543
+      foreach ($out_res as $out => $res) {
544
+        if (!isset($outcomes_attempted_colap_todo[$out])) {
545
+          $outcomes_attempted_colap_todo[$out] = 0;
546
+          $outcomes_achieved_colap_todo[$out] = 0;
547
+        }
548
+        $outcomes_attempted_colap_todo[$out] += $outcomes_attempted_colap[$program_id][$out];
549
+        $outcomes_achieved_colap_todo[$out] += $outcomes_achieved_colap[$program_id][$out];
550
+      }
544 551
     }
552
+    $outcomes_attempted_todo = array();
553
+    $outcomes_achieved_todo = array();
554
+    foreach ($outcomes_attempted as $program_id => $out_res) {
555
+      foreach ($out_res as $out => $res) {
556
+        if (!isset($outcomes_attempted_todo[$out])) {
557
+          $outcomes_attempted_todo[$out] = 0;
558
+          $outcomes_achieved_todo[$out] = 0;
559
+        }
560
+        $outcomes_attempted_todo[$out] += $outcomes_attempted[$program_id][$out];
561
+        $outcomes_achieved_todo[$out] += $outcomes_achieved[$program_id][$out];
562
+      }
563
+    }
564
+    $outcomes_attempted_colap = $outcomes_attempted_colap_todo;
565
+    $outcomes_achieved_colap = $outcomes_achieved_colap_todo;
566
+    $outcomes_attempted = $outcomes_attempted_todo;
567
+    $outcomes_achieved = $outcomes_achieved_todo;
568
+    // 	var_dump($outcomes_attempted_colap);
569
+    // 	var_dump($outcomes_attempted_colap);
570
+    // 	    return View::make('local.managers.shared.school_student_result', compact('title','outcomes_attempted_colap_semesters','outcomes_attempted_semesters','outcomes_attempted_colap_todo','outcomes_achieved_colap_todo','outcomes_attempted_todo','outcomes_achieved_todo','school','programs_name','role','outcomes','outcomes_colap', 'outcomes_attempted', 'outcomes_achieved', 'outcomes_attempted_colap', 'outcomes_achieved_colap', 'programs', 'users','program_courses','grouped_courses'));
571
+
572
+    return View::make('local.managers.shared.program_student_result', compact('title', 'role', 'outcomes', 'outcomes_colap', 'outcomes_attempted', 'outcomes_achieved', 'outcomes_attempted_colap', 'outcomes_achieved_colap', 'program', 'users', 'program_courses', 'grouped_courses'));
573
+  }
545 574
 
546 575
   //   public function show($id)
547 576
   //   {
@@ -627,84 +656,81 @@ class ProgramsController extends \BaseController
627 656
     $program = Program::find($id);
628 657
     $title = $program->name . ' Assessment Report - ' . date('m/d/Y');
629 658
     $schools = School::all();
630
-   // $outcomeCount = Outcome::all()->count();
659
+    // $outcomeCount = Outcome::all()->count();
631 660
     $semesters = Session::get('semesters_ids');
632
-//     $semesters = DB::table('semesters')->where('id', $course->semester_id)->orderBy('start', 'ASC')->first();
633
-        $semesters2 = Semester::whereIn('id',Session::get('semesters_ids'))->get();
661
+    //     $semesters = DB::table('semesters')->where('id', $course->semester_id)->orderBy('start', 'ASC')->first();
662
+    $semesters2 = Semester::whereIn('id', Session::get('semesters_ids'))->get();
634 663
 
635 664
     $program_courses = $program->courses;
636
-     //$outcomes = Outcome::orderBy('name', 'asc')->get();
637
-	$outcomes = Outcome::active_by_semesters($semesters2, $program->is_graduate);
638
-	$outcomeCount = count($outcomes);
639
-	$outcomes_achieved = [];
640
-	$outcomes_attempted = [];
641
-
642
-// 	Log::info($program_courses);
643
-	foreach($outcomes as $outcome)
644
-	{
645
-			$outcomes_attempted[$outcome->id]=0;
646
-			$outcomes_achieved[$outcome->id]=0;
647
-	}
648
-
649
-    $assessed_courses_count=0;
650
-	foreach ($program_courses as $course) {
651
-
652
-		if ($course->outcomes_att()) {
653
-			$course_outcomes_attempted = $course->outcomes_att();
654
-			foreach ($course_outcomes_attempted as $outcome => $score) {
655
-				if (array_key_exists($outcome, $outcomes_attempted))
656
-					$outcomes_attempted[$outcome] += $score;
657
-				else $outcomes_attempted[$outcome] = $score;
658
-			}
659
-	        $assessed_courses_count+=1;
660
-		}
661
-
662
-		if ($course->outcomes_ach()) {
663
-
664
-			$course_outcomes_achieved = $course->outcomes_ach();
665
-			foreach ($course_outcomes_achieved as $outcome => $score) {
666
-				if (array_key_exists($outcome, $outcomes_achieved))
667
-					$outcomes_achieved[$outcome] += $score;
668
-				else $outcomes_achieved[$outcome] = $score;
669
-			}
670
-			}
671
-			
672
-	}
673
-
674
-    
675
-    
676
-
677
-//     $outcomes = Outcome::select(array('id', 'name', 'expected_outcome'))
678
-//         ->whereNull('deleted_at')
679
-//         ->whereRaw("(deactivation_date IS NULL or deactivation_date >= '{$semesters->start}')")
680
-//         ->orderBy('name', 'ASC')->get();
681
-// 
682
-//     $outcomes_achieved = array_fill(1, $outcomeCount, 0);
683
-//     $outcomes_attempted = array_fill(1, $outcomeCount, 0);
684
-
685
-//     $assessed_courses_count=0;
686
-//     foreach ($program_courses as $course)
687
-//     {
688
-//       if($course->outcomes_achieved!=NULL)
689
-//       {
690
-//         $course_outcomes_achieved =json_decode($course->outcomes_achieved, true);
691
-//         $course_outcomes_attempted =json_decode($course->outcomes_attempted, true);
692
-//         for($i=1; $i<=count($outcomes_attempted); $i++)
693
-//         {
694
-//           $outcomes_achieved[$i]+=$course_outcomes_achieved[$i];
695
-//           $outcomes_attempted[$i]+=$course_outcomes_attempted[$i];
696
-//         }
697
-//         $assessed_courses_count+=1;
698
-//       }
699
-//     }
665
+    //$outcomes = Outcome::orderBy('name', 'asc')->get();
666
+    $outcomes = Outcome::active_by_semesters($semesters2, $program->is_graduate);
667
+    $outcomeCount = count($outcomes);
668
+    $outcomes_achieved = [];
669
+    $outcomes_attempted = [];
670
+
671
+    // 	Log::info($program_courses);
672
+    foreach ($outcomes as $outcome) {
673
+      $outcomes_attempted[$outcome->id] = 0;
674
+      $outcomes_achieved[$outcome->id] = 0;
675
+    }
676
+
677
+    $assessed_courses_count = 0;
678
+    foreach ($program_courses as $course) {
679
+
680
+      if ($course->outcomes_att()) {
681
+        $course_outcomes_attempted = $course->outcomes_att();
682
+        foreach ($course_outcomes_attempted as $outcome => $score) {
683
+          if (array_key_exists($outcome, $outcomes_attempted))
684
+            $outcomes_attempted[$outcome] += $score;
685
+          else $outcomes_attempted[$outcome] = $score;
686
+        }
687
+        $assessed_courses_count += 1;
688
+      }
689
+
690
+      if ($course->outcomes_ach()) {
691
+
692
+        $course_outcomes_achieved = $course->outcomes_ach();
693
+        foreach ($course_outcomes_achieved as $outcome => $score) {
694
+          if (array_key_exists($outcome, $outcomes_achieved))
695
+            $outcomes_achieved[$outcome] += $score;
696
+          else $outcomes_achieved[$outcome] = $score;
697
+        }
698
+      }
699
+    }
700
+
701
+
702
+
703
+
704
+    //     $outcomes = Outcome::select(array('id', 'name', 'expected_outcome'))
705
+    //         ->whereNull('deleted_at')
706
+    //         ->whereRaw("(deactivation_date IS NULL or deactivation_date >= '{$semesters->start}')")
707
+    //         ->orderBy('name', 'ASC')->get();
708
+    // 
709
+    //     $outcomes_achieved = array_fill(1, $outcomeCount, 0);
710
+    //     $outcomes_attempted = array_fill(1, $outcomeCount, 0);
711
+
712
+    //     $assessed_courses_count=0;
713
+    //     foreach ($program_courses as $course)
714
+    //     {
715
+    //       if($course->outcomes_achieved!=NULL)
716
+    //       {
717
+    //         $course_outcomes_achieved =json_decode($course->outcomes_achieved, true);
718
+    //         $course_outcomes_attempted =json_decode($course->outcomes_attempted, true);
719
+    //         for($i=1; $i<=count($outcomes_attempted); $i++)
720
+    //         {
721
+    //           $outcomes_achieved[$i]+=$course_outcomes_achieved[$i];
722
+    //           $outcomes_attempted[$i]+=$course_outcomes_attempted[$i];
723
+    //         }
724
+    //         $assessed_courses_count+=1;
725
+    //       }
726
+    //     }
700 727
 
701 728
     /**
702 729
      * List of grouped courses (grouped sections)
703 730
      */
704 731
 
705
-//       select(DB::raw('name, code, number, max(outcomes_attempted) as outcomes_attempted, semester_id, program_id'))
706
-    $grouped_courses = Course::
707
-      select(DB::raw('id, name, code, number, semester_id, program_id'))
732
+    //       select(DB::raw('name, code, number, max(outcomes_attempted) as outcomes_attempted, semester_id, program_id'))
733
+    $grouped_courses = Course::select(DB::raw('id, name, code, number, semester_id, program_id'))
708 734
       ->with('semester')
709 735
       ->with('program')
710 736
       ->where('program_id', $program->id)
@@ -715,18 +741,15 @@ class ProgramsController extends \BaseController
715 741
       ->orderBy('semester_id')
716 742
       ->get();
717 743
 
718
-	foreach($grouped_courses as &$course)
719
-	{
720
-		$course->outcomes_attempted=null;
721
-		if(count($course->assessedActivities) and count($course->publishedActivities))
722
-		{
723
-			$course->outcomes_attempted=true;
724
-		}
725
-	
726
-	}
727
-
728
-// 	Log::info($grouped_courses);
729
-// exit();
744
+    foreach ($grouped_courses as &$course) {
745
+      $course->outcomes_attempted = null;
746
+      if (count($course->assessedActivities) and count($course->publishedActivities)) {
747
+        $course->outcomes_attempted = true;
748
+      }
749
+    }
750
+
751
+    // 	Log::info($grouped_courses);
752
+    // exit();
730 753
     $semesters = Session::get('semesters_ids');
731 754
     $semesters = DB::table('semesters')->whereIn('id', $semesters)->orderBy('start', 'ASC')->first();
732 755
     Log::info($semesters->start);
@@ -850,4 +873,4 @@ class ProgramsController extends \BaseController
850 873
     Log::info('id:' . Input::get('id'));
851 874
     return School::find(Input::get('id'))->programs;
852 875
   }
853
-}
876
+}

+ 3
- 2
app/controllers/SchoolCoordinatorsController.php Zobrazit soubor

@@ -62,6 +62,7 @@ class SchoolCoordinatorsController extends \BaseController
62 62
             ->get();
63 63
 
64 64
 
65
+
65 66
         $grad_grouped_courses = Course::
66 67
             //             select(DB::raw('courses.name, courses.code, courses.number, max(courses.outcomes_attempted) as outcomes_attempted, courses.semester_id, courses.program_id'))
67 68
             select(DB::raw('courses.name, courses.code, courses.number, courses.semester_id, courses.program_id'))
@@ -216,7 +217,7 @@ class SchoolCoordinatorsController extends \BaseController
216 217
             return View::make('local.managers.shared.schoolTest', compact('title', 'outcomes_grad', 'outcomes_undergrad', 'undergrad_programs', 'grad_programs', 'undergrad_outcomes_attempted', 'grad_outcomes_attempted', 'undergrad_outcomes_achieved', 'grad_outcomes_achieved', 'schools', 'school', 'undergrad_assessed_sections_count', 'grad_assessed_sections_count', 'undergrad_school_sections_count', 'grad_school_sections_count', 'achievedUndergradProgramsPerOutcome', 'achievedGradProgramsPerOutcome', 'attemptedUndergradProgramsPerOutcome', 'attemptedGradProgramsPerOutcome', 'grad_grouped_courses', 'undergrad_grouped_courses', 'participating_programs'));
217 218
         }
218 219
     }
219
-     public function overview()
220
+    public function overview()
220 221
     {
221 222
         ini_set('memory_limit', '256M');
222 223
         DB::connection()->disableQueryLog();
@@ -760,4 +761,4 @@ class SchoolCoordinatorsController extends \BaseController
760 761
         //         return View::make('local.managers.shared.school', compact('title', 'outcomes', 'undergrad_programs', 'grad_programs', 'undergrad_outcomes_attempted', 'grad_outcomes_attempted', 'undergrad_outcomes_achieved', 'grad_outcomes_achieved', 'schools', 'school', 'undergrad_assessed_sections_count', 'grad_assessed_sections_count', 'undergrad_school_sections_count', 'grad_school_sections_count', 'achievedUndergradProgramsPerOutcome', 'achievedGradProgramsPerOutcome', 'attemptedUndergradProgramsPerOutcome', 'attemptedGradProgramsPerOutcome', 'grad_grouped_courses', 'undergrad_grouped_courses', 'participating_programs', 'participating_undergrad_programs', 'participating_grad_programs'));
761 762
         return View::make('local.managers.shared.school', compact('title', 'outcomes', 'undergrad_programs', 'grad_programs', 'undergrad_outcomes_attempted', 'grad_outcomes_attempted', 'undergrad_outcomes_achieved', 'grad_outcomes_achieved', 'schools', 'school', 'undergrad_assessed_sections_count', 'grad_assessed_sections_count', 'undergrad_school_sections_count', 'grad_school_sections_count', 'achievedUndergradProgramsPerOutcome', 'achievedGradProgramsPerOutcome', 'attemptedUndergradProgramsPerOutcome', 'attemptedGradProgramsPerOutcome', 'grad_grouped_courses', 'undergrad_grouped_courses', 'participating_programs'));
762 763
     }
763
-}
764
+}

+ 458
- 239
app/controllers/SchoolsController.php Zobrazit soubor

@@ -38,6 +38,30 @@ class SchoolsController extends \BaseController
38 38
         $outcomes_grad = Outcome::active_by_semesters($semesters, 1);
39 39
         $outcomes_undergrad = Outcome::active_by_semesters($semesters, 0);
40 40
 
41
+        $undergrad_stu_outcome_attempted = [];
42
+        $grad_stu_outcome_attempted = [];
43
+        $undergrad_stu_outcome_achieved = [];
44
+        $grad_stu_outcome_achieved = [];
45
+
46
+        $attemptedUndergradProgramsPerOutcome = [];
47
+        $achievedUndergradProgramsPerOutcome = [];
48
+        $attemptedGradProgramsPerOutcome = [];
49
+        $achievedGradProgramsPerOutcome = [];
50
+
51
+        foreach ($outcomes_undergrad as $outcome) {
52
+            $undergrad_stu_outcome_attempted[$outcome->id] = 0;
53
+            $undergrad_stu_outcome_achieved[$outcome->id] = 0;
54
+            $attemptedUndergradProgramsPerOutcome[$outcome->id] = [];
55
+            $achievedUndergradProgramsPerOutcome[$outcome->id] = [];
56
+        }
57
+
58
+        foreach ($outcomes_grad as $outcome) {
59
+            $grad_stu_outcome_attempted[$outcome->id] = 0;
60
+            $grad_stu_outcome_achieved[$outcome->id] = 0;
61
+            $attemptedGradProgramsPerOutcome[$outcome->id] = [];
62
+            $achievedGradProgramsPerOutcome[$outcome->id] = [];
63
+        }
64
+
41 65
         /**
42 66
          * List of grouped courses (grouped sections)
43 67
          */
@@ -51,6 +75,8 @@ class SchoolsController extends \BaseController
51 75
             ->orderBy('name', 'ASC')
52 76
             ->get();
53 77
 
78
+
79
+
54 80
         $grad_programs = DB::table('programs')
55 81
             ->select('id', 'name', 'school_id', 'is_graduate')
56 82
             ->where('is_graduate', '=', 1)
@@ -59,6 +85,139 @@ class SchoolsController extends \BaseController
59 85
             ->get();
60 86
 
61 87
 
88
+        //quiero ver si monto el query tm aqui
89
+
90
+        $undergrad_programs_list = DB::table('programs')
91
+            ->select('id', 'name', 'school_id', 'is_graduate')
92
+            ->where('is_graduate', '=', 0)
93
+            ->where('school_id', '=', $id)
94
+            ->orderBy('name', 'ASC')
95
+            ->lists('id');
96
+
97
+        $grad_programs_list = DB::table('programs')
98
+            ->select('id', 'name', 'school_id', 'is_graduate')
99
+            ->where('is_graduate', '=', 1)
100
+            ->where('school_id', '=', $id)
101
+            ->orderBy('name', 'ASC')
102
+            ->lists('id');
103
+
104
+
105
+        $undergraduate_student_query = DB::table("courses")
106
+            ->join('activities', 'activities.course_id', '=', 'courses.id')
107
+            ->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
108
+            ->join('assessments', 'assessments.activity_criterion_id', '=', 'activity_criterion.id')
109
+            ->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
110
+            ->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
111
+            ->join('criterion_objective_outcome as cobo', 'cobo.criterion_id', '=', 'activity_criterion.criterion_id')
112
+            ->join('program_criterion_objective_outcome as poco', function ($q) {
113
+                $q->on('courses.program_id', '=', 'poco.program_id')
114
+                    ->on('cobo.id', '=', 'poco.cri_obj_out_id');
115
+            })
116
+            ->join('students', 'students.id', '=', 'assessments.student_id')
117
+            ->whereIn('poco.program_id',  $undergrad_programs_list)
118
+            ->whereIn("courses.semester_id", Session::get('semesters_ids'))
119
+            ->whereIn('courses.program_id',  $undergrad_programs_list)
120
+            ->select('students.number as student_id')
121
+            ->addSelect(DB::raw('count(assessments.activity_criterion_id) as criteria_attempted'))
122
+            ->addSelect(DB::raw('count(case when assessments.score>=rubrics.expected_points then 1 else NULL end) as criteria_achieved'))
123
+            ->addSelect('outcome_id')
124
+            ->groupBy(array('students.id', 'outcome_id'))
125
+            ->get();
126
+
127
+
128
+        Log::info($undergraduate_student_query);
129
+
130
+        $grad_student_query = DB::table("courses")
131
+            ->join('activities', 'activities.course_id', '=', 'courses.id')
132
+            ->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
133
+            ->join('assessments', 'assessments.activity_criterion_id', '=', 'activity_criterion.id')
134
+            ->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
135
+            ->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
136
+            ->join('criterion_objective_outcome as cobo', 'cobo.criterion_id', '=', 'activity_criterion.criterion_id')
137
+            ->join('program_criterion_objective_outcome as poco', function ($q) {
138
+                $q->on('courses.program_id', '=', 'poco.program_id')
139
+                    ->on('cobo.id', '=', 'poco.cri_obj_out_id');
140
+            })
141
+            ->join('students', 'students.id', '=', 'assessments.student_id')
142
+            ->whereIn('poco.program_id',  $grad_programs_list)
143
+            ->whereIn("courses.semester_id", Session::get('semesters_ids'))
144
+            ->whereIn('courses.program_id',  $grad_programs_list)
145
+            ->select('students.number as student_id')
146
+            ->addSelect(DB::raw('count(assessments.activity_criterion_id) as criteria_attempted'))
147
+            ->addSelect(DB::raw('count(case when assessments.score>=rubrics.expected_points then 1 else NULL end) as criteria_achieved'))
148
+            ->addSelect('outcome_id')
149
+            ->groupBy(array('students.id', 'outcome_id'))
150
+            ->get();
151
+
152
+        //school
153
+
154
+
155
+
156
+        /*
157
+            student x, crit achieved, crit attempted, outcome 1
158
+            student x, crit achieved, crit attempted, outcome 2
159
+            student x, crit achieved, crit attempted, outcome 3
160
+            student x, crit achieved, crit attempted, outcome 4
161
+            student y, crit achieved, crit attempted, outcome 1
162
+            student y, crit achieved, crit attempted, outcome 2
163
+            student y, crit achieved, crit attempted, outcome 3
164
+            ....
165
+            
166
+
167
+            */
168
+
169
+        $grad_outcomes_attempted = [];
170
+        $grad_outcomes_achieved = [];
171
+        $undergrad_outcomes_attempted = [];
172
+        $undergrad_outcomes_achieved = [];
173
+
174
+        foreach ($outcomes_grad as $outcome) {
175
+            $grad_outcomes_attempted[$outcome->id] = 0;
176
+            $grad_outcomes_achieved[$outcome->id] = 0;
177
+        }
178
+
179
+        foreach ($outcomes_undergrad as $outcome) {
180
+            $undergrad_outcomes_attempted[$outcome->id] = 0;
181
+            $undergrad_outcomes_achieved[$outcome->id] = 0;
182
+        }
183
+
184
+        foreach ($grad_student_query as $result) {
185
+            if ($result->criteria_attempted != 0) {
186
+                if (!isset($grad_outcomes_attempted[$result->outcome_id]))
187
+                    continue;
188
+
189
+                $grad_outcomes_attempted[$result->outcome_id]++;
190
+
191
+                $percent = $result->criteria_achieved / $result->criteria_attempted * 100;
192
+
193
+                if ($percent >= 66.66) {
194
+
195
+
196
+                    $grad_outcomes_achieved[$result->outcome_id]++;
197
+                }
198
+            }
199
+        }
200
+
201
+
202
+
203
+
204
+        foreach ($undergraduate_student_query as $result) {
205
+            if ($result->criteria_attempted != 0) {
206
+                if (!isset($undergrad_outcomes_attempted[$result->outcome_id]))
207
+                    continue;
208
+
209
+                $undergrad_outcomes_attempted[$result->outcome_id]++;
210
+
211
+                $percent = $result->criteria_achieved / $result->criteria_attempted * 100;
212
+
213
+                if ($percent >= 66.66) {
214
+
215
+
216
+                    $undergrad_outcomes_achieved[$result->outcome_id]++;
217
+                }
218
+            }
219
+        }
220
+
62 221
         $grad_grouped_courses = Course::
63 222
             //             select(DB::raw('courses.name, courses.code, courses.number, max(courses.outcomes_attempted) as outcomes_attempted, courses.semester_id, courses.program_id'))
64 223
             select(DB::raw('courses.name, courses.code, courses.number, courses.semester_id, courses.program_id'))
@@ -135,11 +294,116 @@ class SchoolsController extends \BaseController
135 294
             }
136 295
         }
137 296
 
297
+
298
+        //como resuelvo programsAttempted y eso
299
+
300
+
301
+        //El query es el mismo de students, lo unico que dividido con programas,
302
+        //asi que lo que esta haciendo es, prog 1, y coge los dominios y estudiantes que evaluason
303
+
304
+
305
+        $undergrad_prog_attempted =  DB::table("courses")
306
+            ->join('activities', 'activities.course_id', '=', 'courses.id')
307
+            ->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
308
+            ->join('assessments', 'assessments.activity_criterion_id', '=', 'activity_criterion.id')
309
+            ->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
310
+            ->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
311
+            ->join('criterion_objective_outcome as cobo', 'cobo.criterion_id', '=', 'activity_criterion.criterion_id')
312
+            ->join('program_criterion_objective_outcome as poco', function ($q) {
313
+                $q->on('courses.program_id', '=', 'poco.program_id')
314
+                    ->on('cobo.id', '=', 'poco.cri_obj_out_id');
315
+            })
316
+            ->join('students', 'students.id', '=', 'assessments.student_id')
317
+            ->whereIn("courses.semester_id", Session::get('semesters_ids'))
318
+            ->whereIn('poco.program_id',  $undergrad_programs_list)
319
+
320
+            ->whereIn('courses.program_id',  $undergrad_programs_list)
321
+            ->select('students.number as student_id')
322
+            ->addSelect(DB::raw('count(assessments.activity_criterion_id) as criteria_attempted'))
323
+            ->addSelect(DB::raw('count(case when assessments.score>=rubrics.expected_points then 1 else NULL end) as criteria_achieved'))
324
+            ->addSelect('outcome_id')
325
+            ->addSelect("courses.program_id")
326
+            ->groupBy(array('students.id', 'outcome_id', 'program_id'))
327
+            ->get();
328
+
329
+        $grad_prog_attempted =  DB::table("courses")
330
+            ->join('activities', 'activities.course_id', '=', 'courses.id')
331
+            ->join('activity_criterion', 'activity_criterion.activity_id', '=', 'activities.id')
332
+            ->join('assessments', 'assessments.activity_criterion_id', '=', 'activity_criterion.id')
333
+            ->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
334
+            ->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
335
+            ->join('criterion_objective_outcome as cobo', 'cobo.criterion_id', '=', 'activity_criterion.criterion_id')
336
+            ->join('program_criterion_objective_outcome as poco', function ($q) {
337
+                $q->on('courses.program_id', '=', 'poco.program_id')
338
+                    ->on('cobo.id', '=', 'poco.cri_obj_out_id');
339
+            })
340
+            ->join('students', 'students.id', '=', 'assessments.student_id')
341
+            ->whereIn("courses.semester_id", Session::get('semesters_ids'))
342
+            ->whereIn('poco.program_id',  $grad_programs_list)
343
+
344
+            ->whereIn('courses.program_id',  $grad_programs_list)
345
+            ->select('students.number as student_id')
346
+            ->addSelect(DB::raw('count(assessments.activity_criterion_id) as criteria_attempted'))
347
+            ->addSelect(DB::raw('count(case when assessments.score>=rubrics.expected_points then 1 else NULL end) as criteria_achieved'))
348
+            ->addSelect('outcome_id')
349
+            ->addSelect("courses.program_id")
350
+            ->groupBy(array('students.id', 'outcome_id', 'program_id'))
351
+            ->get();
352
+
353
+        //este arreglo va a tener attempted[outcome->id][program->id]
354
+
355
+        //so la cardinalidad de attempted[outcome->id] dice cuantos programas intentaron, achieved[outcome->id], va 
356
+        //a decir cuantos pasaron y attempted[outcome->id][program->id] la suma de estudiantes que intentaron
357
+        // 
358
+
359
+
360
+        foreach ($undergrad_prog_attempted as $row) {
361
+            $program_id = $row->program_id;
362
+            $outcome_id = $row->outcome_id;
363
+            if (!isset($attemptedUndergradProgramsPerOutcome[$outcome_id][$program_id]))
364
+                $attemptedUndergradProgramsPerOutcome[$outcome_id][$program_id] = 0;
365
+
366
+
367
+            $attemptedUndergradProgramsPerOutcome[$outcome_id][$program_id]++;
368
+
369
+            $criteria_attempted_by_stu = $row->criteria_attempted;
370
+            $criteria_achieved_by_stu = $row->criteria_achieved;
371
+            if ($criteria_attempted_by_stu != 0 && $criteria_achieved_by_stu / $criteria_attempted_by_stu * 100 >= 66.67) {
372
+
373
+                if (!isset($achievedUndergradProgramsPerOutcome[$outcome_id][$program_id]))
374
+                    $achievedUndergradProgramsPerOutcome[$outcome_id][$program_id] = 0;
375
+                $achievedUndergradProgramsPerOutcome[$outcome_id][$program_id]++;
376
+            }
377
+        }
378
+
379
+        foreach ($grad_prog_attempted as $row) {
380
+            $program_id = $row->program_id;
381
+            $outcome_id = $row->outcome_id;
382
+            if (!isset($attemptedGradProgramsPerOutcome[$outcome_id][$program_id]))
383
+                $attemptedGradProgramsPerOutcome[$outcome_id][$program_id] = 0;
384
+
385
+
386
+            $attemptedGradProgramsPerOutcome[$outcome_id][$program_id]++;
387
+
388
+            $criteria_attempted_by_stu = $row->criteria_attempted;
389
+            $criteria_achieved_by_stu = $row->criteria_achieved;
390
+            if ($criteria_attempted_by_stu != 0 && $criteria_achieved_by_stu / $criteria_attempted_by_stu * 100 >= 66.67) {
391
+                if (!isset($achievedGradProgramsPerOutcome[$outcome_id][$program_id]))
392
+                    $achievedGradProgramsPerOutcome[$outcome_id][$program_id] = 0;
393
+                $achievedGradProgramsPerOutcome[$outcome_id][$program_id]++;
394
+            }
395
+        }
396
+
397
+
398
+
399
+
400
+
138 401
         /**
139 402
          * Calculate how many programs achieved and attempted each outcome in this school
140 403
          */
141 404
 
142 405
         // For each outcome 
406
+        /*
143 407
         foreach ($outcomes_undergrad as $outcome) {
144 408
             //         	$attempted_outcomes_per_undergrad_program[$outcome->id]=0;
145 409
             //         	$achieved_outcomes_per_undergrad_program[$outcome->id]=0;
@@ -168,12 +432,12 @@ class SchoolsController extends \BaseController
168 432
                 //                 $query->whereNotNull('outcomes_attempted');
169 433
                 $query->whereIn('semester_id', Session::get('semesters_ids'));
170 434
             }))->where('is_graduate', 0)->where('school_id', $school->id)->orderBy('name', 'asc')->get();
171
-        }
435
+        }*/
172 436
 
173 437
         /**
174 438
          * Calculate how many Graduate programs achieved and attempted each outcome in this school
175 439
          */
176
-
440
+        /*
177 441
         // For each outcome 
178 442
         foreach ($outcomes_grad as $outcome) {
179 443
             //         	$attempted_outcomes_per_grad_program[$outcome->id]=0;
@@ -203,7 +467,7 @@ class SchoolsController extends \BaseController
203 467
                 //                 $query->whereNotNull('outcomes_attempted');
204 468
                 $query->whereIn('semester_id', Session::get('semesters_ids'));
205 469
             }))->where('is_graduate', 1)->where('school_id', $school->id)->orderBy('name', 'asc')->get();
206
-        }
470
+        }*/
207 471
         if ($school->id == 13) {
208 472
             //             return View::make('local.managers.shared.school-uhs', compact('title', 'outcomes', 'undergrad_programs', 'grad_programs', 'undergrad_outcomes_attempted', 'grad_outcomes_attempted', 'undergrad_outcomes_achieved', 'grad_outcomes_achieved', 'schools', 'school', 'undergrad_assessed_sections_count', 'grad_assessed_sections_count', 'undergrad_school_sections_count', 'grad_school_sections_count', 'achievedUndergradProgramsPerOutcome', 'achievedGradProgramsPerOutcome', 'attemptedUndergradProgramsPerOutcome', 'attemptedGradProgramsPerOutcome', 'grad_grouped_courses', 'undergrad_grouped_courses', 'participating_programs', 'participating_undergrad_programs', 'participating_grad_programs'));
209 473
             return View::make('local.managers.shared.school-uhs', compact('title', 'outcomes_grad', 'outcomes_undergrad', 'undergrad_programs', 'grad_programs', 'undergrad_outcomes_attempted', 'grad_outcomes_attempted', 'undergrad_outcomes_achieved', 'grad_outcomes_achieved', 'schools', 'school', 'undergrad_assessed_sections_count', 'grad_assessed_sections_count', 'undergrad_school_sections_count', 'grad_school_sections_count', 'achievedUndergradProgramsPerOutcome', 'achievedGradProgramsPerOutcome', 'attemptedUndergradProgramsPerOutcome', 'attemptedGradProgramsPerOutcome', 'grad_grouped_courses', 'undergrad_grouped_courses', 'participating_programs'));
@@ -213,31 +477,30 @@ class SchoolsController extends \BaseController
213 477
         }
214 478
     }
215 479
 
216
-	private function cmp($a, $b) 
217
-	{
218
-		return strcmp($a->name, $b->name);
219
-	}
480
+    private function cmp($a, $b)
481
+    {
482
+        return strcmp($a->name, $b->name);
483
+    }
220 484
 
221 485
     public function studentSchoolAssessmentReport($school_id)
222 486
     {
223
-		$id=$school_id;
224
-		ini_set('memory_limit', -1);
225
-		ini_set('max_execution_time', 300);
226
-	
227
-		$outcomes = Outcome::orderBy('name', 'asc')->get();
228
-		$school = School::find($school_id);
229
-		$title= $school->name;
230
-		$outcomeCount = Outcome::all()->count();
231
-		$programs=Program::where('school_id','=',$school_id)->get();
232
-		$programs_ids=array();
233
-// 				var_dump($programs);exit();
234
-		$programs_name=array();
235
-		foreach($programs as $program)
236
-		{
237
-// 			var_dump($program);
238
-			$programs_ids[]=$program->id;
239
-			$programs_name[$program->id]=$program->name;
240
-		}
487
+        $id = $school_id;
488
+        ini_set('memory_limit', -1);
489
+        ini_set('max_execution_time', 300);
490
+
491
+        $outcomes = Outcome::orderBy('name', 'asc')->get();
492
+        $school = School::find($school_id);
493
+        $title = $school->name;
494
+        $outcomeCount = Outcome::all()->count();
495
+        $programs = Program::where('school_id', '=', $school_id)->get();
496
+        $programs_ids = array();
497
+        // 				var_dump($programs);exit();
498
+        $programs_name = array();
499
+        foreach ($programs as $program) {
500
+            // 			var_dump($program);
501
+            $programs_ids[] = $program->id;
502
+            $programs_name[$program->id] = $program->name;
503
+        }
241 504
 
242 505
         $grouped_courses = Course::
243 506
             //             select(DB::raw('courses.name, courses.code, courses.number, max(courses.outcomes_attempted) as outcomes_attempted, courses.semester_id, courses.program_id'))
@@ -254,219 +517,175 @@ class SchoolsController extends \BaseController
254 517
             ->get();
255 518
 
256 519
 
257
-		$role=Auth::user()->role;
258
-
259
-		$users =array();
260
-
261
-
262
-		$resultados_todos_obj = DB::table('assessments')
263
-         						->join('activity_criterion', 'activity_criterion.id', '=', 'assessments.activity_criterion_id')
264
-         						->join('activities', 'activities.id', '=', 'activity_criterion.activity_id')
265
-         						->join('courses', 'courses.id', '=', 'activities.course_id')
266
-         						->join('students', 'students.id', '=', 'assessments.student_id')
267
-         						->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'activity_criterion.criterion_id')
268
-         						->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
269
-         						->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
270
-         						->join('semesters', 'semesters.id', '=', 'courses.semester_id')
271
-          						->whereIn('students.program_id',$programs_ids)
272
-                   			   	->whereIn('semester_id', Session::get('semesters_ids'))
273
-                   			   	->where('semesters.is_visible','=',1)
274
-                    			->select('student_id', 'students.program_id', 'semesters.code', 'outcome_id', 'criterion_objective_outcome.criterion_id','score','expected_points')
275
-								->distinct()
276
-                    			->get();
277
-
278
-		foreach($resultados_todos_obj as $resultado)
279
-		{
280
-			if(!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']))
281
-			{
282
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']=array();
283
-			}
284
-			$resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'][]=$resultado->code;
285
-			$resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']=array_unique($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']);
286
-			if(!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']))
287
-			{
288
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']=0;
289
-			}
290
-			$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']++;
291
-
292
-			if(!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']))
293
-			{
294
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']=0;
295
-			}
296
-			if($resultado->score>=$resultado->expected_points)
297
-			{
298
-				$resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']++;
299
-			}
300
-		}
301
-
302
-		$outcomes_colap=array();
303
-		$programs=array();
304
-// 			$outcomes_colap=array();
305
-		$i=0;
306
-		$outcomes_attempted=array();
307
-		$outcomes_attempted_colap=array();
308
-		$outcomes_achieved_colap=array();
309
-		$outcomes_attempted_semesters=array();
310
-		foreach($resultados_todos as $program_id => $resultados_prog)
311
-		{
312
-	     	$outcomes_attempted_semesters[$program_id]=array();
313
-			foreach($resultados_prog as $out=>$datos_out)
314
-			{
315
-				$outcomes_achieved[$program_id][$out] = 0;
316
-				$outcomes_attempted[$program_id][$out] = 0;
317
-// 				var_dump($datos_out);outcomes_attempted_semesters
318
-				$outcomes_attempted_semesters[$program_id][$out]=$datos_out['semesters'];
319
-				unset($datos_out['semesters']);
320
-// 				var_dump($outcomes_attempted_semesters[$program_id][$out]);
321
-// 				var_dump($datos_out);
322
-// 				exit();
323
-				foreach($datos_out as $res)
324
-				{
325
-					$outcomes_attempted[$program_id][$out]++;
326
-					if(3*$res['achieved']>=2*$res['attempted'])
327
-						$outcomes_achieved[$program_id][$out]++;
328
-				}		
329
-			}
330
-			$programs[]=Program::find($program_id);
331
-			if(Program::find($program_id)->is_graduate)
332
-			{
333
-				$colapso=array(1=>array(),3=>array(),2=>array(11),12=>array(7,14),10=>array(),4=>array(6,15));
334
-			}
335
-			else
336
-			{
337
-				$colapso=array(10=>array(),1=>array(),12=>array(7),3=>array(9,8,14),2=>array(11),5=>array(),4=>array(6,13),16=>array());
338
-			}	
339
-		
340
-			$resultados_todos_colap[$program_id]=array();
341
-			foreach($colapso as $out=>$pares)
342
-			{
343
-				$resultados_todos_colap[$program_id][$out]["semesters"]=array();
344
-				if(isset($resultados_todos[$program_id][$out]))
345
-					$resultados_todos_colap[$program_id][$out]=$resultados_todos[$program_id][$out];
346
-					else $resultados_todos_colap[$program_id][$out]=array();
347
-				foreach($pares as $par)
348
-				{
349
-					if(isset($resultados_todos[$program_id][$par]))
350
-					{	
351
-// 						unset($resultados_todos[$program_id][$par]['semesters']);
352
-						
353
-						foreach($resultados_todos[$program_id][$par] as $estu => $resus)
354
-						{
355
-							if($estu!="semesters")
356
-							{
357
-								if(!isset($resultados_todos_colap[$program_id][$out][$estu]))
358
-								{
359
-									$resultados_todos_colap[$program_id][$out][$estu]['attempted']=0;
360
-									$resultados_todos_colap[$program_id][$out][$estu]['achieved']=0;
361
-
362
-								}
363
-	// 							print $program_id." ".$par." ".$estu."<br>";
364
-	// 							var_dump($resultados_todos[$program_id][$par][$estu]); 
365
-								$resultados_todos_colap[$program_id][$out][$estu]['attempted']+=$resultados_todos[$program_id][$par][$estu]['attempted'];
366
-								$resultados_todos_colap[$program_id][$out][$estu]['achieved']+=$resultados_todos[$program_id][$par][$estu]['achieved'];
367
-							}
368
-							else if(isset($resultados_todos[$program_id][$par]["semesters"]))
369
-							{
370
-								if(isset($resultados_todos_colap[$program_id][$out]["semesters"]))
371
-								{
372
-									$tmp=array_merge($resultados_todos_colap[$program_id][$out]["semesters"],$resultados_todos[$program_id][$par]["semesters"]);
373
-// 									var_dump(($tmp));
374
-// 									var_dump(array_unique($tmp));
375
-// 									exit();
376
-
377
-									$resultados_todos_colap[$program_id][$out]["semesters"]=array_unique($tmp);
378
-								}
379
-								else 
380
-									$resultados_todos_colap[$program_id][$out]["semesters"]=array_unique($resultados_todos[$program_id][$par]["semesters"]);
381
-							}
382
-						}
383
-					}
384
-				}
385
-		
386
-			}
387
-// 			var_dump($resultados_todos_colap);
388
-			
389
-			$outcomes_attempted_colap[$program_id]=array();
390
-			$outcomes_achieved_colap[$program_id]=array();
391
-			$outcomes_attempted_colap_semesters[$program_id]=array();
392
-// 			print $program_id."<br>";
393
-// 				var_dump($resultados_todos_colap[$program_id]);
394
-// 			print "<br>";
395
-			foreach($resultados_todos_colap[$program_id] as $out=>$datos_out)
396
-			{
397
-				if(!$i)$outcomes_colap[]=Outcome::find($out);
398
-// 				$outcomes_attempted_colap_semesters[$program_id][$out]=array();
399
-				if(isset($datos_out['semesters']))
400
-				{
401
-					$outcomes_attempted_colap_semesters[$program_id][$out]=$datos_out['semesters'];
402
-					unset($datos_out['semesters']);
403
-				}
404
-				foreach($datos_out as $res)
405
-				{
406
-					if(!isset($outcomes_attempted_colap[$program_id][$out]))
407
-					{
408
-						$outcomes_attempted_colap[$program_id][$out]=0;
409
-						$outcomes_achieved_colap[$program_id][$out]=0;
410
-					
411
-					}
412
-					$outcomes_attempted_colap[$program_id][$out]++;
413
-					if(3*$res['achieved']>=2*$res['attempted'])
414
-						$outcomes_achieved_colap[$program_id][$out]++;
415
-				}
416
-				if(empty($datos_out))
417
-				{
418
-					$outcomes_attempted_colap[$program_id][$out]=0;
419
-					$outcomes_achieved_colap[$program_id][$out]=0;
420
-				}
421
-
422
-			}
423
-			$i++;
424
-		}		
425
-		usort($outcomes_colap, array($this, "cmp"));
426
-	// 		var_dump($outcomes_attempted_colap); print "<br>";
427
-	// 		var_dump($outcomes_achieved_colap); print "<br>";
428
-	// 	exit();
429
-		$outcomes_attempted_colap_todo=array();
430
-		$outcomes_achieved_colap_todo=array();
431
-		foreach($outcomes_attempted_colap as $program_id => $out_res)
432
-		{
433
-			foreach($out_res as $out=>$res)
434
-			{
435
-				if(!isset($outcomes_attempted_colap_todo[$out]))
436
-				{
437
-					$outcomes_attempted_colap_todo[$out]=0;
438
-					$outcomes_achieved_colap_todo[$out]=0;
439
-			
440
-				}
441
-				$outcomes_attempted_colap_todo[$out]+=$outcomes_attempted_colap[$program_id][$out];
442
-				$outcomes_achieved_colap_todo[$out]+=$outcomes_achieved_colap[$program_id][$out];
443
-		
444
-		
445
-			}
446
-	
447
-		}
448
-		$outcomes_attempted_todo=array();
449
-		$outcomes_achieved_todo=array();
450
-		foreach($outcomes_attempted as $program_id => $out_res)
451
-		{
452
-			foreach($out_res as $out=>$res)
453
-			{
454
-				if(!isset($outcomes_attempted_todo[$out]))
455
-				{
456
-					$outcomes_attempted_todo[$out]=0;
457
-					$outcomes_achieved_todo[$out]=0;
458
-			
459
-				}
460
-				$outcomes_attempted_todo[$out]+=$outcomes_attempted[$program_id][$out];
461
-				$outcomes_achieved_todo[$out]+=$outcomes_achieved[$program_id][$out];
462
-		
463
-		
464
-			}
465
-	
466
-		}
467
-	
468
-
469
-	    return View::make('local.managers.shared.school_student_result', compact('title','outcomes_attempted_colap_semesters','outcomes_attempted_semesters','outcomes_attempted_colap_todo','outcomes_achieved_colap_todo','outcomes_attempted_todo','outcomes_achieved_todo','school','programs_name','role','outcomes','outcomes_colap', 'outcomes_attempted', 'outcomes_achieved', 'outcomes_attempted_colap', 'outcomes_achieved_colap', 'programs', 'users','program_courses','grouped_courses'));
520
+        $role = Auth::user()->role;
521
+
522
+        $users = array();
523
+
524
+
525
+        $resultados_todos_obj = DB::table('assessments')
526
+            ->join('activity_criterion', 'activity_criterion.id', '=', 'assessments.activity_criterion_id')
527
+            ->join('activities', 'activities.id', '=', 'activity_criterion.activity_id')
528
+            ->join('courses', 'courses.id', '=', 'activities.course_id')
529
+            ->join('students', 'students.id', '=', 'assessments.student_id')
530
+            ->join('criterion_objective_outcome', 'criterion_objective_outcome.criterion_id', '=', 'activity_criterion.criterion_id')
531
+            ->join('rubric_activity', 'rubric_activity.activity_id', '=', 'activities.id')
532
+            ->join('rubrics', 'rubrics.id', '=', 'rubric_activity.rubric_id')
533
+            ->join('semesters', 'semesters.id', '=', 'courses.semester_id')
534
+            ->whereIn('students.program_id', $programs_ids)
535
+            ->whereIn('semester_id', Session::get('semesters_ids'))
536
+            ->where('semesters.is_visible', '=', 1)
537
+            ->select('student_id', 'students.program_id', 'semesters.code', 'outcome_id', 'criterion_objective_outcome.criterion_id', 'score', 'expected_points')
538
+            ->distinct()
539
+            ->get();
540
+
541
+        foreach ($resultados_todos_obj as $resultado) {
542
+            if (!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'])) {
543
+                $resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'] = array();
544
+            }
545
+            $resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'][] = $resultado->code;
546
+            $resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters'] = array_unique($resultados_todos[$resultado->program_id][$resultado->outcome_id]['semesters']);
547
+            if (!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted'])) {
548
+                $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted'] = 0;
549
+            }
550
+            $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['attempted']++;
551
+
552
+            if (!isset($resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved'])) {
553
+                $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved'] = 0;
554
+            }
555
+            if ($resultado->score >= $resultado->expected_points) {
556
+                $resultados_todos[$resultado->program_id][$resultado->outcome_id][$resultado->student_id]['achieved']++;
557
+            }
558
+        }
559
+
560
+        $outcomes_colap = array();
561
+        $programs = array();
562
+        // 			$outcomes_colap=array();
563
+        $i = 0;
564
+        $outcomes_attempted = array();
565
+        $outcomes_attempted_colap = array();
566
+        $outcomes_achieved_colap = array();
567
+        $outcomes_attempted_semesters = array();
568
+        foreach ($resultados_todos as $program_id => $resultados_prog) {
569
+            $outcomes_attempted_semesters[$program_id] = array();
570
+            foreach ($resultados_prog as $out => $datos_out) {
571
+                $outcomes_achieved[$program_id][$out] = 0;
572
+                $outcomes_attempted[$program_id][$out] = 0;
573
+                // 				var_dump($datos_out);outcomes_attempted_semesters
574
+                $outcomes_attempted_semesters[$program_id][$out] = $datos_out['semesters'];
575
+                unset($datos_out['semesters']);
576
+                // 				var_dump($outcomes_attempted_semesters[$program_id][$out]);
577
+                // 				var_dump($datos_out);
578
+                // 				exit();
579
+                foreach ($datos_out as $res) {
580
+                    $outcomes_attempted[$program_id][$out]++;
581
+                    if (3 * $res['achieved'] >= 2 * $res['attempted'])
582
+                        $outcomes_achieved[$program_id][$out]++;
583
+                }
584
+            }
585
+            $programs[] = Program::find($program_id);
586
+            if (Program::find($program_id)->is_graduate) {
587
+                $colapso = array(1 => array(), 3 => array(), 2 => array(11), 12 => array(7, 14), 10 => array(), 4 => array(6, 15));
588
+            } else {
589
+                $colapso = array(10 => array(), 1 => array(), 12 => array(7), 3 => array(9, 8, 14), 2 => array(11), 5 => array(), 4 => array(6, 13), 16 => array());
590
+            }
591
+
592
+            $resultados_todos_colap[$program_id] = array();
593
+            foreach ($colapso as $out => $pares) {
594
+                $resultados_todos_colap[$program_id][$out]["semesters"] = array();
595
+                if (isset($resultados_todos[$program_id][$out]))
596
+                    $resultados_todos_colap[$program_id][$out] = $resultados_todos[$program_id][$out];
597
+                else $resultados_todos_colap[$program_id][$out] = array();
598
+                foreach ($pares as $par) {
599
+                    if (isset($resultados_todos[$program_id][$par])) {
600
+                        // 						unset($resultados_todos[$program_id][$par]['semesters']);
601
+
602
+                        foreach ($resultados_todos[$program_id][$par] as $estu => $resus) {
603
+                            if ($estu != "semesters") {
604
+                                if (!isset($resultados_todos_colap[$program_id][$out][$estu])) {
605
+                                    $resultados_todos_colap[$program_id][$out][$estu]['attempted'] = 0;
606
+                                    $resultados_todos_colap[$program_id][$out][$estu]['achieved'] = 0;
607
+                                }
608
+                                // 							print $program_id." ".$par." ".$estu."<br>";
609
+                                // 							var_dump($resultados_todos[$program_id][$par][$estu]); 
610
+                                $resultados_todos_colap[$program_id][$out][$estu]['attempted'] += $resultados_todos[$program_id][$par][$estu]['attempted'];
611
+                                $resultados_todos_colap[$program_id][$out][$estu]['achieved'] += $resultados_todos[$program_id][$par][$estu]['achieved'];
612
+                            } else if (isset($resultados_todos[$program_id][$par]["semesters"])) {
613
+                                if (isset($resultados_todos_colap[$program_id][$out]["semesters"])) {
614
+                                    $tmp = array_merge($resultados_todos_colap[$program_id][$out]["semesters"], $resultados_todos[$program_id][$par]["semesters"]);
615
+                                    // 									var_dump(($tmp));
616
+                                    // 									var_dump(array_unique($tmp));
617
+                                    // 									exit();
618
+
619
+                                    $resultados_todos_colap[$program_id][$out]["semesters"] = array_unique($tmp);
620
+                                } else
621
+                                    $resultados_todos_colap[$program_id][$out]["semesters"] = array_unique($resultados_todos[$program_id][$par]["semesters"]);
622
+                            }
623
+                        }
624
+                    }
625
+                }
626
+            }
627
+            // 			var_dump($resultados_todos_colap);
628
+
629
+            $outcomes_attempted_colap[$program_id] = array();
630
+            $outcomes_achieved_colap[$program_id] = array();
631
+            $outcomes_attempted_colap_semesters[$program_id] = array();
632
+            // 			print $program_id."<br>";
633
+            // 				var_dump($resultados_todos_colap[$program_id]);
634
+            // 			print "<br>";
635
+            foreach ($resultados_todos_colap[$program_id] as $out => $datos_out) {
636
+                if (!$i) $outcomes_colap[] = Outcome::find($out);
637
+                // 				$outcomes_attempted_colap_semesters[$program_id][$out]=array();
638
+                if (isset($datos_out['semesters'])) {
639
+                    $outcomes_attempted_colap_semesters[$program_id][$out] = $datos_out['semesters'];
640
+                    unset($datos_out['semesters']);
641
+                }
642
+                foreach ($datos_out as $res) {
643
+                    if (!isset($outcomes_attempted_colap[$program_id][$out])) {
644
+                        $outcomes_attempted_colap[$program_id][$out] = 0;
645
+                        $outcomes_achieved_colap[$program_id][$out] = 0;
646
+                    }
647
+                    $outcomes_attempted_colap[$program_id][$out]++;
648
+                    if (3 * $res['achieved'] >= 2 * $res['attempted'])
649
+                        $outcomes_achieved_colap[$program_id][$out]++;
650
+                }
651
+                if (empty($datos_out)) {
652
+                    $outcomes_attempted_colap[$program_id][$out] = 0;
653
+                    $outcomes_achieved_colap[$program_id][$out] = 0;
654
+                }
655
+            }
656
+            $i++;
657
+        }
658
+        usort($outcomes_colap, array($this, "cmp"));
659
+        // 		var_dump($outcomes_attempted_colap); print "<br>";
660
+        // 		var_dump($outcomes_achieved_colap); print "<br>";
661
+        // 	exit();
662
+        $outcomes_attempted_colap_todo = array();
663
+        $outcomes_achieved_colap_todo = array();
664
+        foreach ($outcomes_attempted_colap as $program_id => $out_res) {
665
+            foreach ($out_res as $out => $res) {
666
+                if (!isset($outcomes_attempted_colap_todo[$out])) {
667
+                    $outcomes_attempted_colap_todo[$out] = 0;
668
+                    $outcomes_achieved_colap_todo[$out] = 0;
669
+                }
670
+                $outcomes_attempted_colap_todo[$out] += $outcomes_attempted_colap[$program_id][$out];
671
+                $outcomes_achieved_colap_todo[$out] += $outcomes_achieved_colap[$program_id][$out];
672
+            }
673
+        }
674
+        $outcomes_attempted_todo = array();
675
+        $outcomes_achieved_todo = array();
676
+        foreach ($outcomes_attempted as $program_id => $out_res) {
677
+            foreach ($out_res as $out => $res) {
678
+                if (!isset($outcomes_attempted_todo[$out])) {
679
+                    $outcomes_attempted_todo[$out] = 0;
680
+                    $outcomes_achieved_todo[$out] = 0;
681
+                }
682
+                $outcomes_attempted_todo[$out] += $outcomes_attempted[$program_id][$out];
683
+                $outcomes_achieved_todo[$out] += $outcomes_achieved[$program_id][$out];
684
+            }
685
+        }
686
+
687
+
688
+        return View::make('local.managers.shared.school_student_result', compact('title', 'outcomes_attempted_colap_semesters', 'outcomes_attempted_semesters', 'outcomes_attempted_colap_todo', 'outcomes_achieved_colap_todo', 'outcomes_attempted_todo', 'outcomes_achieved_todo', 'school', 'programs_name', 'role', 'outcomes', 'outcomes_colap', 'outcomes_attempted', 'outcomes_achieved', 'outcomes_attempted_colap', 'outcomes_achieved_colap', 'programs', 'users', 'program_courses', 'grouped_courses'));
470 689
     }
471 690
 
472 691
     public function showQuasiOri($id)
@@ -916,4 +1135,4 @@ class SchoolsController extends \BaseController
916 1135
 
917 1136
         return View::make('local.managers.shared.print_school', compact('title', 'outcomes', 'outcomes_attempted', 'outcomes_achieved', 'school', 'assessed_sections_count', 'school_sections_count', 'achievedProgramsPerOutcome', 'attemptedProgramsPerOutcome', 'grouped_courses', 'participating_programs'));
918 1137
     }
919
-}
1138
+}

+ 68
- 39
app/controllers/TemplatesController.php Zobrazit soubor

@@ -125,7 +125,10 @@ class TemplatesController extends \BaseController
125 125
 
126 126
 		$template->criteria = DB::table('criteria')
127 127
 			->join('template_criterion', 'template_criterion.criterion_id', '=', 'criteria.id')
128
+
128 129
 			->where('template_id', $template->id)
130
+			->select('criteria.*', 'criteria.id as criterion_id', 'template_criterion.id as template_criterion_id')
131
+
129 132
 			->orderBy('position')
130 133
 			->get();
131 134
 
@@ -196,7 +199,6 @@ class TemplatesController extends \BaseController
196 199
 	public function newTemplateProf()
197 200
 	{
198 201
 		return $this->newTemplate_new();
199
-			
200 202
 	}
201 203
 	public function newTemplate_new()
202 204
 	{
@@ -214,19 +216,19 @@ class TemplatesController extends \BaseController
214 216
 			$templates = Template::orderBy('name', 'ASC')->get();
215 217
 			$programs = Program::orderBy('name', 'ASC')->get();
216 218
 			$criteria = Criterion::orderBy('name', 'ASC')->get();
217
-			$school_id_user=NULL;
219
+			$school_id_user = NULL;
218 220
 		} else {
219 221
 			if ($role == 2) {
220 222
 				$programs = Auth::user()->school->programs;
221
-				$school_id_user=Auth::user()->school_id;
223
+				$school_id_user = Auth::user()->school_id;
222 224
 			}
223 225
 			if ($role == 3) {
224 226
 				$programs = Auth::user()->programs()->get();
225
-				$school_id_user=Auth::user()->programs[0]->school->id;
227
+				$school_id_user = Auth::user()->programs[0]->school->id;
226 228
 			}
227 229
 			if ($role == 4) {
228 230
 				$programs = Auth::user()->programs()->get();
229
-				$school_id_user=Auth::user()->programs[0]->school->id;
231
+				$school_id_user = Auth::user()->programs[0]->school->id;
230 232
 			}
231 233
 			Log::info(json_encode($school_id_user));
232 234
 			$program_ids = array();
@@ -239,52 +241,79 @@ class TemplatesController extends \BaseController
239 241
 					$q->whereIn('program_id', $program_ids);
240 242
 				}
241 243
 			)
242
-			->whereHas('getObjectivesAttribute', function ($q)
243
-				{
244
-					$q->where('objective_id','!=',0);
245
-				}
246
-			)
247
-			->orderBy('name', 'ASC')->get();
248
-			}
249
-// 			Log::info("aqui".(count($criteria)));
250
-// 			Log::info(json_encode(count($criteria)));
251
-			
252
-			$templates = Template::where('school_id', '=', $school_id_user)->orWhere('school_id', '=', NULL)
253
-				->orderBy('name', 'ASC')->get();
254
-			$criteria_ids = array();
255
-			
256
-			foreach ($criteria as $criterion) {
257
-				$criteria_ids[] = $criterion->id;
258
-			}
259
-			$templates_fuera = Template::whereHas('criteria', function ($q) use ($criteria_ids) {
260
-				$q->whereNotIn('criterion_id', $criteria_ids);
261
-			})
262
-				->orderBy('name', 'ASC')->get();
263
-				
264
-				
265
-			$templates_fuera_ids = array();
266
-			foreach ($templates_fuera as $tf) {
267
-				$templates_fuera_ids[] = $tf->id;
268
-			}
269
-// 			Log::info(json_encode($templates_fuera_ids));
270
-// exit();
271
-			$templates_dentro = Template::whereNotIn('id', $templates_fuera_ids)
244
+				->whereHas(
245
+					'getObjectivesAttribute',
246
+					function ($q) {
247
+						$q->where('objective_id', '!=', 0);
248
+					}
249
+				)
272 250
 				->orderBy('name', 'ASC')->get();
251
+		}
252
+		// 			Log::info("aqui".(count($criteria)));
253
+		// 			Log::info(json_encode(count($criteria)));
254
+
255
+		$templates = Template::where('school_id', '=', $school_id_user)->orWhere('school_id', '=', NULL)
256
+			->orderBy('name', 'ASC')->get();
257
+		$criteria_ids = array();
258
+
259
+		foreach ($criteria as $criterion) {
260
+			$criteria_ids[] = $criterion->id;
261
+		}
262
+		$templates_fuera = Template::whereHas('criteria', function ($q) use ($criteria_ids) {
263
+			$q->whereNotIn('criterion_id', $criteria_ids);
264
+		})
265
+			->orderBy('name', 'ASC')->get();
266
+
267
+
268
+		$templates_fuera_ids = array();
269
+		foreach ($templates_fuera as $tf) {
270
+			$templates_fuera_ids[] = $tf->id;
271
+		}
272
+		// 			Log::info(json_encode($templates_fuera_ids));
273
+		// exit();
274
+		$templates_dentro = Template::whereNotIn('id', $templates_fuera_ids)
275
+			->orderBy('name', 'ASC')->get();
273 276
 
274
-// 			if(!isset($templates_dentro))$templates_dentro=
277
+		// 			if(!isset($templates_dentro))$templates_dentro=
275 278
 
276
-			// 			var_dump(json_encode($templates_dentro));
277
-// 		}
279
+		// 			var_dump(json_encode($templates_dentro));
280
+		// 		}
278 281
 
279
-	$templates_fuera=array();
282
+		$templates_fuera = array();
280 283
 		return View::make('local.managers.shared.rubrics_new', compact('title', 'templates_dentro', 'templates_fuera', 'outcomes', 'criteria', 'schools', 'programs', 'criteria_ids'));
281 284
 	}
282 285
 
286
+
287
+	public function fetchObjectivesForTemplate()
288
+	{
289
+		$criteria_ids = Input::get("allCriteria");
290
+
291
+		$criteria = [];
292
+		//Acho im sorry pero no tengo idea porque sale un error que haría eso más eficiente.
293
+		foreach ($criteria_ids as $crit_id) {
294
+			$crit = Criterion::where('id', $crit_id)->first();
295
+			if (!isset($crit)) {
296
+				return "NO pa";
297
+			}
298
+
299
+			$crit->all_objectives = Objective::join("criterion_objective_outcome", 'objectives.id', '=', 'criterion_objective_outcome.objective_id')
300
+				->where('criterion_id', $crit->id)
301
+				->select('objectives.*')
302
+				->groupBy('objectives.id')
303
+				->get();
304
+			$criteria[] = $crit;
305
+		}
306
+
307
+		return $criteria;
308
+	}
309
+
283 310
 	/**
284 311
 	 * Save a new rubric
285 312
 	 *
286 313
 	 * @return Response
287 314
 	 */
315
+
316
+
288 317
 	public function create()
289 318
 	{
290 319
 		DB::beginTransaction();

+ 35
- 2
app/controllers/ThreeYearPlanController.php Zobrazit soubor

@@ -47,9 +47,23 @@ class ThreeYearPlanController extends \BaseController
47 47
     Log::info("Entre" . json_encode($this));
48 48
 
49 49
     $title = "Three Years Plans";
50
-    $programs = Program::get();
50
+    $programs = Program::orderBy('name', "ASC")->get();
51
+    $typ = DB::table("three_year_plan")
52
+      ->orderBy('year_start', "DESC")
53
+      ->get();
54
+
55
+    return View::make('local.managers.admins.show-typ-program', compact('title', 'programs', 'typ'));
56
+  }
57
+
58
+  public function fetchSubmitted()
59
+  {
60
+    $typ = Input::get('typ');
51 61
 
52
-    return View::make('local.managers.admins.show-typ-program', compact('title', 'programs'));
62
+    return DB::table('typ_program')
63
+
64
+
65
+      ->where('three_year_plan_id', $typ)
66
+      ->get();
53 67
   }
54 68
 
55 69
   public function manageSemesterCycle()
@@ -63,6 +77,25 @@ class ThreeYearPlanController extends \BaseController
63 77
     //     return View::make('local.managers.admins.show-typ-program', compact('title', 'programs'));
64 78
   }
65 79
 
80
+  //submit
81
+
82
+  public function submit($program_id)
83
+  {
84
+    $typ_id = Input::get('typ_id');
85
+    $rows = DB::table('typ_program')
86
+      ->where('three_year_plan_id', $typ_id)
87
+      ->where('program_id', $program_id)
88
+      ->update(array(
89
+        "is_submitted" => 1
90
+      ));
91
+
92
+    if (isset($rows)) {
93
+      return "estamos ready";
94
+    } else {
95
+      return 500;
96
+    }
97
+  }
98
+
66 99
   //busca los links de public y los loadea
67 100
   public function findHTML($path_id)
68 101
   {

+ 6
- 4
app/models/Course.php Zobrazit soubor

@@ -558,7 +558,9 @@ class Course extends Eloquent
558 558
         ->join('assessments', function ($join) {
559 559
           $join->on("assessments.student_id", '=', 'course_student.student_id')
560 560
             ->on('assessments.activity_criterion_id', '=', 'activity_criterion.id');
561
-        });
561
+        })
562
+        ->where('activities.draft', 0)
563
+        ->where('activities.diagnostic', 0);
562 564
 
563 565
 
564 566
       // si typ_semester_course esta prendido, then significa que es de los estudiantes del programa
@@ -613,9 +615,9 @@ class Course extends Eloquent
613 615
         $table_per_student = $table_per_student->addSelect('outcome_id')
614 616
           ->groupBy(array('students.id', 'outcome_id'));
615 617
 
616
-        Log::info($table_per_student->toSql());
617
-        Log::info($criteria_id);
618
-        Log::info("Amiga ponle a br");
618
+        // Log::info($table_per_student->toSql());
619
+        //Log::info($criteria_id);
620
+        //Log::info("Amiga ponle a br");
619 621
 
620 622
         $query = $table_per_student->get();
621 623
 

+ 1
- 1
app/models/Criterion.php Zobrazit soubor

@@ -29,7 +29,7 @@ class Criterion extends Eloquent
29 29
 
30 30
 	public function getObjectivesAttribute()
31 31
 	{
32
-		return $this->belongsToMany('Objective','criterion_objective_outcome');
32
+		return $this->belongsToMany('Objective', 'criterion_objective_outcome');
33 33
 	}
34 34
 
35 35
 	public function rubrics()

+ 23
- 0
app/routes.php Zobrazit soubor

@@ -223,6 +223,10 @@ Route::group(array('before' => 'auth|has_access'), function () {
223 223
     Route::post("fetch_assoc_courses", 'CoursesController@fetchCourses');
224 224
 
225 225
 
226
+    //Fetch Objectives for Template
227
+
228
+    Route::post("fetchObjectiveForTemplate", 'TemplatesController@fetchObjectivesForTemplate');
229
+
226 230
 
227 231
     //shared viewTransformativeActions
228 232
 
@@ -269,6 +273,8 @@ Route::group(array('before' => 'auth|has_access'), function () {
269 273
         'as' => 'viewThreeYear/{program_id}/{typ}',
270 274
         'uses' => 'ThreeYearPlanController@viewPlan'
271 275
     ));
276
+
277
+    Route::post('submitTYP/{program_id}', 'ThreeYearPlanController@submit');
272 278
     // Fetch all criteria associated to an outcome
273 279
     Route::post('fetchInfo', array(
274 280
         'as' => 'fetchInfo',
@@ -322,6 +328,11 @@ Route::group(array('before' => 'auth|has_access'), function () {
322 328
         'as' => 'fetchCriterionWithTrashed',
323 329
         'uses' => 'CriteriaController@fetchCriterionWithTrashed'
324 330
     ));
331
+
332
+    Route::get('learning-outcomes/show/{id}', array(
333
+        'as' => "learning-outcomes/show/{id}",
334
+        'uses' => 'OutcomesController@show'
335
+    ));
325 336
     //Fetch objectives for criteria when outcome is chosen
326 337
     Route::post('fetchObjectivesForSelect', array(
327 338
         'as' => 'fetchObjectivesForSelect',
@@ -399,6 +410,13 @@ Route::group(array('before' => 'auth|has_access'), function () {
399 410
             'uses' => 'CriteriaController@fetch'
400 411
         ));
401 412
 
413
+        // manage courses permissions. 
414
+
415
+        Route::get('manageCoursesPermissions', 'ProgramsController@assignOtherProgramIndex');
416
+        Route::post('addToOtherProgramTYP', 'ProgramsController@addToOtherProgramTYP');
417
+        Route::post("fetchPairingInfo", 'ProgramsController@fetchPairingInfo');
418
+        Route::post("updatePairingInfo", 'ProgramsController@updatePairingInfo');
419
+
402 420
 
403 421
         //New navigation routes
404 422
 
@@ -409,7 +427,11 @@ Route::group(array('before' => 'auth|has_access'), function () {
409 427
 
410 428
         //Plans routes
411 429
         Route::get('showThreeYearPlans', 'ThreeYearPlanController@adminIndex');
430
+        Route::post('fetchSubmit', 'ThreeYearPlanController@fetchSubmitted');
412 431
         Route::get('showAnnualPlans', 'AnnualPlansController@adminIndex');
432
+        Route::get("showAnnualReports", "AnnualPlansController@adminReportIndex");
433
+        Route::post('fetchSubmitAn', 'AnnualPlansController@fetchSubmitted');
434
+
413 435
 
414 436
 
415 437
         //endhere
@@ -480,6 +502,7 @@ Route::group(array('before' => 'auth|has_access'), function () {
480 502
         Route::post('createCriterion', array('before' => 'csrf', 'uses' => 'CriteriaController@create'));
481 503
         //Route::get('school-objective', 'Objective2Controller@edit');
482 504
         //Route::get('school-criteria', 'CriteriaController@edit');
505
+
483 506
         Route::post('crtiteria/update', array('before' => 'csrf', 'uses' => 'CriteriaController@update'));
484 507
 
485 508
         //Show users annual plan

+ 653
- 0
app/views/annual_htmls/plan-on-10-10-2022-for-15-by-5478.blade.php Zobrazit soubor

@@ -0,0 +1,653 @@
1
+<html><body><style type="text/css">
2
+    body
3
+    {
4
+        font-family: "Arial", sans-serif;
5
+        width:90%;
6
+        margin: 0 auto;
7
+    }
8
+    .header-text
9
+    {
10
+        text-align:center;
11
+        font-weight: bold;
12
+        margin:0;
13
+    }
14
+    .outcome-text
15
+    {
16
+        text-align:left;
17
+        font-weight: bold;
18
+        margin:0;
19
+    }
20
+    h1.header-text
21
+    {
22
+      margin: 15px auto;
23
+      width:75%;
24
+      font-size: 25px;
25
+    }
26
+
27
+    table
28
+    {
29
+        border-collapse: collapse;
30
+        border: 1px solid black;
31
+        width: 100%;
32
+        margin: 30px auto;
33
+        font-size:1.5vw;
34
+    }
35
+    td, th
36
+    {
37
+        border: 1px solid black;
38
+        padding: 5px;
39
+    }
40
+
41
+    .activity-name-row
42
+    {
43
+      background:black;
44
+      color:white;
45
+    }
46
+
47
+    .activity-headers-row
48
+    {
49
+      background:lightgrey;
50
+      font-weight:bold;
51
+    }
52
+
53
+    .report-info
54
+    {
55
+      margin:5px 0;
56
+      font-size: 16px;
57
+    }
58
+
59
+    .criterion-field
60
+    {
61
+      text-align:left;
62
+    }
63
+
64
+    .score-field, .total, .percentage
65
+    {
66
+      text-align:center;
67
+    }
68
+
69
+    .header
70
+    {
71
+      margin: 30px 0;
72
+    }
73
+
74
+    .content
75
+    {
76
+      font-size: 12px;
77
+    }
78
+
79
+    .logo
80
+    {
81
+      position:absolute;
82
+      right:0;
83
+      top: 30px;
84
+      width: 100px;
85
+    }
86
+
87
+    ul{
88
+      list-style-type:none;
89
+    }
90
+
91
+    @media print{@page {size: landscape}}
92
+
93
+    .outcome-header{
94
+        text-align:left
95
+    }
96
+    hr{
97
+        border-block-color: black
98
+    }
99
+
100
+    .course-title {
101
+      text-align:center;
102
+      font-weight:bold;
103
+    }
104
+</style><style type="text/css" media="print">
105
+  @page { size: landscape; }
106
+</style><img class="logo" src="http://localhost:8000/images/logo_uprrp_bw.png" alt="UPRRP Logo">
107
+
108
+<div class="header">
109
+    <p class="header-text">University of Puerto Rico, Río Piedras Campus</p>
110
+    <p class="header-text">Online Learning Assessment System</p>
111
+    <p class="header-text">Audiovisual Communication Program Report</p>
112
+
113
+    <h1 class="header-text">Academic Year 2021-2022 </h1>
114
+</div>
115
+
116
+    <h1 class="outcome-header">Content Knowledge, Skills or Dispositions in the academic program learning outcomes <sub>(Semester
117
+            C11)</sub></h1>
118
+    <hr>
119
+    <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more of
120
+        the
121
+        attempts</p>
122
+    <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
123
+        70.00%
124
+
125
+        <hr>
126
+    <table class="table table-striped table-condensed">
127
+        <thead>
128
+            <tr>
129
+                <th>
130
+                    Objectives for Courses
131
+                </th>
132
+
133
+                <th>
134
+                    Courses and Criteria
135
+                </th>
136
+                <th>
137
+                    Transformative Actions to be Implemented
138
+                </th>
139
+            </tr>
140
+        </thead>
141
+        <tbody>
142
+                            <tr>
143
+                    <td>
144
+                        
145
+                        A. Este es un objetivo para todos los demás
146
+                    </td>
147
+                    <td>
148
+                        <ol type="1">
149
+
150
+
151
+                                                            <li>
152
+                                    <p>TEST-3002</p>
153
+
154
+                                    <ol type="a">
155
+                                                                                    <li>
156
+                                                ENVIRONMENT - The student is able to identify and/or analyze environmental factors (external and internal)
157
+                                            </li>
158
+                                                                                    <li>
159
+                                                Criterio 1
160
+                                            </li>
161
+                                                                                    <li>
162
+                                                Criterio 2
163
+                                            </li>
164
+                                                                                    <li>
165
+                                                Criterio 3
166
+                                            </li>
167
+                                                                            </ol>
168
+
169
+                                                                            <hr style="margin-left:-40px">
170
+                                    
171
+
172
+                                </li>
173
+                                                            <li>
174
+                                    <p>TEST-3001</p>
175
+
176
+                                    <ol type="a">
177
+                                                                                    <li>
178
+                                                Criterio 1
179
+                                            </li>
180
+                                                                                    <li>
181
+                                                Criterio 2
182
+                                            </li>
183
+                                                                                    <li>
184
+                                                Criterio 3
185
+                                            </li>
186
+                                                                            </ol>
187
+
188
+                                    
189
+
190
+                                </li>
191
+                                                    </ol>
192
+                    </td>
193
+                    <td>
194
+                        <ol type="1">
195
+                                                                                                <li>
196
+                                        <p>TEST-3002</p>
197
+
198
+                                        <ol type="a">
199
+                                                                                            <li>
200
+                                                    <p><strong>QUE acaba de pasar:
201
+                                                        </strong>uuuuuuuuuuuuuuhhhhhhhhh</p>
202
+
203
+                                                </li>
204
+                                                                                            <li>
205
+                                                    <p><strong>Members of the vibe:
206
+                                                        </strong>BUUTUTUTUTUUTUTUT</p>
207
+
208
+                                                </li>
209
+                                                                                    </ol>
210
+                                        <hr style="margin-left:-40px">
211
+
212
+                                                                                    <hr style="margin-left:-40px">
213
+                                                                                                                                                                        <li>
214
+                                        <p>TEST-3001</p>
215
+
216
+                                        <ol type="a">
217
+                                                                                            <li>
218
+                                                    <p><strong>Quiero atar esta:
219
+                                                        </strong>accion transformadora a</p>
220
+
221
+                                                </li>
222
+                                                                                            <li>
223
+                                                    <p><strong>Escape reality:
224
+                                                        </strong>it doesnt face you i need a breakthrough</p>
225
+
226
+                                                </li>
227
+                                                                                    </ol>
228
+                                        <hr style="margin-left:-40px">
229
+
230
+                                                                                                                            </ol>
231
+
232
+
233
+                    </td>
234
+
235
+
236
+                </tr>
237
+            
238
+        </tbody>
239
+
240
+    </table>
241
+
242
+        
243
+            <h2>Program Transformative Actions</h2>
244
+            <hr>
245
+
246
+            <table class="table table-striped table-condensed">
247
+                <thead>
248
+                    <tr>
249
+                        <th></th>
250
+                        <th>Transformative Action</th>
251
+                        <th>Category</th>
252
+
253
+
254
+                    </tr>
255
+                </thead>
256
+                <tbody>
257
+                                            <tr>
258
+                            <td>1.</td>
259
+                            <td>
260
+                                <strong>We lift our voices: </strong>For all the things that we have done
261
+
262
+
263
+                            </td>
264
+                            <td>
265
+                                To god
266
+                            </td>
267
+
268
+
269
+
270
+
271
+                        </tr>
272
+                                            <tr>
273
+                            <td>2.</td>
274
+                            <td>
275
+                                <strong>walk away: </strong>around and around
276
+
277
+
278
+                            </td>
279
+                            <td>
280
+                                Cosa guapa
281
+                            </td>
282
+
283
+
284
+
285
+
286
+                        </tr>
287
+                                            <tr>
288
+                            <td>3.</td>
289
+                            <td>
290
+                                <strong>After aAAAlll: </strong>MmmmHHmmmMM
291
+
292
+
293
+                            </td>
294
+                            <td>
295
+                                Cosa guapa
296
+                            </td>
297
+
298
+
299
+
300
+
301
+                        </tr>
302
+                                            <tr>
303
+                            <td>4.</td>
304
+                            <td>
305
+                                <strong>Parapara : </strong>Paa pa paaa pa pa pa
306
+
307
+
308
+                            </td>
309
+                            <td>
310
+                                Cosa guapa
311
+                            </td>
312
+
313
+
314
+
315
+
316
+                        </tr>
317
+                    
318
+                </tbody>
319
+            </table>
320
+            <hr>
321
+        
322
+        <h1 class="outcome-header">Information Literacy <sub>(Semester
323
+            C11)</sub></h1>
324
+    <hr>
325
+    <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more of
326
+        the
327
+        attempts</p>
328
+    <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
329
+        70.00%
330
+
331
+        <hr>
332
+    <table class="table table-striped table-condensed">
333
+        <thead>
334
+            <tr>
335
+                <th>
336
+                    Objectives for Courses
337
+                </th>
338
+
339
+                <th>
340
+                    Courses and Criteria
341
+                </th>
342
+                <th>
343
+                    Transformative Actions to be Implemented
344
+                </th>
345
+            </tr>
346
+        </thead>
347
+        <tbody>
348
+                            <tr>
349
+                    <td>
350
+                        
351
+                        A. Este es un objetivo para todos los demás
352
+                    </td>
353
+                    <td>
354
+                        <ol type="1">
355
+
356
+
357
+                                                            <li>
358
+                                    <p>TEST-3002</p>
359
+
360
+                                    <ol type="a">
361
+                                                                                    <li>
362
+                                                Criterio 2 para CE y IL
363
+                                            </li>
364
+                                                                                    <li>
365
+                                                Criterio 2 para CE y IL
366
+                                            </li>
367
+                                                                                    <li>
368
+                                                Criterio 4
369
+                                            </li>
370
+                                                                                    <li>
371
+                                                ENVIRONMENT - The student is able to identify and/or analyze environmental factors (external and internal)
372
+                                            </li>
373
+                                                                            </ol>
374
+
375
+                                    
376
+
377
+                                </li>
378
+                                                    </ol>
379
+                    </td>
380
+                    <td>
381
+                        <ol type="1">
382
+                                                                                                                </ol>
383
+
384
+
385
+                    </td>
386
+
387
+
388
+                </tr>
389
+            
390
+        </tbody>
391
+
392
+    </table>
393
+
394
+        
395
+            <h2>Program Transformative Actions</h2>
396
+            <hr>
397
+
398
+            <table class="table table-striped table-condensed">
399
+                <thead>
400
+                    <tr>
401
+                        <th></th>
402
+                        <th>Transformative Action</th>
403
+                        <th>Category</th>
404
+
405
+
406
+                    </tr>
407
+                </thead>
408
+                <tbody>
409
+                                            <tr>
410
+                            <td>1.</td>
411
+                            <td>
412
+                                <strong>Paa: </strong>nananaaaaaa
413
+
414
+
415
+                            </td>
416
+                            <td>
417
+                                De todo lo que
418
+                            </td>
419
+
420
+
421
+
422
+
423
+                        </tr>
424
+                    
425
+                </tbody>
426
+            </table>
427
+            <hr>
428
+        
429
+        <h1 class="outcome-header">Effective Communication Skills <sub>(Semester
430
+            C12)</sub></h1>
431
+    <hr>
432
+    <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more of
433
+        the
434
+        attempts</p>
435
+    <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
436
+        70.00%
437
+
438
+        <hr>
439
+    <table class="table table-striped table-condensed">
440
+        <thead>
441
+            <tr>
442
+                <th>
443
+                    Objectives for Courses
444
+                </th>
445
+
446
+                <th>
447
+                    Courses and Criteria
448
+                </th>
449
+                <th>
450
+                    Transformative Actions to be Implemented
451
+                </th>
452
+            </tr>
453
+        </thead>
454
+        <tbody>
455
+                            <tr>
456
+                    <td>
457
+                        
458
+                        A. Esto es un objetivo para Comunicación Efectiva.
459
+                    </td>
460
+                    <td>
461
+                        <ol type="1">
462
+
463
+
464
+                                                            <li>
465
+                                    <p>TEST-3002</p>
466
+
467
+                                    <ol type="a">
468
+                                                                                    <li>
469
+                                                ENVIRONMENT - The student is able to identify and/or analyze environmental factors (external and internal)
470
+                                            </li>
471
+                                                                            </ol>
472
+
473
+                                    
474
+
475
+                                </li>
476
+                                                    </ol>
477
+                    </td>
478
+                    <td>
479
+                        <ol type="1">
480
+                                                                                                                </ol>
481
+
482
+
483
+                    </td>
484
+
485
+
486
+                </tr>
487
+            
488
+        </tbody>
489
+
490
+    </table>
491
+
492
+        <h1 class="outcome-header">Critical Thinking <sub>(Semester
493
+            C12)</sub></h1>
494
+    <hr>
495
+    <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more of
496
+        the
497
+        attempts</p>
498
+    <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
499
+        70.00%
500
+
501
+        <hr>
502
+    <table class="table table-striped table-condensed">
503
+        <thead>
504
+            <tr>
505
+                <th>
506
+                    Objectives for Courses
507
+                </th>
508
+
509
+                <th>
510
+                    Courses and Criteria
511
+                </th>
512
+                <th>
513
+                    Transformative Actions to be Implemented
514
+                </th>
515
+            </tr>
516
+        </thead>
517
+        <tbody>
518
+                            <tr>
519
+                    <td>
520
+                        
521
+                        A. Este es un objetivo para critical thinking.
522
+                    </td>
523
+                    <td>
524
+                        <ol type="1">
525
+
526
+
527
+                                                            <li>
528
+                                    <p>TEST-3002</p>
529
+
530
+                                    <ol type="a">
531
+                                                                                    <li>
532
+                                                Criterio 1 para CT
533
+                                            </li>
534
+                                                                                    <li>
535
+                                                ENVIRONMENT - The student is able to identify and/or analyze environmental factors (external and internal)
536
+                                            </li>
537
+                                                                            </ol>
538
+
539
+                                                                            <hr style="margin-left:-40px">
540
+                                    
541
+
542
+                                </li>
543
+                                                            <li>
544
+                                    <p>TEST-3001</p>
545
+
546
+                                    <ol type="a">
547
+                                                                                    <li>
548
+                                                Criterio 3
549
+                                            </li>
550
+                                                                            </ol>
551
+
552
+                                    
553
+
554
+                                </li>
555
+                                                    </ol>
556
+                    </td>
557
+                    <td>
558
+                        <ol type="1">
559
+                                                                                                                                                                            </ol>
560
+
561
+
562
+                    </td>
563
+
564
+
565
+                </tr>
566
+            
567
+        </tbody>
568
+
569
+    </table>
570
+
571
+        <h1 class="outcome-header">Social Responsibility <sub>(Semester
572
+            C12)</sub></h1>
573
+    <hr>
574
+    <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more of
575
+        the
576
+        attempts</p>
577
+    <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
578
+        70.00%
579
+
580
+        <hr>
581
+    <table class="table table-striped table-condensed">
582
+        <thead>
583
+            <tr>
584
+                <th>
585
+                    Objectives for Courses
586
+                </th>
587
+
588
+                <th>
589
+                    Courses and Criteria
590
+                </th>
591
+                <th>
592
+                    Transformative Actions to be Implemented
593
+                </th>
594
+            </tr>
595
+        </thead>
596
+        <tbody>
597
+                            <tr>
598
+                    <td>
599
+                        
600
+                        A. Este es un objetivo para todos los demás
601
+                    </td>
602
+                    <td>
603
+                        <ol type="1">
604
+
605
+
606
+                                                            <li>
607
+                                    <p>COMA-4317</p>
608
+
609
+                                    <ol type="a">
610
+                                                                                    <li>
611
+                                                Estamos aquoi
612
+                                            </li>
613
+                                                                            </ol>
614
+
615
+                                                                            <hr style="margin-left:-40px">
616
+                                    
617
+
618
+                                </li>
619
+                                                            <li>
620
+                                    <p>TEST-3002</p>
621
+
622
+                                    <ol type="a">
623
+                                                                                    <li>
624
+                                                Estamos aquoi
625
+                                            </li>
626
+                                                                            </ol>
627
+
628
+                                    
629
+
630
+                                </li>
631
+                                                    </ol>
632
+                    </td>
633
+                    <td>
634
+                        <ol type="1">
635
+                                                                                                                                                                            </ol>
636
+
637
+
638
+                    </td>
639
+
640
+
641
+                </tr>
642
+            
643
+        </tbody>
644
+
645
+    </table>
646
+
647
+    
648
+
649
+</body></html>
650
+<script type="text/javascript">
651
+
652
+
653
+</script>

+ 948
- 0
app/views/annual_htmls/report-on-10-10-2022-for-15-by-5478.blade.php Zobrazit soubor

@@ -0,0 +1,948 @@
1
+<html><head><script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js"></script></head><body><style type="text/css">
2
+    body
3
+    {
4
+        font-family: "Arial", sans-serif;
5
+        width:90%;
6
+        margin: 0 auto;
7
+    }
8
+    .header-text
9
+    {
10
+        text-align:center;
11
+        font-weight: bold;
12
+        margin:0;
13
+    }
14
+    .outcome-text
15
+    {
16
+        text-align:left;
17
+        font-weight: bold;
18
+        margin:0;
19
+    }
20
+    h1.header-text
21
+    {
22
+      margin: 15px auto;
23
+      width:75%;
24
+      font-size: 25px;
25
+    }
26
+
27
+    table
28
+    {
29
+        border-collapse: collapse;
30
+        border: 1px solid black;
31
+        width: 100%;
32
+        margin: 30px auto;
33
+        font-size:1.5vw;
34
+    }
35
+    td, th
36
+    {
37
+        border: 1px solid black;
38
+        padding: 5px;
39
+    }
40
+
41
+    .activity-name-row
42
+    {
43
+      background:black;
44
+      color:white;
45
+    }
46
+
47
+    .activity-headers-row
48
+    {
49
+      background:lightgrey;
50
+      font-weight:bold;
51
+    }
52
+
53
+    .report-info
54
+    {
55
+      margin:5px 0;
56
+      font-size: 16px;
57
+    }
58
+
59
+    .criterion-field
60
+    {
61
+      text-align:left;
62
+    }
63
+
64
+    .score-field, .total, .percentage
65
+    {
66
+      text-align:center;
67
+    }
68
+
69
+    .header
70
+    {
71
+      margin: 30px 0;
72
+    }
73
+
74
+    .content
75
+    {
76
+      font-size: 12px;
77
+    }
78
+
79
+    .logo
80
+    {
81
+      position:absolute;
82
+      right:0;
83
+      top: 30px;
84
+      width: 100px;
85
+    }
86
+
87
+    ul{
88
+      list-style-type:none;
89
+    }
90
+
91
+    @media print{@page {size: landscape}}
92
+
93
+    .outcome-header{
94
+        text-align:left
95
+    }
96
+    hr{
97
+        border-block-color: black
98
+    }
99
+
100
+    .course-title {
101
+      text-align:center;
102
+      font-weight:bold;
103
+    }
104
+</style><style type="text/css" media="print">
105
+  @page { size: landscape; }
106
+</style><div id="theEntireDoc">
107
+    <img class="logo" src="http://localhost:8000/images/logo_uprrp_bw.png" alt="UPRRP Logo">
108
+
109
+    <div class="header">
110
+        <p class="header-text">University of Puerto Rico, Río Piedras Campus</p>
111
+        <p class="header-text">Online Learning Assessment System</p>
112
+        <p class="header-text">Audiovisual Communication Program Report</p>
113
+
114
+        <h1 class="header-text">Academic Year 2021-2022 </h1>
115
+    </div>
116
+
117
+                        <h1 class="outcome-header">Content Knowledge, Skills or Dispositions in the academic program learning outcomes <sub>(Semester
118
+                    C11)</sub></h1>
119
+            <hr>
120
+            <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more
121
+                of
122
+                the
123
+                attempts</p>
124
+            <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
125
+                70.00%
126
+            <p class="outcome-text">Results for Content Knowledge, Skills or Dispositions in the academic program learning outcomes
127
+
128
+                                    <em style="color: red">66.67% </em>
129
+                
130
+            </p>
131
+            <hr>
132
+            <ol type="I">
133
+                <li>
134
+                    <h2>Courses Assessment</h2>
135
+                    <hr style="border-block-color: black">
136
+
137
+                    <ol type="A">
138
+                                                    <li>
139
+
140
+                                <h2>Este es un objetivo para todos los demás: </h2>
141
+
142
+                                                                    <h2 class="course-title">
143
+                                        TEST-3002
144
+                                    </h2>
145
+                                    <h2 class="outcome-text">Performance of Students by Learning Outcome Criteria</h2>
146
+                                    <table class="table table-striped table-condensed">
147
+                                        <thead>
148
+                                            <tr>
149
+                                                <th></th>
150
+                                                <th>Criteria</th>
151
+
152
+                                                <th>Number of Students Assessed</th>
153
+
154
+
155
+                                                <th>Number of Students that Achieved the Target</th>
156
+                                                <th>Percentage</th>
157
+
158
+                                            </tr>
159
+                                        </thead>
160
+                                        <tbody>
161
+                                                                                            <tr>
162
+                                                    <td>1.</td>
163
+                                                    <td>
164
+                                                        Criterio 1
165
+
166
+                                                                                                            </td>
167
+                                                    <td>
168
+                                                        3
169
+                                                    </td>
170
+                                                    <td>
171
+                                                        3
172
+                                                    </td>
173
+
174
+                                                    <td>
175
+                                                        100%
176
+                                                    </td>
177
+
178
+
179
+                                                </tr>
180
+                                                                                            <tr>
181
+                                                    <td>2.</td>
182
+                                                    <td>
183
+                                                        Criterio 2
184
+
185
+                                                                                                            </td>
186
+                                                    <td>
187
+                                                        5
188
+                                                    </td>
189
+                                                    <td>
190
+                                                        4
191
+                                                    </td>
192
+
193
+                                                    <td>
194
+                                                        80%
195
+                                                    </td>
196
+
197
+
198
+                                                </tr>
199
+                                                                                            <tr>
200
+                                                    <td>3.</td>
201
+                                                    <td>
202
+                                                        Criterio 3
203
+
204
+                                                                                                            </td>
205
+                                                    <td>
206
+                                                        4
207
+                                                    </td>
208
+                                                    <td>
209
+                                                        2
210
+                                                    </td>
211
+
212
+                                                    <td>
213
+                                                        50%
214
+                                                    </td>
215
+
216
+
217
+                                                </tr>
218
+                                            
219
+                                        </tbody>
220
+                                    </table>
221
+                                                                            <h2 class="outcome-text">Follow up on Course's Proposed Transformative Actions
222
+                                        </h2>
223
+                                        <table class="table table-striped table-condensed">
224
+                                            <thead>
225
+                                                <tr>
226
+                                                    <th></th>
227
+                                                    <th>Transformative Actions</th>
228
+
229
+                                                    <th>Was it Implemented on Semester
230
+                                                        C11 ?</th>
231
+
232
+
233
+                                                    <th>Was this transformative action helpful to achieve the learning
234
+                                                        expectation?</th>
235
+                                                    <th>Explain briefly about the implementation of this transformative
236
+                                                        action
237
+                                                        or why was it not implemented</th>
238
+
239
+                                                </tr>
240
+                                            </thead>
241
+                                            <tbody>
242
+                                                                                                                                                    <tr>
243
+                                                        <td>1.</td>
244
+                                                        <td>
245
+                                                            <strong>QUE acaba de pasar: </strong>
246
+                                                            uuuuuuuuuuuuuuhhhhhhhhh
247
+
248
+
249
+                                                        </td>
250
+                                                                                                                    <td>
251
+                                                                                                                                    Yes
252
+                                                                                                                            </td>
253
+                                                            <td>
254
+                                                                                                                                                                                                            No
255
+                                                                                                                                    
256
+                                                            </td>
257
+
258
+                                                            <td>
259
+
260
+                                                                Acho yya im tired
261
+                                                            </td>
262
+                                                        
263
+
264
+                                                    </tr>
265
+                                                                                                    <tr>
266
+                                                        <td>2.</td>
267
+                                                        <td>
268
+                                                            <strong>Members of the vibe: </strong>
269
+                                                            BUUTUTUTUTUUTUTUT
270
+
271
+
272
+                                                        </td>
273
+                                                                                                                    <td>
274
+                                                                                                                                    Yes
275
+                                                                                                                            </td>
276
+                                                            <td>
277
+                                                                                                                                                                                                            Yes
278
+                                                                                                                                    
279
+                                                            </td>
280
+
281
+                                                            <td>
282
+
283
+                                                                En medio de un conflicto
284
+                                                            </td>
285
+                                                        
286
+
287
+                                                    </tr>
288
+                                                
289
+                                            </tbody>
290
+                                        </table>
291
+                                                                                                                <h2 class="outcome-text">Future Transformative Actions for Course
292
+                                        </h2>
293
+                                        <table class="table table-striped table-condensed">
294
+                                            <thead>
295
+                                                <tr>
296
+                                                    <th></th>
297
+                                                    <th>Transformative Actions to be Implemented</th>
298
+
299
+                                                    <th>Semesters where the Transformative Action will be Implemented
300
+                                                    </th>
301
+
302
+
303
+
304
+
305
+                                                </tr>
306
+                                            </thead>
307
+                                            <tbody>
308
+
309
+                                                                                                    <tr>
310
+                                                        <td>1.</td>
311
+                                                        <td>
312
+                                                            <strong>al no verte ni tenerte: </strong>
313
+                                                            El silencio me atormenta
314
+
315
+
316
+                                                        </td>
317
+                                                        <td>
318
+                                                                                                                            <p style="display:inline">C21, </p>
319
+                                                                                                                            <p style="display:inline">C41, </p>
320
+                                                                                                                    </td>
321
+
322
+
323
+                                                    </tr>
324
+                                                                                                    <tr>
325
+                                                        <td>2.</td>
326
+                                                        <td>
327
+                                                            <strong>Que quiero escuchar tu voz: </strong>
328
+                                                            que estoy muy triste
329
+
330
+
331
+                                                        </td>
332
+                                                        <td>
333
+                                                                                                                            <p style="display:inline">C21, </p>
334
+                                                                                                                            <p style="display:inline">C32, </p>
335
+                                                                                                                    </td>
336
+
337
+
338
+                                                    </tr>
339
+                                                                                                    <tr>
340
+                                                        <td>3.</td>
341
+                                                        <td>
342
+                                                            <strong>No es una novela: </strong>
343
+                                                            este amor
344
+
345
+
346
+                                                        </td>
347
+                                                        <td>
348
+                                                                                                                            <p style="display:inline">C21, </p>
349
+                                                                                                                            <p style="display:inline">C22, </p>
350
+                                                                                                                            <p style="display:inline">C31, </p>
351
+                                                                                                                            <p style="display:inline">C41, </p>
352
+                                                                                                                    </td>
353
+
354
+
355
+                                                    </tr>
356
+                                                                                                    <tr>
357
+                                                        <td>4.</td>
358
+                                                        <td>
359
+                                                            <strong>Una nueva: </strong>
360
+                                                            Una nueva accion transformadora
361
+
362
+
363
+                                                        </td>
364
+                                                        <td>
365
+                                                                                                                            <p style="display:inline">C22, </p>
366
+                                                                                                                    </td>
367
+
368
+
369
+                                                    </tr>
370
+                                                                                                    <tr>
371
+                                                        <td>5.</td>
372
+                                                        <td>
373
+                                                            <strong>Ojala que borracha: </strong>
374
+                                                            tu amiga ponga esta cancion
375
+
376
+
377
+                                                        </td>
378
+                                                        <td>
379
+                                                                                                                            <p style="display:inline">C22, </p>
380
+                                                                                                                            <p style="display:inline">C41, </p>
381
+                                                                                                                    </td>
382
+
383
+
384
+                                                    </tr>
385
+                                                
386
+                                            </tbody>
387
+                                        </table>
388
+                                                                        <hr>
389
+                                                                    <h2 class="course-title">
390
+                                        TEST-3001
391
+                                    </h2>
392
+                                    <h2 class="outcome-text">Performance of Students by Learning Outcome Criteria</h2>
393
+                                    <table class="table table-striped table-condensed">
394
+                                        <thead>
395
+                                            <tr>
396
+                                                <th></th>
397
+                                                <th>Criteria</th>
398
+
399
+                                                <th>Number of Students Assessed</th>
400
+
401
+
402
+                                                <th>Number of Students that Achieved the Target</th>
403
+                                                <th>Percentage</th>
404
+
405
+                                            </tr>
406
+                                        </thead>
407
+                                        <tbody>
408
+                                                                                            <tr>
409
+                                                    <td>1.</td>
410
+                                                    <td>
411
+                                                        Criterio 1
412
+
413
+                                                                                                            </td>
414
+                                                    <td>
415
+                                                        18
416
+                                                    </td>
417
+                                                    <td>
418
+                                                        13
419
+                                                    </td>
420
+
421
+                                                    <td>
422
+                                                        72.22%
423
+                                                    </td>
424
+
425
+
426
+                                                </tr>
427
+                                                                                            <tr>
428
+                                                    <td>2.</td>
429
+                                                    <td>
430
+                                                        Criterio 2
431
+
432
+                                                                                                            </td>
433
+                                                    <td>
434
+                                                        18
435
+                                                    </td>
436
+                                                    <td>
437
+                                                        14
438
+                                                    </td>
439
+
440
+                                                    <td>
441
+                                                        77.78%
442
+                                                    </td>
443
+
444
+
445
+                                                </tr>
446
+                                                                                            <tr>
447
+                                                    <td>3.</td>
448
+                                                    <td>
449
+                                                        Criterio 3
450
+
451
+                                                                                                            </td>
452
+                                                    <td>
453
+                                                        17
454
+                                                    </td>
455
+                                                    <td>
456
+                                                        13
457
+                                                    </td>
458
+
459
+                                                    <td>
460
+                                                        76.47%
461
+                                                    </td>
462
+
463
+
464
+                                                </tr>
465
+                                            
466
+                                        </tbody>
467
+                                    </table>
468
+                                                                            <h2 class="outcome-text">Follow up on Course's Proposed Transformative Actions
469
+                                        </h2>
470
+                                        <table class="table table-striped table-condensed">
471
+                                            <thead>
472
+                                                <tr>
473
+                                                    <th></th>
474
+                                                    <th>Transformative Actions</th>
475
+
476
+                                                    <th>Was it Implemented on Semester
477
+                                                        C11 ?</th>
478
+
479
+
480
+                                                    <th>Was this transformative action helpful to achieve the learning
481
+                                                        expectation?</th>
482
+                                                    <th>Explain briefly about the implementation of this transformative
483
+                                                        action
484
+                                                        or why was it not implemented</th>
485
+
486
+                                                </tr>
487
+                                            </thead>
488
+                                            <tbody>
489
+                                                                                                                                                    <tr>
490
+                                                        <td>1.</td>
491
+                                                        <td>
492
+                                                            <strong>Quiero atar esta: </strong>
493
+                                                            accion transformadora a
494
+
495
+
496
+                                                        </td>
497
+                                                                                                                    <td>
498
+                                                                                                                                    No
499
+                                                                                                                            </td>
500
+                                                            <td>
501
+                                                                                                                                    N/A
502
+                                                                
503
+                                                            </td>
504
+
505
+                                                            <td>
506
+
507
+                                                                 No fue implementado porque mi existencia fue media barata
508
+
509
+                                                            </td>
510
+                                                        
511
+
512
+                                                    </tr>
513
+                                                                                                    <tr>
514
+                                                        <td>2.</td>
515
+                                                        <td>
516
+                                                            <strong>Escape reality: </strong>
517
+                                                            it doesnt face you i need a breakthrough
518
+
519
+
520
+                                                        </td>
521
+                                                                                                                    <td>
522
+                                                                                                                                    Yes
523
+                                                                                                                            </td>
524
+                                                            <td>
525
+                                                                                                                                                                                                            No
526
+                                                                                                                                    
527
+                                                            </td>
528
+
529
+                                                            <td>
530
+
531
+                                                                 Env no se que paso pero just no bregó por alguna razon
532
+                                                            </td>
533
+                                                        
534
+
535
+                                                    </tr>
536
+                                                
537
+                                            </tbody>
538
+                                        </table>
539
+                                                                                                                <h2 class="outcome-text">Future Transformative Actions for Course
540
+                                        </h2>
541
+                                        <table class="table table-striped table-condensed">
542
+                                            <thead>
543
+                                                <tr>
544
+                                                    <th></th>
545
+                                                    <th>Transformative Actions to be Implemented</th>
546
+
547
+                                                    <th>Semesters where the Transformative Action will be Implemented
548
+                                                    </th>
549
+
550
+
551
+
552
+
553
+                                                </tr>
554
+                                            </thead>
555
+                                            <tbody>
556
+
557
+                                                                                                    <tr>
558
+                                                        <td>1.</td>
559
+                                                        <td>
560
+                                                            <strong>Termine bacchilerrato: </strong>
561
+                                                            aisoufh9sdfh9usdhf9usdf
562
+
563
+
564
+                                                        </td>
565
+                                                        <td>
566
+                                                                                                                            <p style="display:inline">C21, </p>
567
+                                                                                                                            <p style="display:inline">C32, </p>
568
+                                                                                                                            <p style="display:inline">C42, </p>
569
+                                                                                                                    </td>
570
+
571
+
572
+                                                    </tr>
573
+                                                                                                    <tr>
574
+                                                        <td>2.</td>
575
+                                                        <td>
576
+                                                            <strong>que es la que hay: </strong>
577
+                                                            skjdbfuosdhfosdf
578
+
579
+
580
+                                                        </td>
581
+                                                        <td>
582
+                                                                                                                            <p style="display:inline">C21, </p>
583
+                                                                                                                            <p style="display:inline">C31, </p>
584
+                                                                                                                            <p style="display:inline">C32, </p>
585
+                                                                                                                    </td>
586
+
587
+
588
+                                                    </tr>
589
+                                                
590
+                                            </tbody>
591
+                                        </table>
592
+                                                                        <hr>
593
+                                
594
+
595
+
596
+
597
+                            </li>
598
+                        
599
+
600
+                    </ol>
601
+
602
+
603
+                </li>
604
+
605
+
606
+
607
+                                    <li>
608
+                        <h2>Program Transformative Actions</h2>
609
+                        <hr>
610
+
611
+                        <table class="table table-striped table-condensed">
612
+                            <thead>
613
+                                <tr>
614
+                                    <th></th>
615
+                                    <th>Transformative Action</th>
616
+                                    <th>Category</th>
617
+                                    <th>Results</th>
618
+
619
+                                    <th>Was this helpful to achieve the learning expectation?</th>
620
+                                    <th>Explain briefly details about the implementation</th>
621
+
622
+                                </tr>
623
+                            </thead>
624
+                            <tbody>
625
+                                                                    <tr>
626
+                                        <td>1.</td>
627
+                                        <td>
628
+                                            <strong>We lift our voices: </strong>For all the things that we have done
629
+
630
+
631
+                                        </td>
632
+                                        <td>
633
+                                            To god
634
+                                        </td>
635
+
636
+                                                                                    <td>
637
+                                                Que empieza con flores y termina con baina
638
+                                            </td>
639
+
640
+                                            <td>
641
+                                                                                                    Yes
642
+                                                                                            </td>
643
+                                            <td>
644
+                                                Mal de amooore
645
+                                            </td>
646
+                                        
647
+
648
+                                    </tr>
649
+                                                                    <tr>
650
+                                        <td>2.</td>
651
+                                        <td>
652
+                                            <strong>walk away: </strong>around and around
653
+
654
+
655
+                                        </td>
656
+                                        <td>
657
+                                            Cosa guapa
658
+                                        </td>
659
+
660
+                                                                                    <td>
661
+                                                Por favor
662
+                                            </td>
663
+
664
+                                            <td>
665
+                                                                                                    No
666
+                                                                                            </td>
667
+                                            <td>
668
+                                                asdouhasdo
669
+                                            </td>
670
+                                        
671
+
672
+                                    </tr>
673
+                                                                    <tr>
674
+                                        <td>3.</td>
675
+                                        <td>
676
+                                            <strong>After aAAAlll: </strong>MmmmHHmmmMM
677
+
678
+
679
+                                        </td>
680
+                                        <td>
681
+                                            Cosa guapa
682
+                                        </td>
683
+
684
+                                                                                    <td>
685
+                                                BRRR
686
+                                            </td>
687
+
688
+                                            <td>
689
+                                                                                                    Yes
690
+                                                                                            </td>
691
+                                            <td>
692
+                                                Quiero encontrarte almenos
693
+                                            </td>
694
+                                        
695
+
696
+                                    </tr>
697
+                                                                    <tr>
698
+                                        <td>4.</td>
699
+                                        <td>
700
+                                            <strong>Parapara : </strong>Paa pa paaa pa pa pa
701
+
702
+
703
+                                        </td>
704
+                                        <td>
705
+                                            Cosa guapa
706
+                                        </td>
707
+
708
+                                                                                    <td>
709
+                                                Y que hay de mi
710
+                                            </td>
711
+
712
+                                            <td>
713
+                                                                                                    No
714
+                                                                                            </td>
715
+                                            <td>
716
+                                                Y que hay de tiii
717
+                                            </td>
718
+                                        
719
+
720
+                                    </tr>
721
+                                
722
+                            </tbody>
723
+                        </table>
724
+                        <hr>
725
+                    </li>
726
+                
727
+                                    <li>
728
+                        <h2>Comments</h2>
729
+                        <hr>
730
+                        <table class='table table-striped table-condensed'>
731
+                            <tbody>
732
+                                                                    <tr>
733
+                                        <td>
734
+                                            1.
735
+                                        </td>
736
+                                        <td>
737
+                                            Myyy little love
738
+                                        </td>
739
+                                    </tr>
740
+                                                                    <tr>
741
+                                        <td>
742
+                                            2.
743
+                                        </td>
744
+                                        <td>
745
+                                            BAAAAAAAARely
746
+                                        </td>
747
+                                    </tr>
748
+                                                            </tbody>
749
+                        </table>
750
+
751
+                    </li>
752
+                            </ol>
753
+                                <h1 class="outcome-header">Information Literacy <sub>(Semester
754
+                    C11)</sub></h1>
755
+            <hr>
756
+            <p class="outcome-text">Target to achieve the learning outcome: 66.66 or more
757
+                of
758
+                the
759
+                attempts</p>
760
+            <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
761
+                70.00%
762
+            <p class="outcome-text">Results for Information Literacy
763
+
764
+                                    <em style="color: green">80% </em>
765
+                
766
+            </p>
767
+            <hr>
768
+            <ol type="I">
769
+                <li>
770
+                    <h2>Courses Assessment</h2>
771
+                    <hr style="border-block-color: black">
772
+
773
+                    <ol type="A">
774
+                                                    <li>
775
+
776
+                                <h2>Este es un objetivo para todos los demás: </h2>
777
+
778
+                                                                    <h2 class="course-title">
779
+                                        TEST-3002
780
+                                    </h2>
781
+                                    <h2 class="outcome-text">Performance of Students by Learning Outcome Criteria</h2>
782
+                                    <table class="table table-striped table-condensed">
783
+                                        <thead>
784
+                                            <tr>
785
+                                                <th></th>
786
+                                                <th>Criteria</th>
787
+
788
+                                                <th>Number of Students Assessed</th>
789
+
790
+
791
+                                                <th>Number of Students that Achieved the Target</th>
792
+                                                <th>Percentage</th>
793
+
794
+                                            </tr>
795
+                                        </thead>
796
+                                        <tbody>
797
+                                                                                            <tr>
798
+                                                    <td>1.</td>
799
+                                                    <td>
800
+                                                        Criterio 2 para CE y IL
801
+
802
+                                                                                                                    <ul class="list-unstyled">
803
+                                                                                                                                    <li>Subcriterio 2</li>
804
+                                                                                                                            </ul>
805
+                                                                                                            </td>
806
+                                                    <td>
807
+                                                        5
808
+                                                    </td>
809
+                                                    <td>
810
+                                                        4
811
+                                                    </td>
812
+
813
+                                                    <td>
814
+                                                        80%
815
+                                                    </td>
816
+
817
+
818
+                                                </tr>
819
+                                            
820
+                                        </tbody>
821
+                                    </table>
822
+                                                                                                            <hr>
823
+                                
824
+
825
+
826
+
827
+                            </li>
828
+                        
829
+
830
+                    </ol>
831
+
832
+
833
+                </li>
834
+
835
+
836
+
837
+                                    <li>
838
+                        <h2>Program Transformative Actions</h2>
839
+                        <hr>
840
+
841
+                        <table class="table table-striped table-condensed">
842
+                            <thead>
843
+                                <tr>
844
+                                    <th></th>
845
+                                    <th>Transformative Action</th>
846
+                                    <th>Category</th>
847
+                                    <th>Results</th>
848
+
849
+                                    <th>Was this helpful to achieve the learning expectation?</th>
850
+                                    <th>Explain briefly details about the implementation</th>
851
+
852
+                                </tr>
853
+                            </thead>
854
+                            <tbody>
855
+                                                                    <tr>
856
+                                        <td>1.</td>
857
+                                        <td>
858
+                                            <strong>Paa: </strong>nananaaaaaa
859
+
860
+
861
+                                        </td>
862
+                                        <td>
863
+                                            De todo lo que
864
+                                        </td>
865
+
866
+                                                                                    <td>
867
+                                                Miro tus fotos
868
+                                            </td>
869
+
870
+                                            <td>
871
+                                                                                                    Yes
872
+                                                                                            </td>
873
+                                            <td>
874
+                                                ni leo tus cartas
875
+                                            </td>
876
+                                        
877
+
878
+                                    </tr>
879
+                                
880
+                            </tbody>
881
+                        </table>
882
+                        <hr>
883
+                    </li>
884
+                
885
+                            </ol>
886
+                                <h1 class="outcome-header">Effective Communication Skills <sub>(Semester
887
+                    C12)</sub></h1>
888
+            <hr>
889
+            <p class="outcome-text">Target to achieve the learning outcome: 66.66 or
890
+                more of
891
+                the
892
+                attempts</p>
893
+            <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
894
+                70.00%
895
+            <p class="outcome-text">Results for Effective Communication Skills
896
+
897
+
898
+                <em style="color: red">N/A </em>
899
+
900
+
901
+            </p>
902
+            <p class="outcome-text" style="color: red">No student has been assessed in this outcome</p>
903
+            <hr>
904
+                                <h1 class="outcome-header">Critical Thinking <sub>(Semester
905
+                    C12)</sub></h1>
906
+            <hr>
907
+            <p class="outcome-text">Target to achieve the learning outcome: 66.66 or
908
+                more of
909
+                the
910
+                attempts</p>
911
+            <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
912
+                70.00%
913
+            <p class="outcome-text">Results for Critical Thinking
914
+
915
+
916
+                <em style="color: red">N/A </em>
917
+
918
+
919
+            </p>
920
+            <p class="outcome-text" style="color: red">No student has been assessed in this outcome</p>
921
+            <hr>
922
+                                <h1 class="outcome-header">Social Responsibility <sub>(Semester
923
+                    C12)</sub></h1>
924
+            <hr>
925
+            <p class="outcome-text">Target to achieve the learning outcome: 66.66 or
926
+                more of
927
+                the
928
+                attempts</p>
929
+            <p class="outcome-text">Expected percent of students achieving the target by learning outcome:
930
+                70.00%
931
+            <p class="outcome-text">Results for Social Responsibility
932
+
933
+
934
+                <em style="color: red">N/A </em>
935
+
936
+
937
+            </p>
938
+            <p class="outcome-text" style="color: red">No student has been assessed in this outcome</p>
939
+            <hr>
940
+            </div>
941
+
942
+
943
+</body></html>
944
+<script type="text/javascript">
945
+
946
+
947
+
948
+</script>

+ 36
- 2
app/views/global/view-three-year-plan.blade.php Zobrazit soubor

@@ -107,7 +107,7 @@
107 107
         </div>
108 108
 
109 109
         <!-- Modal -->
110
-        <div id="three_year" class="modal fade" role="dialog">
110
+        <div id="three_year_modal" class="modal fade" role="dialog">
111 111
             <div class="modal-dialog">
112 112
                 <!-- Modal content-->
113 113
                 <div class="modal-content">
@@ -290,6 +290,25 @@
290 290
             </div>
291 291
         </div>
292 292
 
293
+        <div id="SubmitModal" class="modal fade" tabindex="-1" data-criterion-id="0">
294
+            <div class="modal-dialog">
295
+                <div class="modal-content">
296
+                    <div class="modal-header" style="background-color: rgba(109, 223, 59, 0.8)">
297
+                        <h5 class="modal-title">Three Year Plan has been submitted</h5>
298
+                        <button type="button" class="close" data-dismiss="modal">&times;</button>
299
+                    </div>
300
+                    <div class="modal-body" id = "modalBody">
301
+                        <h5>Would you like to submit this Three Year Plan to the administration now?</h5>
302
+                        <p>You can later submit other changes in another time, but you may have to explain</p>
303
+                    </div>
304
+                    <div class="modal-footer">
305
+                        <button type="button" class="btn btn-secondary" data-dismiss="modal" >Not yet</button>
306
+                        <button type="button" class="btn btn-primary" onclick = 'submitTYP()'>Submit & go to Annual Plans</button>
307
+                    </div>
308
+                </div>
309
+            </div>
310
+        </div>
311
+
293 312
     </div>
294 313
     <script>
295 314
         $(document).ready(function() {
@@ -412,7 +431,8 @@
412 431
                     function() {
413 432
                         
414 433
                         window.open("{{ URL::action('ThreeYearPlanController@printPlan', [$program_id]) }}"+"/"+typ_id+"/1", '_blank');
415
-                        window.location.href = "{{ URL::action('AnnualPlansController@showPlan', [$program_id]) }}";
434
+                        $('#SubmitModal').modal('show');
435
+                       // window.location.href = "{{ URL::action('AnnualPlansController@showPlan', [$program_id]) }}";
416 436
                             
417 437
 
418 438
                     });
@@ -541,6 +561,20 @@
541 561
         });
542 562
 
543 563
 
564
+        function submitTYP(){
565
+                typ_id =$('#table-cycles').data('typ-id');
566
+                $.post(
567
+                    "{{URL::action('ThreeYearPlanController@submit', [$program_id])}}",{
568
+                        typ_id:typ_id
569
+                    },
570
+                    function(code){
571
+                        if(code!=500)
572
+                        window.location.href = "{{ URL::action('AnnualPlansController@showPlan', [$program_id]) }}";
573
+                      
574
+                    }
575
+                )
576
+            }
577
+
544 578
         // go back to section 1
545 579
         $('.back-to-1').on('click', function(e) {
546 580
             window.scrollTo(0, 0);

+ 1
- 0
app/views/local/managers/admins/_new_navigation.blade.php Zobrazit soubor

@@ -74,6 +74,7 @@
74 74
                 <ul class="dropdown-menu dropdown-menu-left" role="menu">
75 75
                     <li>{{ HTML::linkAction('CoursesController@editView','Create Courses')}}</li>
76 76
                     <li>{{ HTML::linkAction('CoursesController@reassign', 'Reassign Courses') }}</li>
77
+                    <li>{{ HTML::linkAction('ProgramsController@assignOtherProgramIndex', 'Manage Program Courses Permissions')}}
77 78
 
78 79
                     <li>{{ HTML::linkAction('OutcomesController@index', 'Learning Outcomes') }}</li>
79 80
 

+ 65
- 8
app/views/local/managers/admins/appraisal-program.blade.php Zobrazit soubor

@@ -14,17 +14,74 @@
14 14
     <div class="row">
15 15
         <div class="col-md-12">
16 16
             <p>Click the links below to see annual appraisal plans for a specific program with assessed courses:</p>
17
+        </div>
18
+
19
+            
20
+        <div class='col-md-12'>
21
+            <select id ='annual_cycle' class="form-control selectpicker" onchange="fetchSubmit('#annual_cycle')">
22
+                @foreach($annual_cycle as $a)
23
+                <option value = {{$a->id}}> Cycle {{$a->academic_year}}  </option>
24
+                @endforeach
25
+
26
+            </select>
27
+        </div>
28
+
17 29
 
30
+        <table class='table table-striped table-condensed '>
31
+            <thead>
32
+                <tr>
33
+                    <th>Program</th>
34
+                    <th>Submitted this cycle</th>
35
+                </tr>
36
+            </thead>
37
+            <tbody>
38
+            @foreach ($programs as $program)
18 39
 
19
-            <ol id="table-of-contents">
20
-                @foreach ($programs as $program)
21
-                    <li>
40
+                <tr>
41
+                    <td>
42
+                        @if($report ==0)
22 43
                         <a href="{{ URL::action('AnnualPlansController@annualPlansShow', ['plan',$program->id]) }}">
23 44
                             {{ $program->name }}
24
-                        </a>
25
-                    </li>
26
-                @endforeach
27
-            </ol>
45
+                        @else
46
+                        <a href="{{ URL::action('AnnualPlansController@annualPlansShow', ['report',$program->id]) }}">
47
+                            {{ $program->name }}
48
+
49
+                        @endif
50
+                    </td>
51
+                    <td id = "is_submit-{{$program->id}}" class='submitted'>
52
+
53
+                    </td>
54
+                </tr>
55
+            @endforeach
56
+            </tbody>
57
+            </table>
58
+
59
+            
28 60
         </div>
29
-    </div>
61
+    <script>
62
+
63
+function fetchSubmit(annual_cycle){
64
+            $.post(
65
+                "{{URL::action('AnnualPlansController@fetchSubmitted')}}",
66
+                {
67
+                    annual_cycle:$(annual_cycle).val(),
68
+                    report:{{$report}}
69
+
70
+                },
71
+                function(programs){
72
+                    $(".submitted").html(' ');
73
+                    $.each(programs, function(ind, program){
74
+                        if(program.is_submitted){
75
+                            $('#is_submit-'+program.program_id).html(
76
+                                '<span class="glyphicon glyphicon-ok-sign"></span>'
77
+                            )
78
+                        }
79
+                    })
80
+                }
81
+            )
82
+        }
83
+
84
+        fetchSubmit("#typ");
85
+
86
+        </script>
30 87
 @stop

+ 277
- 0
app/views/local/managers/admins/assign_other_programs.blade.php Zobrazit soubor

@@ -0,0 +1,277 @@
1
+@extends('layouts.master')
2
+
3
+@section('navigation')
4
+    @include('local.managers.admins._new_navigation')
5
+@stop
6
+@section('main')
7
+
8
+    <div class="row">
9
+        <div class="col-md-6">
10
+            <div class="panel panel-default panel-button">
11
+                <div class="panel-heading">
12
+                    Create a Course
13
+                </div>
14
+                <div class="panel-body">
15
+
16
+                    {{ Form::open(['action' => 'ProgramsController@addToOtherProgramTYP','enctype'=>"multipart/form-data"]) }}
17
+
18
+
19
+                    <!-- Program -->
20
+                    <div class="form-group">
21
+                        {{ Form::label('program', 'Select Program to pair other Program Courses\'') }}
22
+                        <select id="program" name="program" class="form-control selectpicker">
23
+                            
24
+                            @foreach ($programs as $program)
25
+                                @if (Input::old('program') != $program->id)
26
+                                    <option value="{{ $program->id }}">{{ $program->name }}
27
+                                        ({{ $program->school->name }})</option>
28
+                                @else
29
+                                    <option selected value="{{ $program->id }}">{{ $program->name }}
30
+                                        ({{ $program->school->name }})</option>
31
+                                @endif
32
+                            @endforeach
33
+                        </select>
34
+                    </div>
35
+
36
+                    <div class="form-group" id = "other_program_div">
37
+                        {{ Form::label('program', 'Choose other program') }}
38
+                        <select id="other_program_0" name="other_program[]" class="form-control selectpicker">
39
+                            
40
+                            @foreach ($programs as $program)
41
+                                @if (Input::old('program') != $program->id)
42
+                                    <option value="{{ $program->id }}">{{ $program->name }}
43
+                                        ({{ $program->school->name }})</option>
44
+                                @else
45
+                                    <option selected value="{{ $program->id }}">{{ $program->name }}
46
+                                        ({{ $program->school->name }})</option>
47
+                                @endif
48
+                            @endforeach
49
+                        </select>
50
+
51
+    
52
+                    </div>
53
+
54
+                    <hr>
55
+                    <div class ='form-group'>
56
+                        <button id='add-other-program' class='btn btn-md btn-secondary'
57
+                        onclick='addOtherProgram("#add-other-program", "#other_program_div")'>
58
+                        <span class='glyphicon glyphicon-plus'>
59
+    
60
+                        </span>
61
+                        Add another Program
62
+                    </button>
63
+                    </div>
64
+
65
+
66
+                    
67
+
68
+
69
+              
70
+
71
+
72
+                    <br>
73
+
74
+                    {{ Form::submit('Pair Other Program Courses', ['class' => 'btn btn-primary btn-block', 'name' => 'pair_other_courses']) }}
75
+                    {{ Form::close() }}
76
+
77
+                    <br>
78
+
79
+                </div>
80
+            </div>
81
+        </div>
82
+
83
+        <div class="col-md-6">
84
+            <div class="panel panel-default panel-button">
85
+                <div class="panel-heading">
86
+                    Edit pairing
87
+                </div>
88
+                <div class="panel-body">
89
+
90
+
91
+
92
+                    <p>You can enroll students in this setting, by choosing the course and uploading a .txt file with the students numbers</p>
93
+
94
+                    {{ Form::open(['action' => 'ProgramsController@updatePairingInfo', 'enctype'=>"multipart/form-data"]) }}
95
+
96
+
97
+                    <div class = "form-group">
98
+                        {{Form::label('select-program-edit', "Edit Program Courses' Pairing")}}
99
+                        <select id = "select-program-edit" name = "program" class ='form-control selectpicker'
100
+                        onchange = "fetchProgramPairing('#select-program-edit')">
101
+                        @foreach ($programs as $program)
102
+                        @if (Input::old('program') != $program->id)
103
+                            <option value="{{ $program->id }}">{{ $program->name }}
104
+                                ({{ $program->school->name }})</option>
105
+                        @else
106
+                            <option selected value="{{ $program->id }}">{{ $program->name }}
107
+                                ({{ $program->school->name }})</option>
108
+                        @endif
109
+                    @endforeach
110
+
111
+                        </select>
112
+                    </div>
113
+
114
+                    <div class="form-group" id = "other_program_div_edit">
115
+                        {{ Form::label('program', 'Choose other program') }}
116
+                        <select id="program-edit" name="other_program[]" class="form-control selectpicker">
117
+                            
118
+                            @foreach ($programs as $program)
119
+                                @if (Input::old('program') != $program->id)
120
+                                    <option value="{{ $program->id }}">{{ $program->name }}
121
+                                        ({{ $program->school->name }})</option>
122
+                                @else
123
+                                    <option selected value="{{ $program->id }}">{{ $program->name }}
124
+                                        ({{ $program->school->name }})</option>
125
+                                @endif
126
+                            @endforeach
127
+                        </select>
128
+
129
+                    </div>
130
+                    <hr>
131
+
132
+                    <div class ='form-group'>
133
+                        <button id='add-other-program-edit' class='btn btn-md btn-secondary'
134
+                        onclick='addOtherProgram("#add-other-program-edit", "#other_program_div_edit")'>
135
+                        <span class='glyphicon glyphicon-plus'>
136
+    
137
+                        </span>
138
+                        Add another Program
139
+                    </button>
140
+                    </div>
141
+
142
+
143
+
144
+                    <br>
145
+
146
+                    {{ Form::submit("Edit Program Courses' Pairing", ['class' => 'btn btn-primary btn-block', 'name' => 'edit_pair_other_courses']) }}
147
+                    {{ Form::close() }}
148
+
149
+                </div>
150
+            </div>
151
+        </div>
152
+    </div>
153
+
154
+    <script>
155
+        $('.filterSection').show();
156
+        $('.filterButton').on('click', function() {
157
+            var span = $(this).find('span');
158
+            if (span.attr('class') == 'glyphicon glyphicon-plus') {
159
+                span.attr('class', 'glyphicon glyphicon-minus');
160
+            } else {
161
+                span.attr('class', 'glyphicon glyphicon-plus');
162
+            }
163
+            $('.filterSection').toggle(533);
164
+        });
165
+        $('.filterButton').on('click', function(e) {
166
+        // Prevent the default action of the clicked item. In this case that is submit
167
+            e.preventDefault();
168
+
169
+
170
+        return false;
171
+        });
172
+
173
+        
174
+        options = $('#other_program_0').html();
175
+
176
+        function addOtherProgram(button, div, removable = ''){
177
+
178
+            master_div = $("<div>",{
179
+
180
+                'class':removable
181
+                
182
+            })
183
+            div_select = $("<div>", {
184
+                'class':'col-md-11'
185
+            })
186
+            select = $("<select>", {
187
+                'name': "other_program[]",
188
+                'class':'form-control selectpicker ' 
189
+            }).html(options);
190
+
191
+            select.appendTo(div_select)
192
+
193
+            div_button = $("<div>", {
194
+                'class':'col-md-1'
195
+            })
196
+
197
+            rem_button = $('<button>',{
198
+                'type':'button',
199
+                'class':'btn btn-primary',
200
+                'onclick':'$(this).parent().parent().remove();'
201
+            }).html("<span class='glyphicon glyphicon-remove'></span>")
202
+
203
+            div_button.append(rem_button);
204
+
205
+            master_div.append(div_select);
206
+            master_div.append(div_button);
207
+            master_div.prepend("<br>")
208
+            master_div.append("<br>");
209
+
210
+
211
+
212
+          
213
+
214
+            master_div.appendTo($(div));
215
+            $('.selectpicker').selectpicker('refresh');
216
+            
217
+
218
+        }
219
+        
220
+
221
+        function fetchProgramPairing(select){
222
+            $.post(
223
+                "{{URL::action('ProgramsController@fetchPairingInfo')}}", {
224
+                    program_id: $(select).val()
225
+                },
226
+                function(paired_programs){
227
+
228
+                    $('.removable').remove();
229
+
230
+                    $.each(paired_programs, function(index, program_id){
231
+
232
+                       selectPick=   $('#other_program_div_edit').find('select.selectpicker').eq(index).val(program_id);
233
+                       selectPick.val(program_id);
234
+
235
+                        if(paired_programs[index+1]){
236
+                            addOtherProgram("#add-other-program-edit", "#other_program_div_edit", 'removable')
237
+                        }
238
+
239
+                        $('.selectpicker').selectpicker('refresh');
240
+                    })
241
+                }
242
+            )
243
+        }
244
+
245
+        
246
+    </script>
247
+
248
+    
249
+@stop
250
+
251
+@section('javascript')
252
+
253
+    // --------------------------------------------------------------------------
254
+    // Page load
255
+    // --------------------------------------------------------------------------
256
+$("#add-other-program").on("click", function(e){
257
+    e.preventDefault();
258
+});
259
+
260
+$("#add-other-program-edit").on('click', function(e){
261
+    e.preventDefault();
262
+})
263
+
264
+
265
+fetchProgramPairing('#select-program-edit')
266
+
267
+    // --------------------------------------------------------------------------
268
+    // Functions
269
+    // --------------------------------------------------------------------------
270
+
271
+
272
+
273
+    // --------------------------------------------------------------------------
274
+    // Events
275
+    // --------------------------------------------------------------------------
276
+
277
+@stop

+ 1
- 1
app/views/local/managers/admins/learning-outcome_new.blade.php Zobrazit soubor

@@ -31,7 +31,7 @@
31 31
                         <th>School</th>
32 32
                         <th>Criteria attempted for the outcome</th>
33 33
                         <th>Criteria achieved for the outcome </th>
34
-                        <th>Success rate</th>
34
+                        <th>Success rate</th> 
35 35
                     </thead>
36 36
                     <tbody>
37 37
                         @foreach($undergradResults["names"] as $id=>$undergradProgramName)

+ 63
- 28
app/views/local/managers/admins/learning-outcomes.blade.php Zobrazit soubor

@@ -110,42 +110,77 @@
110 110
 
111 111
         <hr>
112 112
     </div>
113
+
114
+    
115
+<div class="modal fade" id="delete-outcome-modal">
116
+    <div class="modal-dialog modal-md">
117
+      <div class="modal-content">
118
+        <div class="modal-header">
119
+          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
120
+          <h4 class="modal-title text-center" id ="modal-title-rubric">Are you sure you want to delete this Learning Outcome?</h4>
121
+        </div>
122
+          <div class="modal-body" id ="delete-outcome-modal-body">
123
+              <p>You won't be able to retrieve it</p>
124
+  
125
+  
126
+  
127
+                 
128
+                  
129
+                  
130
+          </div>
131
+        <div class="modal-footer">
132
+              <button type="button" class="btn btn-default modal-but" data-dismiss="modal">Close</button>
133
+              <button type="button" class="btn btn-primary modal-but" id='modal-delete-button' data-dismiss="modal" onclick ="">Delete Outcome</button>
134
+            
135
+        </div>
136
+      </div><!-- /.modal-content -->
137
+    </div><!-- /.modal-dialog -->
138
+  </div>
139
+
140
+  <script>
141
+function deleteOutcome(outcome_id){
142
+    var outcomeObject = new Object();
143
+
144
+    outcomeObject.id= outcome_id;
145
+    outcomeObject.delete=1;
146
+    console.log("algo"+JSON.stringify(outcome_id));
147
+    console.log("algo"+JSON.stringify(outcomeObject));
148
+    var clone = jQuery.extend({}, outcomeObject);
149
+    //	outcomeArray.push(clone);
150
+    //	console.log("algo"+JSON.stringify(outcomeArray));
151
+    $.post(
152
+        "{{ URL::action('OutcomesController@delete') }}",
153
+        {    outcomeArray: JSON.stringify(outcomeObject)},
154
+    function(data)
155
+        {
156
+            location.reload();
157
+        }
158
+    );
159
+}
160
+    </script>
113 161
 @stop
114 162
 
115 163
 @section('javascript')
164
+
165
+$(".modal-but").on('click',function(e){
166
+    e.preventDefault();
167
+})
168
+
169
+
116 170
 @foreach ($outcomes as $outcome)
117 171
      $('#del{{ $outcome->id }}').on('click', function(e)
118 172
     {
119 173
     	e.preventDefault();
120 174
     	//outcomeObject.id= $(this).data('id');
121
-    	if(confirm("Are you sure you want to delete the outcome with id {{ $outcome->id }}"))
122
-    	{
123
-    		console.log("si");
124
-			var outcomeObject = new Object();
125
-
126
-			outcomeObject.id= {{ $outcome->id }};
127
-	    	outcomeObject.delete=1;
128
-	    	console.log("algo"+JSON.stringify({{ $outcome->id }}));
129
-	    	console.log("algo"+JSON.stringify(outcomeObject));
130
-			var clone = jQuery.extend({}, outcomeObject);
131
-		//	outcomeArray.push(clone);
132
-	    //	console.log("algo"+JSON.stringify(outcomeArray));
133
-			$.post(
134
-			"{{ URL::action('OutcomesController@delete') }}",
135
-			{ outcomeArray: JSON.stringify(outcomeObject)},
136
-			function(data)
137
-			{
138
-				location.reload();
139
-			}
140
-			);
141
-			
142
-   		}
143
-    	else 
144
-    	{
145
-	    	console.log("no");
146
-//			outcomeObject.delete=0;
147
-		}
148
-	});
175
+
176
+        $("#delete-outcome-modal").modal("show");
177
+        $("#modal-delete-button").attr('onclick', 'deleteOutcome({{$outcome->id}})')
178
+
179
+    }
180
+     );
181
+
182
+
183
+
149 184
 @endforeach
150 185
 
151 186
     $('#new_outcome_form').hide();

+ 57
- 7
app/views/local/managers/admins/show-typ-program.blade.php Zobrazit soubor

@@ -15,16 +15,66 @@
15 15
         <div class="col-md-12">
16 16
             <p>Click the links below to see annual appraisal plans for a specific program with assessed courses:</p>
17 17
 
18
+        </div>
19
+
20
+        <div class='col-md-12'>
21
+            <select id ='typ' class="form-control selectpicker" onchange="fetchSubmit('#typ')">
22
+                @foreach($typ as $t)
23
+                <option value = {{$t->id}}> Cycle {{$t->year_start}}-{{$t->year_end}}  </option>
24
+                @endforeach
18 25
 
19
-            <ol id="table-of-contents">
26
+            </select>
27
+        </div>
28
+
29
+
30
+            <table class='table table-striped table-condensed '>
31
+                <thead>
32
+                    <tr>
33
+                        <th>Program</th>
34
+                        <th>Submitted this cycle</th>
35
+                    </tr>
36
+                </thead>
37
+                <tbody>
20 38
                 @foreach ($programs as $program)
21
-                    <li>
22
-                        <a href="{{ URL::action('ThreeYearPlanController@showPDFs', [$program->id]) }}">
39
+
40
+                    <tr>
41
+                        <td>
42
+                            <a href="{{ URL::action('ThreeYearPlanController@showPDFs', [$program->id]) }}">
23 43
                             {{ $program->name }}
24
-                        </a>
25
-                    </li>
44
+                        </td>
45
+                        <td id = "is_submit-{{$program->id}}" class='submitted'>
46
+
47
+                        </td>
48
+                    </tr>
26 49
                 @endforeach
27
-            </ol>
50
+                </tbody>
51
+                </table>
28 52
         </div>
29
-    </div>
53
+   
54
+
55
+    <script>
56
+
57
+        function fetchSubmit(typ){
58
+            $.post(
59
+                "{{URL::action('ThreeYearPlanController@fetchSubmitted')}}",
60
+                {
61
+                    typ:$(typ).val()
62
+                },
63
+                function(programs){
64
+                    $(".submitted").html(' ');
65
+                    $.each(programs, function(ind, program){
66
+                        if(program.is_submitted){
67
+                            $('#is_submit-'+program.program_id).html(
68
+                                '<span class="glyphicon glyphicon-ok-sign"></span>'
69
+                            )
70
+                        }
71
+                    })
72
+                }
73
+            )
74
+        }
75
+
76
+        fetchSubmit("#typ");
77
+
78
+
79
+</script>
30 80
 @stop

+ 68
- 1
app/views/local/managers/admins/view_template.blade.php Zobrazit soubor

@@ -18,6 +18,8 @@
18 18
   <div class="col-md-12">
19 19
     <div class="btn-group pull-right">
20 20
       {{ HTML::linkAction('TemplatesController@printview', 'Print', array($template->id), array('class'=>'btn btn-default')) }}
21
+      <button class= 'btn btn-default' onclick ='fetchObjectivesForTemplate("#bodyRubric")'>View Objectives</button>
22
+   
21 23
     </div>
22 24
 
23 25
     <p>Passing Criteria:
@@ -42,7 +44,7 @@
42 44
         </thead>
43 45
       <tbody id ="bodyRubric">
44 46
         @foreach($template->criteria as $index=> $criterion)
45
-      <tr data-criterion-copyright="{{$criterion->copyright}}" data-criterion-notes="{{$criterion->notes}}">
47
+      <tr data-criterion-id = "{{$criterion->id}}" data-criterion-copyright="{{$criterion->copyright}}" data-criterion-notes="{{$criterion->notes}}">
46 48
         <td>{{$index+1}}.</td>
47 49
 
48 50
         @if($criterion->notes)
@@ -91,7 +93,72 @@
91 93
   </div>
92 94
 </div>
93 95
 
96
+
97
+<div class="modal fade" id="objectives-crit-modal">
98
+  <div class="modal-dialog modal-md">
99
+    <div class="modal-content">
100
+      <div class="modal-header">
101
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
102
+        <h4 class="modal-title text-center" id ="modal-title-rubric">These are the objectives in each Criterion in this Rubric</h4>
103
+      </div>
104
+        <div class="modal-body" id ="objectives-crit-modal-body">
105
+            
106
+
107
+
108
+
109
+               
110
+                
111
+                
112
+        </div>
113
+      <div class="modal-footer">
114
+            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
115
+          
116
+      </div>
117
+    </div><!-- /.modal-content -->
118
+  </div><!-- /.modal-dialog -->
119
+</div>
94 120
 <script> 
121
+
122
+function fetchObjectivesForTemplate(tbody){
123
+  
124
+  allCriteria = [];
125
+        $(tbody).children('tr').each(function (index){
126
+            allCriteria.push($(this).data('criterion-id'));
127
+        })
128
+        $.post(
129
+            "{{URL::action('TemplatesController@fetchObjectivesForTemplate')}}",
130
+            {
131
+                allCriteria:allCriteria
132
+            },
133
+
134
+            function(crit){
135
+                
136
+                modal_name = '#objectives-crit-modal';
137
+                $(modal_name+'-body').html(' ');
138
+                ol_crit = $("<ol>")
139
+                $(modal_name+'-body').append(ol_crit);
140
+                $.each(crit, function(index, cri){
141
+
142
+                    
143
+                    li = $("<li>").html("<strong>"+cri.name+"</strong>");
144
+                    
145
+                    ul_for_ob = $("<ul>");
146
+                    
147
+                        $.each(cri.all_objectives, function(ind, obj){
148
+                            li2 = $("<li>").html(obj.text)
149
+                            ul_for_ob.append(li2);
150
+                        })
151
+                        li.append(ul_for_ob);
152
+                    ol_crit.append(li);
153
+
154
+                    
155
+                })
156
+                $(modal_name).modal('show');
157
+
158
+            }
159
+        )
160
+    }
161
+
95 162
 /*
96 163
   function createTable(){
97 164
     $.post("{{URL::action('TemplatesController@onLoadFetch')}}",

+ 1
- 1
app/views/local/managers/sCoords/_new_navigation.blade.php Zobrazit soubor

@@ -112,7 +112,7 @@
112 112
                         </li>
113 113
                     @endforeach
114 114
                     <h6 class="dropdown-header">View Annual Report from:</h6>
115
-                    @foreach (Auth::user()->programs as $program)
115
+                    @foreach (Auth::user()->school->programs as $program)
116 116
                         <li><a
117 117
                                 href="{{ URL::action('AnnualPlansController@annualPlansShow', ['report', $program->id]) }}">{{ $program->name }}</a>
118 118
                         </li>

+ 4
- 0
app/views/local/managers/shared/rubric_list.blade.php Zobrazit soubor

@@ -36,7 +36,11 @@
36 36
             <tbody>
37 37
                 @foreach ($templates as $template)
38 38
                     <tr>
39
+                        @if($role==4)
39 40
                         <td>{{ HTML::linkAction('TemplatesController@profShow', $template->name, [$template->id]) }}</td>
41
+                        @else
42
+                        <td>{{ HTML::linkAction('TemplatesController@show', $template->name, [$template->id]) }}</td>
43
+                        @endif
40 44
                         <td>
41 45
                             @if ($template->school)
42 46
                                 {{ $template->school->name }}

+ 66
- 0
app/views/local/managers/shared/rubrics_new.blade.php Zobrazit soubor

@@ -341,6 +341,7 @@
341 341
                     Delete
342 342
                 </button>
343 343
                 <button id="button-print-rubric" class="btn btn-lg btn-primary"><span class="glyphicon glyphicon-print"></span> Print <span class="small">(saved version)</span></button>
344
+                <button id = "button-get-criteria-objectives" class = "btn btn-lg btn-primary" onclick = 'fetchObjectivesForTemplate("#allCriteria")'><span class='glyphicon glyphicon-eye-open'></span> View Objectives</button>
344 345
             </div>
345 346
         </div>
346 347
     </div>
@@ -370,6 +371,31 @@
370 371
       </div><!-- /.modal-content -->
371 372
     </div><!-- /.modal-dialog -->
372 373
   </div>
374
+
375
+
376
+  <div class="modal fade" id="objectives-crit-modal">
377
+    <div class="modal-dialog modal-md">
378
+      <div class="modal-content">
379
+        <div class="modal-header">
380
+          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
381
+          <h4 class="modal-title text-center" id ="modal-title-rubric">These are the objectives in each Criterion in this Rubric</h4>
382
+        </div>
383
+          <div class="modal-body" id ="objectives-crit-modal-body">
384
+              
385
+  
386
+  
387
+ 
388
+                 
389
+                  
390
+                  
391
+          </div>
392
+        <div class="modal-footer">
393
+              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
394
+            
395
+        </div>
396
+      </div><!-- /.modal-content -->
397
+    </div><!-- /.modal-dialog -->
398
+  </div>
373 399
 <script>
374 400
 
375 401
     </script>
@@ -380,6 +406,46 @@
380 406
 <!-- jQuery Sortable Tables -->
381 407
 <script src="{{ asset('vendor/jQuerySortable/jquery-sortable-min.js') }}"></script>
382 408
 <script>
409
+
410
+    function fetchObjectivesForTemplate(tbody){
411
+
412
+        allCriteria = [];
413
+        $(tbody).children('tr').each(function (index){
414
+            allCriteria.push($(this).data('criterion-id'));
415
+        })
416
+        $.post(
417
+            "{{URL::action('TemplatesController@fetchObjectivesForTemplate')}}",
418
+            {
419
+                allCriteria:allCriteria
420
+            },
421
+
422
+            function(crit){
423
+                
424
+                modal_name = '#objectives-crit-modal';
425
+                $(modal_name+'-body').html(' ');
426
+                ol_crit = $("<ol>")
427
+                $(modal_name+'-body').append(ol_crit);
428
+                $.each(crit, function(index, cri){
429
+
430
+                    
431
+                    li = $("<li>").html("<strong>"+cri.name+"</strong>");
432
+                    
433
+                    ul_for_ob = $("<ul>");
434
+                    
435
+                        $.each(cri.all_objectives, function(ind, obj){
436
+                            li2 = $("<li>").html(obj.text)
437
+                            ul_for_ob.append(li2);
438
+                        })
439
+                        li.append(ul_for_ob);
440
+                    ol_crit.append(li);
441
+
442
+                    
443
+                })
444
+                $(modal_name).modal('show');
445
+
446
+            }
447
+        )
448
+    }
383 449
 function saveTemplate()
384 450
 {
385 451
     //Prevent page refresh

+ 34
- 18
app/views/local/managers/shared/school.blade.php Zobrazit soubor

@@ -79,11 +79,11 @@
79 79
                                     @foreach($outcomes_undergrad as $outcome)
80 80
                                         <tr>
81 81
                                             <td class="col-md-6">{{ link_to_action('OutcomesController@show', $outcome->name, array($outcome->id), $attributes = array()) }}</td>
82
-                                            <td class="col-md-2">{{{ $attemptedUndergradProgramsPerOutcome[$outcome->id] }}}</td>
83
-                                            <td class="col-md-2">{{{ $achievedUndergradProgramsPerOutcome[$outcome->id] }}}</td>
82
+                                            <td class="col-md-2">{{{ count($attemptedUndergradProgramsPerOutcome[$outcome->id]) }}}</td>
83
+                                            <td class="col-md-2">{{{ count($achievedUndergradProgramsPerOutcome[$outcome->id]) }}}</td>
84 84
                                             <td class="col-md-2">
85
-                                                @if($attemptedUndergradProgramsPerOutcome[$outcome->id]!=0)
86
-                                                    {{{ round($achievedUndergradProgramsPerOutcome[$outcome->id] / $attemptedUndergradProgramsPerOutcome[$outcome->id]*100, 2) }}}%
85
+                                                @if(count($attemptedUndergradProgramsPerOutcome[$outcome->id])!=0)
86
+                                                    {{{ round( count($achievedUndergradProgramsPerOutcome[$outcome->id]) / count($attemptedUndergradProgramsPerOutcome[$outcome->id])*100, 2) }}}%
87 87
                                                 @else
88 88
                                                     N/M
89 89
                                                 @endif
@@ -274,11 +274,11 @@
274 274
                                     @foreach($outcomes_grad as $outcome)
275 275
                                         <tr>
276 276
                                             <td class="col-md-6">{{ link_to_action('OutcomesController@show', $outcome->name, array($outcome->id), $attributes = array()) }}</td>
277
-                                            <td class="col-md-2">{{{ $attemptedGradProgramsPerOutcome[$outcome->id] }}}</td>
278
-                                            <td class="col-md-2">{{{ $achievedGradProgramsPerOutcome[$outcome->id] }}}</td>
277
+                                            <td class="col-md-2">{{{ count($attemptedGradProgramsPerOutcome[$outcome->id]) }}}</td>
278
+                                            <td class="col-md-2">{{{ count($achievedGradProgramsPerOutcome[$outcome->id]) }}}</td>
279 279
                                             <td class="col-md-2">
280
-                                                @if($attemptedGradProgramsPerOutcome[$outcome->id]!=0)
281
-                                                    {{{ round($achievedGradProgramsPerOutcome[$outcome->id] / $attemptedGradProgramsPerOutcome[$outcome->id]*100, 2) }}}%
280
+                                                @if(count($attemptedGradProgramsPerOutcome[$outcome->id])!=0)
281
+                                                    {{{ round(count($achievedGradProgramsPerOutcome[$outcome->id]) / count($attemptedGradProgramsPerOutcome[$outcome->id])*100, 2) }}}%
282 282
                                                 @else
283 283
                                                     N/M
284 284
                                                 @endif
@@ -457,7 +457,7 @@ $(function () {
457 457
             xAxis: {
458 458
                 categories: [
459 459
                     @foreach($outcomes_undergrad as $outcome)
460
-                        "{{{ $outcome->name }}}",
460
+                        "{{{ $outcome->name }}},  <br> (N = {{$undergrad_outcomes_attempted[$outcome->id]}} ,{{$undergrad_outcomes_achieved[$outcome->id]}})",
461 461
                     @endforeach
462 462
                 ],
463 463
                 labels: {
@@ -497,7 +497,7 @@ $(function () {
497 497
                 groupPadding: 0.075
498 498
                 },
499 499
             },
500
-            series: [{
500
+            series: [/*{
501 501
                 name: 'Expected Value',
502 502
                 color: '#555555',
503 503
                 dataLabels: {
@@ -508,7 +508,7 @@ $(function () {
508 508
                     format: '{y:.1f}%',
509 509
                     style: {
510 510
                         //fontWeight: 'bold'
511
-                    },
511
+                    }, 
512 512
                     y:-1
513 513
                 },
514 514
                 data: [
@@ -524,7 +524,7 @@ $(function () {
524 524
                     @endforeach
525 525
                 ],
526 526
                 pointPadding: 0,
527
-            }, {
527
+            },*/ {
528 528
                 name: 'Obtained Value',
529 529
                 color: '#e70033',
530 530
                 dataLabels: {
@@ -544,7 +544,16 @@ $(function () {
544 544
                             is_array($undergrad_outcomes_attempted)
545 545
                             && array_key_exists($outcome->id, $undergrad_outcomes_attempted)
546 546
                             && $undergrad_outcomes_attempted[$outcome->id]!=0)
547
-                            {{{ ($undergrad_outcomes_achieved[$outcome->id]/$undergrad_outcomes_attempted[$outcome->id])*100 }}},
547
+                            <?php
548
+                            
549
+                            if (isset($undergrad_outcomes_achieved[$outcome->id]))
550
+                            $achieved = $undergrad_outcomes_achieved[$outcome->id];
551
+                            else {
552
+                                $achieved =0;
553
+                            }
554
+                            
555
+                            ?>
556
+                            {{{ ($achieved/$undergrad_outcomes_attempted[$outcome->id])*100 }}},
548 557
                         @else
549 558
                             0,
550 559
                         @endif
@@ -567,7 +576,7 @@ $(function () {
567 576
             xAxis: {
568 577
                 categories: [
569 578
                     @foreach($outcomes_grad as $outcome)
570
-                        "{{{ $outcome->name }}}",
579
+                        "{{{ $outcome->name }}} <br> (N = {{$grad_outcomes_attempted[$outcome->id]}} , {{$grad_outcomes_achieved[$outcome->id]}})",
571 580
                     @endforeach
572 581
                 ],
573 582
                 labels: {
@@ -654,7 +663,14 @@ $(function () {
654 663
                             is_array($grad_outcomes_attempted)
655 664
                             && array_key_exists($outcome->id, $grad_outcomes_attempted)
656 665
                             && $grad_outcomes_attempted[$outcome->id]!=0)
657
-                            {{{ ($grad_outcomes_achieved[$outcome->id]/$grad_outcomes_attempted[$outcome->id])*100 }}},
666
+                            <?php
667
+                             if (isset($grad_outcomes_achieved[$outcome->id]))
668
+                            $achieved = $grad_outcomes_achieved[$outcome->id];
669
+                            else {
670
+                                $achieved =0;
671
+                            }
672
+                            ?>
673
+                            {{{ ($achieved/$grad_outcomes_attempted[$outcome->id])*100 }}},
658 674
                         @else
659 675
                             0,
660 676
                         @endif
@@ -678,7 +694,7 @@ $(function () {
678 694
             xAxis: {
679 695
                 categories: [
680 696
                     @foreach($outcomes_undergrad as $outcome)
681
-                        "{{{ $outcome->name }}}",
697
+                        "{{{ $outcome->name }}} <br> (N = {{$undergrad_outcomes_attempted[$outcome->id]}} ,{{$undergrad_outcomes_achieved[$outcome->id]}})",
682 698
                     @endforeach
683 699
                 ],
684 700
                 labels: {
@@ -718,7 +734,7 @@ $(function () {
718 734
                 groupPadding: 0.075
719 735
                 },
720 736
             },
721
-            series: [{
737
+            series: [/*{
722 738
                 name: 'Expected Value',
723 739
                 color: '#555555',
724 740
                 dataLabels: {
@@ -745,7 +761,7 @@ $(function () {
745 761
                     @endforeach
746 762
                 ],
747 763
                 pointPadding: 0,
748
-            }, {
764
+            },*/ {
749 765
                 name: 'Obtained Value',
750 766
                 color: '#e70033',
751 767
                 dataLabels: {

+ 647
- 0
app/views/three_year_plan_htmls/10-10-2022-for-15-by-5478.blade.php Zobrazit soubor

@@ -0,0 +1,647 @@
1
+<html><head></head><body id="theDocument"><style type="text/css">
2
+    body
3
+    {
4
+        font-family: "Arial", sans-serif;
5
+        width:90%;
6
+        margin: 0 auto;
7
+    }
8
+    .header-text
9
+    {
10
+        text-align:center;
11
+        font-weight: bold;
12
+        margin:0;
13
+    }
14
+
15
+    h1.header-text
16
+    {
17
+      margin: 15px auto;
18
+      width:75%;
19
+      font-size: 25px;
20
+    }
21
+
22
+    table
23
+    {
24
+        border-collapse: collapse;
25
+        border: 1px solid black;
26
+        width: 100%;
27
+        margin: 30px auto;
28
+        font-size:1.5vw;
29
+    }
30
+    td, th
31
+    {
32
+        border: 1px solid black;
33
+        padding: 5px;
34
+    }
35
+
36
+    .activity-name-row
37
+    {
38
+      background:black;
39
+      color:white;
40
+    }
41
+
42
+    .activity-headers-row
43
+    {
44
+      background:lightgrey;
45
+      font-weight:bold;
46
+    }
47
+
48
+    .report-info
49
+    {
50
+      margin:5px 0;
51
+      font-size: 16px;
52
+    }
53
+
54
+    .criterion-field
55
+    {
56
+      text-align:left;
57
+    }
58
+
59
+    .score-field, .total, .percentage
60
+    {
61
+      text-align:center;
62
+    }
63
+
64
+    .header
65
+    {
66
+      margin: 30px 0;
67
+    }
68
+
69
+    .content
70
+    {
71
+      font-size: 12px;
72
+    }
73
+
74
+    .logo
75
+    {
76
+      position:absolute;
77
+      right:0;
78
+      top: 30px;
79
+      width: 100px;
80
+    }
81
+
82
+    ol{
83
+      list-style-type:none;
84
+    }
85
+
86
+    @media print{@page {size: landscape}}
87
+</style><style type="text/css" media="print">
88
+	  @page { size: landscape; }
89
+	</style><img class="logo" src="http://localhost:8000/images/logo_uprrp_bw.png" alt="UPRRP Logo">
90
+
91
+<div class="header">
92
+    <p class="header-text">University of Puerto Rico, Río Piedras Campus</p>
93
+    <p class="header-text">Online Learning Assessment System</p>
94
+
95
+    <h1 class="header-text">Three Year Plan for Audiovisual Communication from 2019 to
96
+        2022</h1>
97
+</div>
98
+
99
+
100
+
101
+    <br>
102
+    <br>
103
+    <h2 class='header-text'>First Semester 2019-2020</h2>
104
+    <br>
105
+                  <span>
106
+            <h3>Technology</h3>
107
+        </span>
108
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
109
+            <thead>
110
+                <tr>
111
+
112
+                    <th>Objectives</th>
113
+                    <th>Courses</th>
114
+
115
+                </tr>
116
+            </thead>
117
+            <tbody>
118
+
119
+                                    <tr>
120
+
121
+                        <td>
122
+                            1. Este es un objetivo para todos los demás
123
+                        </td>
124
+                        <td>
125
+                            <ol>
126
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
127
+                                                            </ol>
128
+                        </td>
129
+
130
+                    </tr>
131
+                                    <tr>
132
+
133
+                        <td>
134
+                            2. Holder
135
+                        </td>
136
+                        <td>
137
+                            <ol>
138
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
139
+                                                                    <li>[COMA4819] VANG EXP CINEMAT DIG INTER</li>
140
+                                                            </ol>
141
+                        </td>
142
+
143
+                    </tr>
144
+                
145
+            </tbody>
146
+        </table>
147
+        <br>
148
+        <br>
149
+                              <span>
150
+            <h3>Research and Creation</h3>
151
+        </span>
152
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
153
+            <thead>
154
+                <tr>
155
+
156
+                    <th>Objectives</th>
157
+                    <th>Courses</th>
158
+
159
+                </tr>
160
+            </thead>
161
+            <tbody>
162
+
163
+                                    <tr>
164
+
165
+                        <td>
166
+                            1. Este es un objetivo para todos los demás
167
+                        </td>
168
+                        <td>
169
+                            <ol>
170
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
171
+                                                            </ol>
172
+                        </td>
173
+
174
+                    </tr>
175
+                                    <tr>
176
+
177
+                        <td>
178
+                            2. Holder
179
+                        </td>
180
+                        <td>
181
+                            <ol>
182
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
183
+                                                            </ol>
184
+                        </td>
185
+
186
+                    </tr>
187
+                
188
+            </tbody>
189
+        </table>
190
+        <br>
191
+        <br>
192
+                              <span>
193
+            <h3>Critical Thinking</h3>
194
+        </span>
195
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
196
+            <thead>
197
+                <tr>
198
+
199
+                    <th>Objectives</th>
200
+                    <th>Courses</th>
201
+
202
+                </tr>
203
+            </thead>
204
+            <tbody>
205
+
206
+                                    <tr>
207
+
208
+                        <td>
209
+                            1. Este es un objetivo para critical thinking.
210
+                        </td>
211
+                        <td>
212
+                            <ol>
213
+                                                                    <li>[TEST3001] TEST COURSE 1</li>
214
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
215
+                                                            </ol>
216
+                        </td>
217
+
218
+                    </tr>
219
+                
220
+            </tbody>
221
+        </table>
222
+        <br>
223
+        <br>
224
+                    <br>
225
+    <br>
226
+    <h2 class='header-text'>Second Semester 2019-2020</h2>
227
+    <br>
228
+                  <span>
229
+            <h3>Information Literacy</h3>
230
+        </span>
231
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
232
+            <thead>
233
+                <tr>
234
+
235
+                    <th>Objectives</th>
236
+                    <th>Courses</th>
237
+
238
+                </tr>
239
+            </thead>
240
+            <tbody>
241
+
242
+                                    <tr>
243
+
244
+                        <td>
245
+                            1. Este es un objetivo para todos los demás
246
+                        </td>
247
+                        <td>
248
+                            <ol>
249
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
250
+                                                            </ol>
251
+                        </td>
252
+
253
+                    </tr>
254
+                
255
+            </tbody>
256
+        </table>
257
+        <br>
258
+        <br>
259
+                              <span>
260
+            <h3>Content Knowledge, Skills or Dispositions in the academic program learning outcomes</h3>
261
+        </span>
262
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
263
+            <thead>
264
+                <tr>
265
+
266
+                    <th>Objectives</th>
267
+                    <th>Courses</th>
268
+
269
+                </tr>
270
+            </thead>
271
+            <tbody>
272
+
273
+                                    <tr>
274
+
275
+                        <td>
276
+                            1. Este es un objetivo para todos los demás
277
+                        </td>
278
+                        <td>
279
+                            <ol>
280
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
281
+                                                                    <li>[TEST3001] TEST COURSE 1</li>
282
+                                                            </ol>
283
+                        </td>
284
+
285
+                    </tr>
286
+                
287
+            </tbody>
288
+        </table>
289
+        <br>
290
+        <br>
291
+                              <span>
292
+            <h3>Logical-mathematical reasoning </h3>
293
+        </span>
294
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
295
+            <thead>
296
+                <tr>
297
+
298
+                    <th>Objectives</th>
299
+                    <th>Courses</th>
300
+
301
+                </tr>
302
+            </thead>
303
+            <tbody>
304
+
305
+                                    <tr>
306
+
307
+                        <td>
308
+                            1. Este es un objetivo para todos los demás
309
+                        </td>
310
+                        <td>
311
+                            <ol>
312
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
313
+                                                            </ol>
314
+                        </td>
315
+
316
+                    </tr>
317
+                
318
+            </tbody>
319
+        </table>
320
+        <br>
321
+        <br>
322
+                              <span>
323
+            <h3>Effective Communication Skills</h3>
324
+        </span>
325
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
326
+            <thead>
327
+                <tr>
328
+
329
+                    <th>Objectives</th>
330
+                    <th>Courses</th>
331
+
332
+                </tr>
333
+            </thead>
334
+            <tbody>
335
+
336
+                                    <tr>
337
+
338
+                        <td>
339
+                            1. Esto es un objetivo para Comunicación Efectiva.
340
+                        </td>
341
+                        <td>
342
+                            <ol>
343
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
344
+                                                            </ol>
345
+                        </td>
346
+
347
+                    </tr>
348
+                                    <tr>
349
+
350
+                        <td>
351
+                            2. Holder
352
+                        </td>
353
+                        <td>
354
+                            <ol>
355
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
356
+                                                            </ol>
357
+                        </td>
358
+
359
+                    </tr>
360
+                
361
+            </tbody>
362
+        </table>
363
+        <br>
364
+        <br>
365
+                    <br>
366
+    <br>
367
+    <h2 class='header-text'>First Semester 2020-2021</h2>
368
+    <br>
369
+        <br>
370
+    <br>
371
+    <h2 class='header-text'>Second Semester 2020-2021</h2>
372
+    <br>
373
+                  <span>
374
+            <h3>Social Responsibility</h3>
375
+        </span>
376
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
377
+            <thead>
378
+                <tr>
379
+
380
+                    <th>Objectives</th>
381
+                    <th>Courses</th>
382
+
383
+                </tr>
384
+            </thead>
385
+            <tbody>
386
+
387
+                                    <tr>
388
+
389
+                        <td>
390
+                            1. Este es un objetivo para todos los demás
391
+                        </td>
392
+                        <td>
393
+                            <ol>
394
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
395
+                                                            </ol>
396
+                        </td>
397
+
398
+                    </tr>
399
+                
400
+            </tbody>
401
+        </table>
402
+        <br>
403
+        <br>
404
+                              <span>
405
+            <h3>Technology</h3>
406
+        </span>
407
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
408
+            <thead>
409
+                <tr>
410
+
411
+                    <th>Objectives</th>
412
+                    <th>Courses</th>
413
+
414
+                </tr>
415
+            </thead>
416
+            <tbody>
417
+
418
+                                    <tr>
419
+
420
+                        <td>
421
+                            1. Este es un objetivo para todos los demás
422
+                        </td>
423
+                        <td>
424
+                            <ol>
425
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
426
+                                                            </ol>
427
+                        </td>
428
+
429
+                    </tr>
430
+                
431
+            </tbody>
432
+        </table>
433
+        <br>
434
+        <br>
435
+                              <span>
436
+            <h3>Logical-mathematical reasoning </h3>
437
+        </span>
438
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
439
+            <thead>
440
+                <tr>
441
+
442
+                    <th>Objectives</th>
443
+                    <th>Courses</th>
444
+
445
+                </tr>
446
+            </thead>
447
+            <tbody>
448
+
449
+                                    <tr>
450
+
451
+                        <td>
452
+                            1. Este es un objetivo para todos los demás
453
+                        </td>
454
+                        <td>
455
+                            <ol>
456
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
457
+                                                            </ol>
458
+                        </td>
459
+
460
+                    </tr>
461
+                
462
+            </tbody>
463
+        </table>
464
+        <br>
465
+        <br>
466
+                    <br>
467
+    <br>
468
+    <h2 class='header-text'>First Semester 2021-2022</h2>
469
+    <br>
470
+                  <span>
471
+            <h3>Content Knowledge, Skills or Dispositions in the academic program learning outcomes</h3>
472
+        </span>
473
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
474
+            <thead>
475
+                <tr>
476
+
477
+                    <th>Objectives</th>
478
+                    <th>Courses</th>
479
+
480
+                </tr>
481
+            </thead>
482
+            <tbody>
483
+
484
+                                    <tr>
485
+
486
+                        <td>
487
+                            1. Este es un objetivo para todos los demás
488
+                        </td>
489
+                        <td>
490
+                            <ol>
491
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
492
+                                                                    <li>[TEST3001] TEST COURSE 1</li>
493
+                                                            </ol>
494
+                        </td>
495
+
496
+                    </tr>
497
+                
498
+            </tbody>
499
+        </table>
500
+        <br>
501
+        <br>
502
+                              <span>
503
+            <h3>Information Literacy</h3>
504
+        </span>
505
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
506
+            <thead>
507
+                <tr>
508
+
509
+                    <th>Objectives</th>
510
+                    <th>Courses</th>
511
+
512
+                </tr>
513
+            </thead>
514
+            <tbody>
515
+
516
+                                    <tr>
517
+
518
+                        <td>
519
+                            1. Este es un objetivo para todos los demás
520
+                        </td>
521
+                        <td>
522
+                            <ol>
523
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
524
+                                                            </ol>
525
+                        </td>
526
+
527
+                    </tr>
528
+                
529
+            </tbody>
530
+        </table>
531
+        <br>
532
+        <br>
533
+                    <br>
534
+    <br>
535
+    <h2 class='header-text'>Second Semester 2021-2022</h2>
536
+    <br>
537
+                  <span>
538
+            <h3>Effective Communication Skills</h3>
539
+        </span>
540
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
541
+            <thead>
542
+                <tr>
543
+
544
+                    <th>Objectives</th>
545
+                    <th>Courses</th>
546
+
547
+                </tr>
548
+            </thead>
549
+            <tbody>
550
+
551
+                                    <tr>
552
+
553
+                        <td>
554
+                            1. Esto es un objetivo para Comunicación Efectiva.
555
+                        </td>
556
+                        <td>
557
+                            <ol>
558
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
559
+                                                            </ol>
560
+                        </td>
561
+
562
+                    </tr>
563
+                
564
+            </tbody>
565
+        </table>
566
+        <br>
567
+        <br>
568
+                              <span>
569
+            <h3>Critical Thinking</h3>
570
+        </span>
571
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
572
+            <thead>
573
+                <tr>
574
+
575
+                    <th>Objectives</th>
576
+                    <th>Courses</th>
577
+
578
+                </tr>
579
+            </thead>
580
+            <tbody>
581
+
582
+                                    <tr>
583
+
584
+                        <td>
585
+                            1. Este es un objetivo para critical thinking.
586
+                        </td>
587
+                        <td>
588
+                            <ol>
589
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
590
+                                                                    <li>[TEST3001] TEST COURSE 1</li>
591
+                                                            </ol>
592
+                        </td>
593
+
594
+                    </tr>
595
+                
596
+            </tbody>
597
+        </table>
598
+        <br>
599
+        <br>
600
+                                            <span>
601
+            <h3>Social Responsibility</h3>
602
+        </span>
603
+        <table class="table table-striped table-condensed" style="table-layout: fixed">
604
+            <thead>
605
+                <tr>
606
+
607
+                    <th>Objectives</th>
608
+                    <th>Courses</th>
609
+
610
+                </tr>
611
+            </thead>
612
+            <tbody>
613
+
614
+                                    <tr>
615
+
616
+                        <td>
617
+                            1. Este es un objetivo para todos los demás
618
+                        </td>
619
+                        <td>
620
+                            <ol>
621
+                                                                    <li>[COMA4317] DISE</li>
622
+                                                                    <li>[TEST3002] TEST COURSE 2</li>
623
+                                                            </ol>
624
+                        </td>
625
+
626
+                    </tr>
627
+                
628
+            </tbody>
629
+        </table>
630
+        <br>
631
+        <br>
632
+                 
633
+
634
+
635
+</body></html>
636
+
637
+
638
+<script>
639
+
640
+  
641
+    
642
+  
643
+
644
+
645
+  </script>
646
+
647
+