summaryrefslogtreecommitdiff
path: root/yaksh/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/models.py')
-rw-r--r--yaksh/models.py31
1 files changed, 29 insertions, 2 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index 3e80570..77b5ec4 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -79,7 +79,8 @@ test_status = (
def get_assignment_dir(instance, filename):
return os.sep.join((
- instance.user.username, str(instance.assignmentQuestion.id), filename
+ instance.question_paper.quiz.description, instance.user.username,
+ str(instance.assignmentQuestion.id), filename
))
@@ -1308,11 +1309,35 @@ class AnswerPaper(models.Model):
.format(u.first_name, u.last_name, q.description)
-###############################################################################
+################################################################################
+class AssignmentUploadManager(models.Manager):
+
+ def get_assignments(self, qp, que_id=None, user_id=None):
+ if que_id and user_id:
+ assignment_files = AssignmentUpload.objects.filter(
+ assignmentQuestion_id=que_id, user_id=user_id,
+ question_paper=qp
+ )
+ file_name = User.objects.get(id=user_id).get_full_name()
+ else:
+ assignment_files = AssignmentUpload.objects.filter(
+ question_paper=qp
+ )
+
+ file_name = "{0}_Assignment_files".format(
+ assignment_files[0].question_paper.quiz.description
+ )
+
+ return assignment_files, file_name
+
+
+################################################################################
class AssignmentUpload(models.Model):
user = models.ForeignKey(User)
assignmentQuestion = models.ForeignKey(Question)
assignmentFile = models.FileField(upload_to=get_assignment_dir)
+ question_paper = models.ForeignKey(QuestionPaper, blank=True, null=True)
+ objects = AssignmentUploadManager()
###############################################################################
@@ -1375,7 +1400,9 @@ class HookTestCase(TestCase):
mark_fraction - Float, indicating fraction of the
weight to a test case
error - String, error message if success is false
+
In case of assignment upload there will be no user answer '''
+
success = False
err = "Incorrect Answer" # Please make this more specific
mark_fraction = 0.0