/lenasys/0.1

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/0.1
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
1
<?php
2
//Quiz checking
3
4
if(isset($_POST['checkSelectedQuiz']) || isset($_POST['displayQuizAnswerDetails'])){
5
/*
6
 QuizVariant(
7
    qVarNr INTEGER,
8
    quizNr INTEGER,
9
    quizCourseName VARCHAR(200),
10
    correctAnswer VARCHAR(255),
11
    quizObjectIDs TEXT,
12
    PRIMARY KEY(qVarNr, quizNr, quizCourseName),
13
	
14
	AssignedQuizzes(
15
    ssn CHAR(11), 
16
    quizNr INTEGER,
17
    qVarNr INTEGER,
18
    quizCourseName VARCHAR(200),
19
	courseOccasion VARCHAR(25),
20
    answerHash VARCHAR(255), 
21
    answer TEXT,
22
	grade VARCHAR(10),
23
	gradeComment TEXT,
24
	answeredDateTime TIMESTAMP,
25
    userAgent VARCHAR(1024),
26
    userIP VARCHAR(20), 
27
    PRIMARY KEY(ssn, qVarNr, quizNr, quizCourseName, courseOccasion),
28
*/
29
	
30
	if(isset($_POST['clearAnswerHash'])){
31
		//Clear the answer hash (allows resubmitting of the quiz)
32
		$updateString = "UPDATE AssignedQuizzes 
33
						 SET AssignedQuizzes.answerHash=:AHASH
34
						 WHERE AssignedQuizzes.qVarNr=:QVNR
35
							AND AssignedQuizzes.quizNr=:QNR 
36
							AND AssignedQuizzes.quizCourseName=:CNAME
37
							AND AssignedQuizzes.courseOccasion=:COCCASION
38
							AND AssignedQuizzes.ssn=:SSN;";
39
		$updateStmt = $pdo->prepare($updateString);
40
		$hash=null;
41
		$updateStmt->bindParam(':AHASH', $hash);
42
		$updateStmt->bindParam(':QNR', $_POST['quizNr']);
43
		$updateStmt->bindParam(':QVNR', $_POST['qVarNr']);
44
		$updateStmt->bindParam(':CNAME', $_POST['courseName']);
45
		$updateStmt->bindParam(':COCCASION', $_POST['courseOccasion']);
46
		$updateStmt->bindParam(':SSN', $_POST['ssn']);
47
		$updateStmt->execute();
48
		if($updateStmt->execute()){
49
			$userMsg.="Hash cleared";
50
		} else {
51
			$errorMsg.="Error: Hash NOT cleared";
52
		}
53
		$updateStmt->closeCursor();
54
	}
55
	
56
	if(isset($_POST['checkAnswerHash'])){
57
		//Check if the answer hash matches login+answer md5-hash
58
		$generatedHash=md5($_POST['loginName'].$_POST['answer']);
59
		if(strcmp($generatedHash,$_POST['answerHash'])==0){
60
			$hashCompareMsg="Hash check OK";
61
		} else {
62
			$hashCompareMsg="Hash check FAILED";
63
		}
64
	}
65
	
66
	if(isset($_POST['saveGrade'])){
67
		//Store new grade
68
		$updateString = "UPDATE AssignedQuizzes 
69
						 SET AssignedQuizzes.grade=:GRADE
70
						 WHERE AssignedQuizzes.qVarNr=:QVNR
71
							AND AssignedQuizzes.quizNr=:QNR 
72
							AND AssignedQuizzes.quizCourseName=:CNAME
73
							AND AssignedQuizzes.courseOccasion=:COCCASION
74
							AND AssignedQuizzes.ssn=:SSN;";
75
		$updateStmt = $pdo->prepare($updateString);
76
		$updateStmt->bindParam(':GRADE', $_POST['grade']);
77
		$updateStmt->bindParam(':QNR', $_POST['quizNr']);
78
		$updateStmt->bindParam(':QVNR', $_POST['qVarNr']);
79
		$updateStmt->bindParam(':CNAME', $_POST['courseName']);
80
		$updateStmt->bindParam(':COCCASION', $_POST['courseOccasion']);
81
		$updateStmt->bindParam(':SSN', $_POST['ssn']);
82
		$updateStmt->execute();
83
		if($updateStmt->execute()){
84
			$userMsg.="Grade saved";
85
			$gradeSavedMsg="Saved";
86
			$gradeSavedForSSN=$_POST['ssn'];
87
		} else {
88
			$errorMsg.="ERROR: Failed to save new grade";
89
			$gradeSavedMsg="Error: Not saved";
90
		}
91
		$updateStmt->closeCursor();
92
	}
93
	
94
	if(isset($_POST['saveGradeComment'])){
95
		//Store new grade comment
96
		$updateString = "UPDATE AssignedQuizzes 
97
						 SET AssignedQuizzes.gradeComment=:GRADECOMMENT
98
						 WHERE AssignedQuizzes.qVarNr=:QVNR
99
							AND AssignedQuizzes.quizNr=:QNR 
100
							AND AssignedQuizzes.quizCourseName=:CNAME
101
							AND AssignedQuizzes.courseOccasion=:COCCASION
102
							AND AssignedQuizzes.ssn=:SSN;";
103
		$updateStmt = $pdo->prepare($updateString);
104
		$updateStmt->bindParam(':GRADECOMMENT', $_POST['gradeComment']);
105
		$updateStmt->bindParam(':QNR', $_POST['quizNr']);
106
		$updateStmt->bindParam(':QVNR', $_POST['qVarNr']);
107
		$updateStmt->bindParam(':CNAME', $_POST['courseName']);
108
		$updateStmt->bindParam(':COCCASION', $_POST['courseOccasion']);
109
		$updateStmt->bindParam(':SSN', $_POST['ssn']);
110
		$updateStmt->execute();
111
		if($updateStmt->execute()){
112
			$userMsg.="Grade comment saved";
113
			$gradeCommentSavedMsg="Saved";
114
		} else {
115
			$errorMsg.="ERROR: Failed to save new grade comment";
116
			$gradeCommentSavedMsg="Error: Not saved";
117
		}
118
		$updateStmt->closeCursor();
119
	}
120
	
121
	if(isset($_POST['displayQuizAnswerDetails'])){
122
		//Fetch data for specific quiz answer
123
		$queryString = "SELECT  Student.ssn, Student.loginName, Student.name, QuizVariant.correctAnswer, AssignedQuizzes.* 
124
						FROM QuizVariant, AssignedQuizzes, Student
125
						WHERE AssignedQuizzes.quizCourseName=QuizVariant.quizCourseName
126
							AND AssignedQuizzes.qVarNr=QuizVariant.qVarNr
127
							AND AssignedQuizzes.quizNr=QuizVariant.quizNr
128
							AND AssignedQuizzes.ssn=Student.ssn
129
							AND Student.ssn=:SSN
130
							AND AssignedQuizzes.quizCourseName=:CNAME
131
							AND AssignedQuizzes.quizNr=:QNR
132
							AND AssignedQuizzes.qVarNr=:QVNR
133
							AND AssignedQuizzes.courseOccasion=:COCCASION
134
						;";
135
						
136
		$stmt = $pdo->prepare($queryString);
137
		$stmt->bindParam(':SSN', $_POST['ssn']);
138
		$stmt->bindParam(':CNAME', $_POST['courseName']);
139
		$stmt->bindParam(':QNR', $_POST['quizNr']);
140
		$stmt->bindParam(':QVNR', $_POST['qVarNr']);
141
		$stmt->bindParam(':COCCASION', $_POST['courseOccasion']);
142
		$stmt->execute();
143
		$quizAnswerData=$stmt->fetch(PDO::FETCH_ASSOC);
144
		$content="quizChecking/quizAnswerDetails.html.php";
145
	} else {
146
147
		//Fetch all quiz assignments for selected quiz
148
		$queryString = "SELECT  Student.ssn, Student.loginName, Student.name, AssignedQuizzes.quizNr, AssignedQuizzes.qVarNr, QuizVariant.correctAnswer, AssignedQuizzes.answer, AssignedQuizzes.answerHash, AssignedQuizzes.grade, AssignedQuizzes.gradeComment, AssignedQuizzes.answeredDateTime, Quiz.quizURI 
149
						FROM QuizVariant, AssignedQuizzes, Student, Quiz
150
						WHERE AssignedQuizzes.quizCourseName=QuizVariant.quizCourseName
151
							AND AssignedQuizzes.qVarNr=QuizVariant.qVarNr
152
							AND AssignedQuizzes.quizNr=QuizVariant.quizNr
153
							AND AssignedQuizzes.ssn=Student.ssn
154
							AND AssignedQuizzes.quizCourseName=:CNAME
155
							AND AssignedQuizzes.quizNr=:QNR
156
							AND AssignedQuizzes.courseOccasion=:COCCASION
157
							AND AssignedQuizzes.quizNr=Quiz.nr
158
						ORDER BY Student.name COLLATE utf8_swedish_ci ASC
159
						;";
160
						
161
		$stmt = $pdo->prepare($queryString);
162
		$stmt->bindParam(':CNAME', $_POST['courseName']);
163
		$stmt->bindParam(':QNR', $_POST['quizNr']);
164
		$stmt->bindParam(':COCCASION', $_POST['courseOccasion']);
165
		$stmt->execute();
166
		$quizAssignmentsList=$stmt->fetchAll(PDO::FETCH_ASSOC);
167
		
168
		$content="quizChecking/listQuizAnswers.html.php";
169
	}
170
} else if(isset($_POST['listQuizzesForCourseOccasionSubmit'])){ //Course and course occasion selected
171
	//Fetch all quizzes for selected course
172
	$queryString = "SELECT Quiz.nr, Quiz.courseName, Quiz.opening, Quiz.closing, Quiz.autoCorrected
173
					FROM Quiz
174
					WHERE Quiz.courseName=:CNAME;";
175
	$stmt = $pdo->prepare($queryString);
176
	$stmt->bindParam(':CNAME', $_POST['courseName']);
177
	$stmt->execute();
178
	$quizList=$stmt->fetchAll(PDO::FETCH_ASSOC);
179
180
	$content="quizChecking/selectQuiz.html.php";
181
}else{ //Display list of courses
182
183
	//Fetch all courses from Course-table to populate course list
184
	$queryString = "SELECT * FROM Course";
185
	$stmt = $pdo->prepare($queryString);
186
	$stmt->execute();
187
	$courseList=$stmt->fetchAll(PDO::FETCH_ASSOC);
188
189
	$content="quizChecking/selectCourse.html.php";
190
191
}
192
?>