diff options
author | ankitjavalkar | 2016-03-04 21:54:59 +0530 |
---|---|---|
committer | ankitjavalkar | 2016-05-05 18:57:52 +0530 |
commit | ceb4f2cbc1a03835a3c7e34d806ec21e47e3f059 (patch) | |
tree | de58fcf13fb19308149021e82b3891936b2361db | |
parent | 3b56d8259d6aa8311f86e0561e40d0b17bc62534 (diff) | |
download | online_test-ceb4f2cbc1a03835a3c7e34d806ec21e47e3f059.tar.gz online_test-ceb4f2cbc1a03835a3c7e34d806ec21e47e3f059.tar.bz2 online_test-ceb4f2cbc1a03835a3c7e34d806ec21e47e3f059.zip |
add test case selection
-rw-r--r-- | yaksh/forms.py | 6 | ||||
-rw-r--r-- | yaksh/models.py | 39 |
2 files changed, 29 insertions, 16 deletions
diff --git a/yaksh/forms.py b/yaksh/forms.py index 0eed8eb..5c8dafa 100644 --- a/yaksh/forms.py +++ b/yaksh/forms.py @@ -28,6 +28,12 @@ question_types = ( ("upload", "Assignment Upload"), ) +test_case_types = ( + ("assert_based", "Assertion Based Testcase"), + # ("argument_based", "Multiple Correct Choices"), + # ("stdout_based", "Code"), + ) + UNAME_CHARS = letters + "._" + digits PWD_CHARS = letters + punctuation + digits diff --git a/yaksh/models.py b/yaksh/models.py index 6e59d7a..c4f3561 100644 --- a/yaksh/models.py +++ b/yaksh/models.py @@ -8,21 +8,6 @@ from django.contrib.auth.models import User from taggit.managers import TaggableManager -############################################################################### -class ConcurrentUser(models.Model): - concurrent_user = models.OneToOneField(User, null=False) - session_key = models.CharField(null=False, max_length=40) - - -############################################################################### -class Profile(models.Model): - """Profile for a user to store roll number and other details.""" - user = models.OneToOneField(User) - roll_number = models.CharField(max_length=20) - institute = models.CharField(max_length=128) - department = models.CharField(max_length=64) - position = models.CharField(max_length=64) - languages = ( ("python", "Python"), ("bash", "Bash"), @@ -45,6 +30,12 @@ enrollment_methods = ( ("open", "Open Course"), ) +test_case_types = ( + ("assert_based", "Assertion Based Testcase"), + # ("argument_based", "Multiple Correct Choices"), + # ("stdout_based", "Code"), + ) + attempts = [(i, i) for i in range(1, 6)] attempts.append((-1, 'Infinite')) days_between_attempts = ((j, j) for j in range(401)) @@ -54,7 +45,6 @@ test_status = ( ('completed', 'Completed'), ) - def get_assignment_dir(instance, filename): return '%s/%s' % (instance.user.roll_number, instance.assignmentQuestion.id) @@ -132,6 +122,21 @@ class Course(models.Model): def __unicode__(self): return self.name +############################################################################### +class ConcurrentUser(models.Model): + concurrent_user = models.OneToOneField(User, null=False) + session_key = models.CharField(null=False, max_length=40) + + +############################################################################### +class Profile(models.Model): + """Profile for a user to store roll number and other details.""" + user = models.OneToOneField(User) + roll_number = models.CharField(max_length=20) + institute = models.CharField(max_length=128) + department = models.CharField(max_length=64) + position = models.CharField(max_length=64) + ############################################################################### class Question(models.Model): @@ -163,6 +168,8 @@ class Question(models.Model): # The type of question. type = models.CharField(max_length=24, choices=question_types) + # The type of evaluator + test_case_type = models.CharField(max_length=24, choices=test_case_types) # Is this question active or not. If it is inactive it will not be used # when creating a QuestionPaper. active = models.BooleanField(default=True) |