PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/teacher/assigned_col.php

https://github.com/xmarcosx/enroll
PHP | 387 lines | 360 code | 2 blank | 25 comment | 61 complexity | 3cd7bec153984afa5ef26f2dca7069db MD5 | raw file
  1. <?php
  2. session_start();
  3. //Credentials aren't legit or user isn't an admin, kick back to login screen
  4. if (!isset($_SESSION['username']) ||
  5. $_SESSION['login']!=true ||
  6. $_SESSION['student']) {
  7. $_SESSION['from_teacher']=true;
  8. header('Location: ../login.html');
  9. }
  10. //Code to connect to database
  11. //Grab all of teacher's colloquiums and store in array
  12. include_once '../admin/settings.php';
  13. //Connects to MySQL and Selects Database
  14. $con = mysql_connect($host,$db_username,$db_password);
  15. if (!$con)
  16. die('Could not connect: ' . mysql_error());
  17. mysql_select_db($db, $con);
  18. $master_username=$_SESSION['username'];
  19. $ghostuser=$_SESSION['ghostuser'];
  20. if(!is_null($ghostuser))
  21. $username=$_SESSION['ghostuser'];
  22. else
  23. $username=$_SESSION['username'];
  24. //Internal user id
  25. $userid=NULL;
  26. $get_userid_result=mysql_query("SELECT id FROM users WHERE username=\"$username\"") or die(mysql_error());
  27. $get_userid_array=mysql_fetch_array($get_userid_result);
  28. $userid=$get_userid_array['id'];
  29. //Grab all of the teacher's colloquiums
  30. $get_colloquium_repository_result=mysql_query('SELECT courses.id,courses.name, courses.description, courses.image, courses.preferred_room,
  31. courses.preferred_class_size, courses.preferred_lunch_block, courses.freshmen,
  32. courses.sophomores, courses.juniors, courses.seniors, users.id AS userid
  33. FROM courses
  34. INNER JOIN `users` on courses.teacher_id=users.id
  35. WHERE users.username="' . $username . '"')
  36. or die (mysql_error());
  37. //Get all teacher names for co-teacher drop down
  38. $get_teachers_result=mysql_query('SELECT id,firstname,lastname FROM users WHERE role="teacher" OR secondary_role="teacher" ORDER BY firstname ASC') or die (mysql_error());
  39. //Grab all of the teachers assigned colloquiums
  40. $get_colloquium_assignments_result=mysql_query(
  41. 'SELECT courses.name,assignments.id AS assignment_id,assignments.colloquium_duration AS duration, assignments.colloquium_semester AS semester,
  42. assignments.course_id, assignments.notes, assignments.final, users.id AS userid, assignments.secondary_teacher_id
  43. FROM assignments
  44. INNER JOIN `courses` on assignments.course_id=courses.id
  45. INNER JOIN `users` on courses.teacher_id=users.id
  46. WHERE users.username="' . $username . '"')
  47. or die (mysql_error());
  48. //Teacher has no assigned colloquiums
  49. $sem1Col=false;
  50. $sem2Col=false;
  51. //Attributes of the teacher's semester 1 colloquium
  52. $sem1ColName=null;
  53. $sem1ColDuration=null;
  54. $sem1ColCoTeacher=null;
  55. $sem1ColNotes=null;
  56. $sem1ColFinal=null;
  57. $sem1ColID=null;
  58. //Attributes of the teacher's semester 1 colloquium
  59. $sem2ColName=null;
  60. $sem2ColDuration=null;
  61. $sem2ColCoTeacher=null;
  62. $sem2ColNotes=null;
  63. $sem2ColFinal=null;
  64. $sem2ColID=null;
  65. //Traverse through existing colloquium assignments
  66. mysql_data_seek($get_colloquium_assignments_result,0);
  67. while($colRow = mysql_fetch_array($get_colloquium_assignments_result)){
  68. //Attributes of individual colloquium assignment
  69. $c_id = $colRow['c_id'];
  70. $duration = $colRow['duration'];
  71. $semester = $colRow['semester'];
  72. //If colloquium assignment is for a full year colloquium
  73. if(strcmp($duration, 'y') == 0){
  74. //We have a Semester 1 and 2 assignment!
  75. $sem1Col = true;
  76. $sem2Col = true;
  77. $sem1ColName = $colRow['name'];
  78. $sem2ColName = $colRow['name'];
  79. //Only need to set fields for Semester 1
  80. //Semester 2 fields besides name will be disabled
  81. $sem1ColDuration = $colRow['duration'];
  82. $sem1ColCoTeacher=$colRow['secondary_teacher_id'];
  83. $sem1ColNotes = $colRow['notes'];
  84. $sem1ColFinal = $colRow['final'];
  85. $sem1ColID = $colRow['assignment_id'];
  86. }
  87. //else if assignment is 1st Semester
  88. else if(strcmp($duration, 'y') != 0 && $semester == 1){
  89. //We have a Semester 1 assignment!
  90. $sem1Col = true;
  91. $sem1ColName = $colRow['name'];
  92. //Set fields for Semester 1
  93. $sem1ColDuration = $colRow['duration'];
  94. $sem1ColCoTeacher=$colRow['secondary_teacher_id'];
  95. $sem1ColNotes = $colRow['notes'];
  96. $sem1ColFinal = $colRow['final'];
  97. $sem1ColID = $colRow['assignment_id'];
  98. }
  99. //if assignment is 2nd Semester
  100. else if(strcmp($duration, "y") != 0 && $semester == 2){
  101. //We have a Semester 2 assignment!
  102. $sem2Col = true;
  103. $sem2ColName = $colRow['name'];
  104. //Set fields for Semester 2
  105. $sem2ColDuration = $colRow['duration'];
  106. $sem2ColCoTeacher=$colRow['secondary_teacher_id'];
  107. $sem2ColNotes = $colRow['notes'];
  108. $sem2ColFinal = $colRow['final'];
  109. $sem2ColID = $colRow['assignment_id'];
  110. }
  111. }
  112. mysql_close($con);
  113. ?>
  114. <!DOCTYPE html>
  115. <html lang='en'>
  116. <head>
  117. <meta charset='utf-8'>
  118. <title>Enroll: <?php echo $school_name; ?></title>
  119. <meta name='viewport' content='width=device-width, initial-scale=1.0'>
  120. <meta name='description' content="Flexible Scheduling for Today's Classroom">
  121. <meta name='author' content='Marcos Alcozer'>
  122. <meta name='keywords' content='Education, Scheduling'>
  123. <!-- Le styles -->
  124. <style>
  125. body {
  126. padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
  127. }
  128. </style>
  129. <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
  130. <link href='../css/admin.css' rel='stylesheet'>
  131. <!-- JQUERY -->
  132. <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
  133. <!-- BOOTSTRAP -->
  134. <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
  135. <!-- AJAX UPLOAD BY BRYAN GENTRY -->
  136. <!-- http://bryangentry.us/ajax-upload-with-javascript-and-php-upload-an-image-and-display-a-preview/ -->
  137. <script src='../js/ajaxupload.js'></script>
  138. <!-- FORM VALIDATION USING JQUERY -->
  139. <!-- http://alittlecode.com/jquery-form-validation-with-styles-from-twitter-bootstrap/ -->
  140. <script src='../js/jquery.validate.min.js'></script>
  141. <!-- <script src='../js/validate.js'></script> -->
  142. <!-- INHOUSE JAVASCRIPT -->
  143. <script src='../js/teacher.js'></script>
  144. <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
  145. <!--[if lt IE 9]>
  146. <script src="../js/html5shiv.js"></script>
  147. <![endif]-->
  148. </head>
  149. <body>
  150. <?php include_once('../admin/analyticstracking.php') ?>
  151. <!-- TOP MENU -->
  152. <div class='navbar navbar-inverse navbar-fixed-top'>
  153. <div class='navbar-inner'>
  154. <div class='container'>
  155. <button type='button' class='btn btn-navbar' data-toggle='collapse' data-target='.nav-collapse'>
  156. <span class='icon-bar'></span>
  157. <span class='icon-bar'></span>
  158. <span class='icon-bar'></span>
  159. </button>
  160. <a class='brand appname' href='#'>Enroll<img src='../img/beta-icon.png' style="vertical-align:text-top;"/></a>
  161. <div class='nav-collapse collapse'>
  162. <ul class="nav">
  163. <li><a href="agenda.php">Agenda</a></li>
  164. <li class="dropdown">
  165. <a href="#" class="dropdown-toggle" data-toggle="dropdown">X/Y <b class="caret"></b></a>
  166. <ul class="dropdown-menu">
  167. <li><a href="assigned_xy.php">Assign Course</a></li>
  168. <li><a href="repository_xy.php">Course Repository</a></li>
  169. <li><a href="preenroll_xy.php">Enroll Students</a></li>
  170. </ul>
  171. </li>
  172. <li class="dropdown active">
  173. <a href="#" class="dropdown-toggle" data-toggle="dropdown">Colloquium <b class="caret"></b></a>
  174. <ul class="dropdown-menu">
  175. <li><a href="assigned_col.php">Assign Course</a></li>
  176. <li><a href="repository_col.php">Course Repository</a></li>
  177. <li class="dropdown-submenu">
  178. <a tabindex="-1" href="#">Enroll Students</a>
  179. <ul class="dropdown-menu">
  180. <li><a href="preenroll_col.php?semester=1">Semester 1</a></li>
  181. <li><a href="preenroll_col.php?semester=2">Semester 2</a></li>
  182. </ul>
  183. </li>
  184. </ul>
  185. </li>
  186. </ul>
  187. <ul class="nav pull-right">
  188. <?php if($_SESSION['admin'] && $_SESSION['teacher']){
  189. echo "<li><a href='../admin'>Admin Panel</a></li>";
  190. }
  191. if(!is_null($ghostuser)){ ?>
  192. <li><a href="javascript:void(0)" onclick='ghost_user("<?php echo $master_username; ?>","admin");'><?php echo $master_username; ?></a></li>
  193. <?php
  194. }
  195. if(!isset($_SESSION['username']))
  196. echo "<li class='login-button'><a href='../login.html' style='color:#FFFFFF'>Login</a></li>";
  197. else
  198. echo "<li class='login-button'><a href='../logout.php' style='color:#FFFFFF'>Logout</a></li>";
  199. ?>
  200. </ul>
  201. </div><!--/.nav-collapse -->
  202. </div>
  203. </div>
  204. </div>
  205. <div class='container'>
  206. <h2 id='assignLabel'>Assign Course</h2>
  207. <hr />
  208. <div id='assign'>
  209. <!-- Semester 1 Choice -->
  210. <div class='controls controls-row'>
  211. <div class='span5'>
  212. <h4>Semester 1:</h4>
  213. <!-- Form Name sem1Selection -->
  214. <form id='sem1Selection'>
  215. <input name='semester' type='hidden' value=1 />
  216. <input name='teacher' type='hidden' value='<?php echo $userid; ?>' />
  217. <input name='previous_duration' type='hidden' value='<?php echo $duration; ?>' />
  218. <input name='existing' type='hidden' value=<?php if($sem1Col){ echo 1; }else{ echo 0; } ?> />
  219. <input name='assignment_id' type='hidden' value="<?php if($sem1Col){ echo $sem1ColID; } ?>" />
  220. <div class='control-group'>
  221. <label class='control-label'>Colloquium</label>
  222. <div class='controls'>
  223. <select name='c_id' id='sem1Colloquium' <?php if($sem1ColFinal==1){ echo " disabled "; } ?> >
  224. <option value=''></option>
  225. <?php
  226. //Traverse through teacher's colloquium repository
  227. mysql_data_seek($get_colloquium_repository_result,0);
  228. while($row = mysql_fetch_array($get_colloquium_repository_result)){
  229. echo '<option';
  230. if(strcmp($row['name'], $sem1ColName) == 0){ echo " selected"; }
  231. echo ' value=' . $row['id'] . '>' . $row['name'] . '</option>';
  232. }
  233. ?>
  234. </select>
  235. </div>
  236. </div>
  237. <div class='control-group'>
  238. <label class='control-label'>Duration: </label>
  239. <div class='controls'>
  240. <select name='duration' id='sem1Duration' <?php if($sem1ColFinal==1){ echo " disabled "; } ?> >
  241. <option selected value=''></option>
  242. <?php
  243. if($sem1Col && strcmp($duration, "s") == 0)
  244. {
  245. echo '<option selected value="s">Semester</option>';
  246. echo '<option value="y">Year</option>';
  247. }
  248. else if($sem1Col && strcmp($duration, "y") == 0){
  249. echo '<option value="s">Semester</option>';
  250. echo '<option selected value="y">Year</option>';
  251. }
  252. else{
  253. echo '<option value="s">Semester</option>';
  254. echo '<option value="y">Year</option>';
  255. }
  256. ?>
  257. </select>
  258. </div>
  259. </div>
  260. <div class='control-group'>
  261. <label class='control-label'>Co-teacher: </label>
  262. <div class='controls'>
  263. <select name='coteacher' id='sem1Coteacher' <?php if($sem1ColFinal==1){ echo " disabled "; } ?> >
  264. <option value=''></option>
  265. <?php
  266. mysql_data_seek($get_teachers_result,0);
  267. while($teacher=mysql_fetch_array($get_teachers_result)){
  268. echo "<option ";
  269. if(strcmp($sem1ColCoTeacher, $teacher['id']) == 0){
  270. echo "selected";
  271. }
  272. echo " value=" . $teacher['id'] . ">" . $teacher['firstname'] . " " . $teacher['lastname'] . "</option>";
  273. }
  274. ?>
  275. </select>
  276. </div>
  277. </div>
  278. <div class='control-group'>
  279. <label class='control-label'>Notes for programmer: </label>
  280. <div class='controls'>
  281. <textarea name='notes' rows='5' id='sem1Notes'<?php if($sem1ColFinal==1){ echo " disabled "; } ?> ><?php if($sem1Col){ echo $sem1ColNotes; } ?></textarea>
  282. </div>
  283. </div>
  284. <div class='control-group'>
  285. <div class='controls'>
  286. <?php
  287. if(!$sem1ColFinal){
  288. ?>
  289. <div><button class='btn' type='submit' onClick='assign_colloquium(1)' >Update</button></div>
  290. <?php if($sem1Col){ ?>
  291. <div><em class='text-info'>Pending Approval</em></div>
  292. <?php } ?>
  293. <div id='sem1Status'></div>
  294. <?php
  295. }
  296. else{
  297. ?>
  298. <div><em class='text-success'>Finalized, no changes possible.</em></div>
  299. <?php } ?>
  300. </div>
  301. </div>
  302. </form>
  303. </div>
  304. <div class='span5'>
  305. <?php
  306. if(strcmp($sem1ColDuration, "y") == 0){echo "<div hidden>"; }
  307. ?>
  308. <!-- Semester 2 Choice -->
  309. <h4>Semester 2:</h4>
  310. <form id='sem2Selection'>
  311. <input name='semester' type='hidden' value=2 />
  312. <input name='teacher' type='hidden' value='<?php echo $userid ?>' />
  313. <input name='duration' type='hidden' value='s' />
  314. <input name='previous_duration' type='hidden' value='s' />
  315. <input name='existing' type='hidden' value=<?php if($sem2Col){ echo 1; }else{ echo 0; } ?> />
  316. <input name='assignment_id' type='hidden' value="<?php if($sem2Col){ echo $sem1ColID; } ?>" />
  317. <div class='control-group'>
  318. <label class='control-label'>Colloquium</label>
  319. <div class='controls'>
  320. <select name='c_id' id='sem2Colloquium' <?php if($sem2ColFinal==1){ echo " disabled "; } ?> >
  321. <option value=''></option>
  322. <?php
  323. //Traverse through teacher's colloquium repository
  324. mysql_data_seek($get_colloquium_repository_result,0);
  325. while($row = mysql_fetch_array($get_colloquium_repository_result)){
  326. echo '<option';
  327. if(strcmp($row['name'], $sem2ColName) == 0){ echo " selected"; }
  328. echo ' value=' . $row['id'] . '>' . $row['name'] . '</option>';
  329. }
  330. ?>
  331. </select>
  332. </div>
  333. </div>
  334. <div class='control-group'>
  335. <label class='control-label'>Co-teacher: </label>
  336. <div class='controls'>
  337. <select name='coteacher' id='sem1Coteacher' <?php if($sem1ColFinal==1){ echo " disabled "; } ?> >
  338. <option value=''></option>
  339. <?php
  340. mysql_data_seek($get_teachers_result,0);
  341. while($teacher=mysql_fetch_array($get_teachers_result)){
  342. echo "<option ";
  343. if(strcmp($sem2ColCoTeacher, $teacher['id']) == 0){
  344. echo "selected";
  345. }
  346. echo " value=" . $teacher['id'] . ">" . $teacher['firstname'] . " " . $teacher['lastname'] . "</option>";
  347. }
  348. ?>
  349. </select>
  350. </div>
  351. </div>
  352. <div class='control-group'>
  353. <label class='control-label'>Notes for programmer: </label>
  354. <div class='controls'>
  355. <textarea name='notes' rows='5' id='sem2Notes' <?php if($sem2ColFinal==1){ echo " disabled "; } ?> ><?php if($sem2Col){ echo $sem2ColNotes; } ?></textarea>
  356. </div>
  357. </div>
  358. <div class='control-group'>
  359. <div class='controls'>
  360. <?php
  361. if($sem2ColFinal==0){
  362. ?>
  363. <div><button class='btn' type='submit' onClick='assign_colloquium(2)' >Update</button></div>
  364. <?php if($sem2Col){ ?>
  365. <div><em class='text-info'>Pending Approval</em></div>
  366. <?php } ?>
  367. <div id='sem2Status'></div>
  368. <?php
  369. }
  370. else{
  371. ?>
  372. <div><em class='text-success'>Finalized, no changes possible.</em></div>
  373. <?php } ?>
  374. </div>
  375. </div>
  376. </form>
  377. <?php
  378. if(strcmp($sem1ColDuration, "y") == 0){echo "</div>"; }
  379. ?>
  380. </div>
  381. </div></div>
  382. </div> <!-- /container -->
  383. </body>
  384. </html>