diff options
-rw-r--r-- | pyc/grader/models.py | 8 | ||||
-rw-r--r-- | pyc/grader/views.py | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/pyc/grader/models.py b/pyc/grader/models.py index bf92598..ba19e03 100644 --- a/pyc/grader/models.py +++ b/pyc/grader/models.py @@ -8,10 +8,14 @@ class Lab(models.Model): class Submission(models.Model): from django.contrib.auth.models import User + def upload_filename(instance, filename): + from time import time + return "%d-%d.%d" % (instance.lab.id, instance.user.id, int(time())) lab = models.ForeignKey(Lab) user = models.ForeignKey(User) - time = models.DateTimeField() - grade = models.IntegerField() + time = models.DateTimeField(auto_now_add=True) + file = models.FileField(upload_to=upload_filename) + grade = models.IntegerField(null=True) class Meta: unique_together = (('lab', 'user'),) def __unicode__(self): diff --git a/pyc/grader/views.py b/pyc/grader/views.py index 21ea22f..4f81309 100644 --- a/pyc/grader/views.py +++ b/pyc/grader/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render_to_response from django.template import RequestContext -from grader.models import Lab +from grader.models import Lab, Submission def index(request): return render_to_response('index.html', { @@ -24,7 +24,11 @@ def submit(request, lab_id): if request.method == 'POST': form = SubmissionForm(request.POST, request.FILES) if form.is_valid(): - return HttpResponseRedirect('/user/1/') + labobj = Lab.objects.get(pk=lab_id) + rfile = request.FILES['file'] + submission = Submission(lab=labobj, user=request.user, file=rfile) + submission.save() + return HttpResponseRedirect("/lab/%s/" % lab_id) else: form = SubmissionForm() return render_to_response('submit.html', { |