quiz/utils.py
author nishanth
Tue, 06 Jul 2010 23:31:33 +0530
changeset 89 f8e25dea5222
parent 50 0842b3439c3e
permissions -rw-r--r--
updated timing for each question. increased timing actually
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
81cd0140a0f2 created the register user functionality.
nishanth
parents:
diff changeset
     1
import string
81cd0140a0f2 created the register user functionality.
nishanth
parents:
diff changeset
     2
import random
39
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
     3
import re
12
81cd0140a0f2 created the register user functionality.
nishanth
parents:
diff changeset
     4
81cd0140a0f2 created the register user functionality.
nishanth
parents:
diff changeset
     5
def gen_key(no_of_chars):
81cd0140a0f2 created the register user functionality.
nishanth
parents:
diff changeset
     6
    allowed_chars = string.digits+string.uppercase
81cd0140a0f2 created the register user functionality.
nishanth
parents:
diff changeset
     7
    return ''.join([random.choice(allowed_chars) for i in range(no_of_chars)])
39
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
     8
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
     9
def correct_quiz(quiz):
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    10
    """ read each submitted answer and update the is_correct variable.
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    11
    """
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    12
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    13
    for answer in quiz.que_answered.all():
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    14
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    15
        expected_ans = answer.question.expected_ans
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    16
50
0842b3439c3e implemented extra filter on string patterns. now string patterns will not be split like other pattersns
nishanth
parents: 40
diff changeset
    17
        ans_regex_patterns = []
0842b3439c3e implemented extra filter on string patterns. now string patterns will not be split like other pattersns
nishanth
parents: 40
diff changeset
    18
        for ans_pattern in expected_ans.split("\n"):
0842b3439c3e implemented extra filter on string patterns. now string patterns will not be split like other pattersns
nishanth
parents: 40
diff changeset
    19
            ans_regex_patterns.append( r"\s*".join(ans_pattern.split()) if not re.match(r"""^[",']""", ans_pattern) else ans_pattern )
0842b3439c3e implemented extra filter on string patterns. now string patterns will not be split like other pattersns
nishanth
parents: 40
diff changeset
    20
39
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    21
        for pattern in ans_regex_patterns:
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    22
            if re.findall(pattern, answer.submitted_ans):
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    23
                answer.is_correct = True
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    24
                answer.save()
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    25
                break
0fa055b8ea98 implemented correct_quiz function and added it at the time of closing quiz and modified question bank
nishanth
parents: 12
diff changeset
    26