equal
deleted
inserted
replaced
|
1 from django.db.models import Sum |
1 from django.http import Http404 |
2 from django.http import Http404 |
2 from django.shortcuts import render_to_response, redirect |
3 from django.shortcuts import render_to_response, redirect |
3 |
4 |
4 from offline.settings import ADMIN_KEY |
5 from offline.settings import ADMIN_KEY |
5 |
6 |
6 from offline.event.models import Event |
7 from offline.event.models import Event |
7 from offline.event.forms import EventCreateForm |
8 from offline.event.forms import EventCreateForm |
8 |
9 |
|
10 from offline.quiz.models import Quiz |
9 from offline.quiz.utils import correct_quiz |
11 from offline.quiz.utils import correct_quiz |
10 |
12 |
11 num2name = {"11" : "Day 1 Quiz 1", |
13 num2name = {"11" : "Day 1 Quiz 1", |
12 "12" : "Day 1 Quiz 2", |
14 "12" : "Day 1 Quiz 2", |
13 "21" : "Day 2 Quiz 1", |
15 "21" : "Day 2 Quiz 1", |
120 for quiz in event_quizzes: |
122 for quiz in event_quizzes: |
121 correct_quiz(quiz) |
123 correct_quiz(quiz) |
122 |
124 |
123 return render_to_response("close_quiz.html", {"admin_key":ADMIN_KEY, "quiz_name":num2name[quiz_num]}) |
125 return render_to_response("close_quiz.html", {"admin_key":ADMIN_KEY, "quiz_name":num2name[quiz_num]}) |
124 |
126 |
|
127 def list_toppers(request, admin_key, quiz_num): |
|
128 """ check for admin key |
|
129 Then check for quiz_num in ['11', ..] |
|
130 then give appropriate response. |
|
131 """ |
|
132 |
|
133 if not admin_key == ADMIN_KEY: |
|
134 raise Http404 |
|
135 |
|
136 try: |
|
137 event = Event.objects.all()[0] |
|
138 except IndexError: |
|
139 return redirect('/event/create/%s'%ADMIN_KEY) |
|
140 |
|
141 if quiz_num not in ["11", "12", "21"]: |
|
142 raise Http404 |
|
143 |
|
144 quizzes = Quiz.objects.filter(event=event,quiz_num=quiz_num) |
|
145 quizzes_with_scores = quizzes.annotate(score=Sum('que_answered__is_correct')) |
|
146 sorted_quizzes = quizzes_with_scores.order_by("score").reverse() |
|
147 |
|
148 return render_to_response("list_toppers.html", {"sorted_quizzes":sorted_quizzes, "event":event, "quiz_name":num2name[quiz_num]}) |
|
149 |