diff options
author | Prabhu Ramachandran | 2011-11-23 14:58:16 +0530 |
---|---|---|
committer | Prabhu Ramachandran | 2011-11-23 14:58:16 +0530 |
commit | 30f56443790841901f15b5ab435f97fba1c81d85 (patch) | |
tree | 006abd7932ca468661f5481e998c6a79f3058ecd /exam/management/commands/results2csv.py | |
parent | ba2097a382b581dacced5cb9bd70087396a054f0 (diff) | |
download | online_test-30f56443790841901f15b5ab435f97fba1c81d85.tar.gz online_test-30f56443790841901f15b5ab435f97fba1c81d85.tar.bz2 online_test-30f56443790841901f15b5ab435f97fba1c81d85.zip |
ENH: Cleanup and adding error/comments for answers
Adding error and marks field to each answer. Adding a new comment field
to the question paper and also a profile field for convenience.
Changing the views, templates and dump scripts to use the models rather
than Python code. This cleans things up a lot more. The user data
logged and printed is also way more comprehensive, paving the way for
easy online grading as well in the next phase of changes.
Diffstat (limited to 'exam/management/commands/results2csv.py')
-rw-r--r-- | exam/management/commands/results2csv.py | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/exam/management/commands/results2csv.py b/exam/management/commands/results2csv.py index f1da1a8..2993745 100644 --- a/exam/management/commands/results2csv.py +++ b/exam/management/commands/results2csv.py @@ -7,16 +7,22 @@ from django.core.management.base import BaseCommand from django.template import Template, Context # Local imports. -from exam.views import get_quiz_data -from exam.models import Quiz +from exam.models import Quiz, QuestionPaper result_template = Template('''\ -"name","username","rollno","email","answered","total","attempts","position","department","institute" -{% for paper in paper_list %}\ -"{{ paper.name }}","{{ paper.username }}","{{ paper.rollno }}",\ -"{{ paper.email }}","{{ paper.answered }}",{{ paper.total }},\ -{{ paper.attempts }},"{{ paper.position }}",\ -"{{ paper.department }}","{{ paper.institute }}" +"name","username","rollno","email","answered","total","attempts","position",\ +"department","institute" +{% for paper in papers %}\ +"{{ paper.user.get_full_name.title }}",\ +"{{ paper.user.username }}",\ +"{{ paper.profile.roll_number }}",\ +"{{ paper.user.email }}",\ +"{{ paper.get_answered_str }}",\ +{{ paper.get_total_marks }},\ +{{ paper.answers.count }},\ +"{{ paper.profile.position }}",\ +"{{ paper.profile.department }}",\ +"{{ paper.profile.institute }}" {% endfor %}\ ''') @@ -39,12 +45,13 @@ def results2csv(filename, stdout): else: quiz = qs[0] - paper_list = get_quiz_data(quiz.id) + papers = QuestionPaper.objects.filter(quiz=quiz, + user__profile__isnull=False) stdout.write("Saving results of %s to %s ... "%(quiz.description, basename(filename))) # Render the data and write it out. f = open(filename, 'w') - context = Context({'paper_list': paper_list}) + context = Context({'papers': papers}) f.write(result_template.render(context)) f.close() |