remove old readme
[atutor.git] / mods / _standard / gradebook / verify_tests.php
1 <?php\r
2 /************************************************************************/\r
3 /* ATutor                                                                                                                               */\r
4 /************************************************************************/\r
5 /* Copyright (c) 2002-2010                                              */\r
6 /* Inclusive Design Institute                                           */\r
7 /* http://atutor.ca                                                                                                             */\r
8 /*                                                                                                                                              */\r
9 /* This program is free software. You can redistribute it and/or        */\r
10 /* modify it under the terms of the GNU General Public License          */\r
11 /* as published by the Free Software Foundation.                        */\r
12 /************************************************************************/\r
13 // $Id$\r
14 \r
15 $page = 'gradebook';\r
16 \r
17 define('AT_INCLUDE_PATH', '../../../include/');\r
18 require (AT_INCLUDE_PATH.'vitals.inc.php');\r
19 authenticate(AT_PRIV_ENROLLMENT);\r
20 require('lib/gradebook.inc.php');\r
21 \r
22 /************  GETTING INFO FROM CREATE/IMPORT CALLS  **********/\r
23 if (isset($_POST['cancel']) || !isset($_POST["gradebook_test_id"]) || !isset($_POST["test_id"])) \r
24 {\r
25         $msg->addFeedback('CANCELLED');\r
26         header('Location: update_gradebook.php');\r
27         exit;\r
28\r
29 else if (isset($_POST['combine']))\r
30 {\r
31         //Check if the "combine from test" has students taking it more than once\r
32         $no_error = true;\r
33         \r
34         $sql = "SELECT title FROM ".TABLE_PREFIX."tests WHERE test_id=".$_POST["test_id"];\r
35         $result = mysql_query($sql, $db) or die(mysql_error());\r
36         $row = mysql_fetch_assoc($result);\r
37 \r
38         $studs_take_num = get_studs_take_more_than_once($_SESSION["course_id"], $_POST["test_id"]);\r
39         \r
40         foreach ($studs_take_num as $member_id => $num)\r
41         {\r
42                 if ($no_error) $no_error = false;\r
43                 $error_msg .= get_display_name($member_id) . ": " . $num . " times<br>";\r
44         }\r
45                 \r
46         if (!$no_error)\r
47         {\r
48                 $error = array('COMBINE_TESTS',\r
49                                                 $row["title"], \r
50                                                 $error_msg);\r
51                 $msg->addError($error);\r
52         }\r
53         \r
54         if (!$msg->containsErrors()) \r
55         {\r
56                 $sql = "SELECT id, grade_scale_id FROM ".TABLE_PREFIX."gradebook_tests WHERE gradebook_test_id = ". $_POST["gradebook_test_id"];\r
57                 $result = mysql_query($sql, $db) or die(mysql_error());\r
58                 $row = mysql_fetch_assoc($result) or die(mysql_error());\r
59                 $grade_scale_id = $row["grade_scale_id"];\r
60 \r
61                 $sql = "SELECT m.first_name, m.last_name, m.email, e.member_id FROM ".TABLE_PREFIX."members m, ".TABLE_PREFIX."course_enrollment e WHERE m.member_id = e.member_id AND e.course_id=".$_SESSION["course_id"]." AND e.approved='y' AND e.role<>'Instructor' ORDER BY m.first_name,m.last_name";\r
62                 $result = mysql_query($sql, $db) or die(mysql_error());\r
63                 \r
64                 while ($row = mysql_fetch_assoc($result))\r
65                 {\r
66                         $grade = get_member_grade($_POST["test_id"], $row["member_id"], $grade_scale_id);\r
67                         \r
68                         if ($grade <> "")\r
69                                 $students[] = check_user_info(array('member_id' => $row["member_id"], 'fname' => $row["first_name"], 'lname' => $row["last_name"], 'email' => $row["email"], 'grade' => $grade, 'gradebook_test_id' => $_POST['gradebook_test_id']));\r
70                 }\r
71 \r
72                 if (count($students) == 0)\r
73                 {\r
74                         $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');\r
75                         header('Location: update_gradebook.php');\r
76                         exit;\r
77                 }\r
78                 \r
79         }\r
80         else\r
81         {\r
82                 header('Location: update_gradebook.php');\r
83                 exit;\r
84         } \r
85 }\r
86 \r
87 /*************  INFO GATHERED  **************/\r
88 \r
89 if ($_POST['verify']) {\r
90         for ($i=0; $i < $_POST['count']; $i++) \r
91         {\r
92                 $info = array('fname' => $_POST['fname'.$i], 'lname' => $_POST['lname'.$i], 'email' => $_POST['email'.$i], 'grade' => $_POST['grade'.$i], 'remove' => $_POST['remove'.$i], 'gradebook_test_id' => $_POST["gradebook_test_id"], 'solve_conflict' => $_POST["solve_conflict"]);\r
93                 $students[] = check_user_info($info);\r
94 \r
95                 if (!empty($students[$i]['error']))\r
96                         $still_errors = TRUE;\r
97         }\r
98 \r
99         /**************************************************************************/\r
100         // !!!!!!STEP 3 - INSERT INTO DB !!!!!!!\r
101         \r
102         if (!$still_errors && isset($_POST['update'])) \r
103         {\r
104                 update_gradebook_external_test($students, $_POST["gradebook_test_id"]);\r
105                 header('Location: update_gradebook.php');       \r
106                 exit;\r
107         }\r
108 }\r
109 \r
110 require(AT_INCLUDE_PATH.'header.inc.php');\r
111 // STEP 2 - INTERNAL VERIFICATION\r
112 if ($still_errors || !isset($_POST['verify']) || isset($_POST['resubmit'])) { \r
113 ?>\r
114 \r
115         <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">\r
116         <div class="input-form">\r
117                 <div class="row">\r
118                         <p><?php echo _AT('grade_info'); ?></p>\r
119                 </div>\r
120         </div>\r
121 \r
122         <input type="hidden" name="verify" value="1" />\r
123         <input type="hidden" name="gradebook_test_id" value="<?php echo $_POST["gradebook_test_id"]; ?>" />\r
124         <input type="hidden" name="test_id" value="<?php echo $_POST["test_id"]; ?>" />\r
125         <input type="hidden" name="solve_conflict" value="<?php echo $_POST["solve_conflict"]; ?>" />\r
126         <input type="hidden" name="count" value="<?php echo count($students); ?>" />\r
127                 \r
128         <table class="data static" summary="" rules="cols">\r
129         <thead>\r
130         <tr>\r
131                 <th scope="col"><?php echo _AT('status');     ?></th>\r
132                 <th scope="col"><?php echo _AT('first_name'); ?></th>\r
133                 <th scope="col"><?php echo _AT('last_name');  ?></th>\r
134                 <th scope="col"><?php echo _AT('email');      ?></th>\r
135                 <th scope="col"><?php echo _AT('grade'); ?></th>\r
136                 <th scope="col"><?php echo _AT('remove');     ?></th>\r
137         </tr>\r
138         </thead>\r
139 <?php\r
140 \r
141         $err_count = 0;\r
142         $i=0;\r
143 \r
144         if (is_array($students)) {\r
145                 echo '  <tbody>'."\n\r";\r
146                 foreach ($students as $student) {\r
147 \r
148                         if (!empty($student['conflict']))\r
149                                 $has_conflict = TRUE;\r
150         \r
151                         echo '          <tr>'."\n\r";\r
152                         echo '                  <td>'."\n\r";\r
153 \r
154                         //give status\r
155                         if(!empty($student['error'])) {\r
156                                 echo '<span style="color: red;">'.$student['error'];\r
157                         }\r
158 \r
159                         if (empty($student['error'])) \r
160                         {\r
161                                 if ($student['remove'])\r
162                                         echo '<span style="color: purple;">'._AT('removed');\r
163                                 else \r
164                                         echo '<span style="color: green;">'._AT('ok');                                                          \r
165                         } \r
166                         else \r
167                                 $err_count++;\r
168 \r
169                         echo '</span></td>'."\n\r";\r
170 \r
171                         echo '                  <td>'.$student['fname'].'</td>'."\n\r";\r
172                         echo '                  <td>'.$student['lname'].'</td>'."\n\r";\r
173                         echo '                  <td>'.$student['email'].'</td>'."\n\r";\r
174                         echo '                  <td><input type="text" name="grade'.$i.'" value="'.$student['grade'].'" /></td>'."\n\r";\r
175                         echo '                  <td><input type="checkbox" ';                                   \r
176                         echo ($student['remove'] ? 'checked="checked" value="on"' : '');                                          \r
177                         echo 'name="remove'.$i.'" /></td>'."\n\r";\r
178 \r
179                         echo '                  <input type="hidden" name="fname'.$i.'" value="'.$student['fname'].'" />'."\n\r";\r
180                         echo '                  <input type="hidden" name="lname'.$i.'" value="'.$student['lname'].'" />'."\n\r";\r
181                         echo '                  <input type="hidden" name="email'.$i.'" value="'.$student['email'].'" />'."\n\r";\r
182 \r
183                         $i++;\r
184                         echo '          </tr>'."\n\r";\r
185                 }\r
186                 echo '  </tbody>'."\n\r";\r
187         }\r
188 \r
189         $dsbld = '';\r
190         if ($still_errors || $err_count>0) {\r
191                 $dsbld = 'disabled="disabled"';\r
192         } \r
193 ?>\r
194 \r
195         <tfoot>\r
196         <tr>\r
197                 <td colspan="6">\r
198                         <input type="submit" name="resubmit" value="<?php echo _AT('resubmit'); ?>" />\r
199                         <input type="submit" name="update" value="<?php echo _AT('update'); ?>" <?php echo $dsbld; ?> />\r
200 <?php\r
201 if ($has_conflict)\r
202 {\r
203 ?>\r
204                         <span style="padding:0px 10px">|</span> \r
205                         \r
206                         <select name="solve_conflict">\r
207                                 <option value="0"><?php echo _AT('how_to_solve_conflict'); ?></option>\r
208                                         <option value="<?php echo USE_HIGHER_GRADE; ?>"><?php echo _AT('use_higher_grade'); ?></option>\r
209                                         <option value="<?php echo USE_LOWER_GRADE; ?>"><?php echo _AT('use_lower_grade'); ?></option>   \r
210                                         <option value="<?php echo NOT_OVERWRITE; ?>"><?php echo _AT('not_overwrite'); ?></option>\r
211                                         <option value="<?php echo OVERWRITE; ?>"><?php echo _AT('overwrite'); ?></option>                               \r
212                         </select>\r
213 <?php\r
214 }\r
215 ?>\r
216                 </td>\r
217         </tr>\r
218         </tfoot>\r
219 \r
220         </table>\r
221         </form><?php\r
222 }\r
223 \r
224 require(AT_INCLUDE_PATH.'footer.inc.php');\r
225 ?>