# HG changeset patch # User nishanth # Date 1271876768 -19800 # Node ID d424b9668a74f2f08440f21dbbde2f0ac8d560d6 # Parent 89d29b1c42b57778e169e81b3bee3fefa8f75048 implemented list toppers function diff -r 89d29b1c42b5 -r d424b9668a74 event/views.py --- a/event/views.py Wed Apr 21 21:58:16 2010 +0530 +++ b/event/views.py Thu Apr 22 00:36:08 2010 +0530 @@ -1,3 +1,4 @@ +from django.db.models import Sum from django.http import Http404 from django.shortcuts import render_to_response, redirect @@ -6,6 +7,7 @@ from offline.event.models import Event from offline.event.forms import EventCreateForm +from offline.quiz.models import Quiz from offline.quiz.utils import correct_quiz num2name = {"11" : "Day 1 Quiz 1", @@ -122,3 +124,26 @@ return render_to_response("close_quiz.html", {"admin_key":ADMIN_KEY, "quiz_name":num2name[quiz_num]}) +def list_toppers(request, admin_key, quiz_num): + """ check for admin key + Then check for quiz_num in ['11', ..] + then give appropriate response. + """ + + if not admin_key == ADMIN_KEY: + raise Http404 + + try: + event = Event.objects.all()[0] + except IndexError: + return redirect('/event/create/%s'%ADMIN_KEY) + + if quiz_num not in ["11", "12", "21"]: + raise Http404 + + quizzes = Quiz.objects.filter(event=event,quiz_num=quiz_num) + quizzes_with_scores = quizzes.annotate(score=Sum('que_answered__is_correct')) + sorted_quizzes = quizzes_with_scores.order_by("score").reverse() + + return render_to_response("list_toppers.html", {"sorted_quizzes":sorted_quizzes, "event":event, "quiz_name":num2name[quiz_num]}) + diff -r 89d29b1c42b5 -r d424b9668a74 templates/list_toppers.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/list_toppers.html Thu Apr 22 00:36:08 2010 +0530 @@ -0,0 +1,18 @@ +{% extends 'base.html' %} +{% block content %} +List of toppers for {{quiz_name}} of {{event.title}}
+
+ + + + + + + {% for quiz in sorted_quizzes %} + + + + + + {% endfor %} +{% endblock %} diff -r 89d29b1c42b5 -r d424b9668a74 urls.py --- a/urls.py Wed Apr 21 21:58:16 2010 +0530 +++ b/urls.py Thu Apr 22 00:36:08 2010 +0530 @@ -22,11 +22,13 @@ (r'^$', event_views.event_home), (r'^event/admin/(\w+)$', event_views.event_admin), (r'^event/create/(\w+)$', event_views.event_create), + (r'^feedback/submit$', feed_views.submit_feedback), (r'^feedback/open/(\w+)$', feed_views.open_feedback), (r'^feedback/close/(\w+)$', feed_views.close_feedback), (r'^feedback/list/(\w+)$', feed_views.list_feedbacks), (r'^feedback/report/(\w+)$', feed_views.view_report), + (r'^quiz/open/(\w+)$', event_views.open_quiz), (r'^quiz/close/(\w+)$', event_views.close_quiz), (r'^quiz$', quiz_views.start_page), @@ -34,4 +36,6 @@ (r'^quiz/start/$', quiz_views.start_quiz), (r'^quiz/answer/(\w+)$', quiz_views.answer), (r'^quiz/complete/$', quiz_views.quiz_complete), + + (r'^quiz/toppers/(\w+)/(\w+)$', event_views.list_toppers), )
Name Profession Score
{{quiz.user.get_full_name}}{{quiz.user.get_profile.profession}}{{quiz.score}}