143 |
143 |
144 quizzes = Quiz.objects.filter(event=event,quiz_num=quiz_num) |
144 quizzes = Quiz.objects.filter(event=event,quiz_num=quiz_num) |
145 quizzes_with_scores = quizzes.annotate(score=Sum('que_answered__is_correct')) |
145 quizzes_with_scores = quizzes.annotate(score=Sum('que_answered__is_correct')) |
146 sorted_quizzes = quizzes_with_scores.order_by("score").reverse() |
146 sorted_quizzes = quizzes_with_scores.order_by("score").reverse() |
147 |
147 |
148 return render_to_response("list_toppers.html", {"sorted_quizzes":sorted_quizzes, "event":event, "quiz_name":num2name[quiz_num]}) |
148 return render_to_response("list_toppers.html", {"sorted_quizzes":sorted_quizzes,"admin_key":ADMIN_KEY, "event":event, "quiz_name":num2name[quiz_num]}) |
149 |
149 |
|
150 def user_dump(request, admin_key, quiz_key, user_name): |
|
151 """ check for admin_key |
|
152 then get quiz by quiz_key and user_name. |
|
153 then display the dump |
|
154 """ |
|
155 |
|
156 if not admin_key == ADMIN_KEY: |
|
157 raise Http404 |
|
158 |
|
159 try: |
|
160 event = Event.objects.all()[0] |
|
161 except IndexError: |
|
162 return redirect('/event/create/%s'%ADMIN_KEY) |
|
163 try: |
|
164 quiz = Quiz.objects.get(event=event, key=quiz_key) |
|
165 except Quiz.DoesNotExist: |
|
166 raise Http404 |
|
167 |
|
168 if not quiz.user.username == user_name: |
|
169 raise Http404 |
|
170 |
|
171 quiz_name = num2name[quiz.quiz_num] |
|
172 if request.method == "POST": |
|
173 for ans in quiz.que_answered.all(): |
|
174 ans.is_correct = True if str(ans.question.id) in request.POST else False |
|
175 ans.save() |
|
176 return redirect("/quiz/toppers/%s/%s"%(ADMIN_KEY, quiz.quiz_num)) |
|
177 else: |
|
178 return render_to_response("user_dump.html", {"quiz":quiz, "quiz_name":quiz_name}) |
|
179 |