quiz/models.py
author nishanth
Tue, 29 Jun 2010 11:47:53 +0530
changeset 60 8ca2734bdc99
parent 59 0b57494e8b4e
child 64 ba80a1b3b187
permissions -rw-r--r--
modified the seed_que to suit the new design

from django.db import models
from django.contrib.auth.models import User

from offline.event.models import Event

TOPIC_CHOICES = (("11", "Plotting"),
                 ("12", "Lists and Files"),
                 ("13", "For Loops"),
                 ("14", "Strings"),
                 ("15", "Dictionaries and Piecharts"),
                 ("16", "Statistics"),
                 ("17", "Arrays and Matrices"),
                 ("18", "Solving linear equations"),
                 ("19", "Finding roots"),

                 ("21", "Basic Datatypes"),
                 ("22", "Input and Output"),
                 ("23", "Lists and Tuples"),
                 ("24", "Dictionaries"),
                 ("25", "Sets"),
                 ("26", "Conditional Statements"),
                 ("27", "Functions"),
                 )

class Profile(models.Model):
    """ A profile for quiz takers.
    """

    user = models.ForeignKey(User)
    profession = models.CharField(max_length=20,help_text="(Ex: Faculty, Student etc.)")
    affiliated_to = models.CharField(max_length=100, verbose_name="College/Company")

class QuestionBank(models.Model):
    """ A model for holding the database of questions.
    """

    quiz_num = models.CharField(max_length=2, default="00")
    topic = models.CharField(max_length=2,choices=TOPIC_CHOICES)

    description = models.TextField()
    code = models.TextField()
    options = models.TextField()
    time_limit = models.PositiveSmallIntegerField()
    expected_ans = models.TextField()

class Answer(models.Model):
    """ A model for holding answers submitted by users.
    """

    question = models.ForeignKey(QuestionBank, related_name="%(class)s")
    submitted_ans = models.TextField()
    is_correct = models.BooleanField(default=False)

class Quiz(models.Model):
    """ A model to hold the proceeding of a quiz.
    """

    user = models.ForeignKey(User)
    event = models.ForeignKey(Event, related_name="%(class)s")
    user_ip = models.CharField(max_length=15)
    key = models.CharField(max_length=10)
    
    quiz_num = models.CharField(max_length=2)
    que_remaining = models.CharField(max_length=100)
    que_answered = models.ManyToManyField(Answer, related_name="%(class)s")