summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorraylu <raylu@cmu.edu>2011-05-13 02:34:10 -0400
committerraylu <raylu@cmu.edu>2011-05-13 02:34:10 -0400
commit9d2899d65c84b1582be5582e2819e4510499a24e (patch)
tree847f8742e94bf2dbc742569fc5a838807c47851c
parent659c4eb42719969e723a0277a2e035febb2fe3d1 (diff)
downloadpyc-9d2899d65c84b1582be5582e2819e4510499a24e.tar.xz
Delete old submission when evaluating new one
Ideally, we would keep the old one if it was better
-rw-r--r--pyc/grader/views.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/pyc/grader/views.py b/pyc/grader/views.py
index 5b0f2a3..7e36eef 100644
--- a/pyc/grader/views.py
+++ b/pyc/grader/views.py
@@ -11,8 +11,7 @@ def index(request):
def lab(request, lab_id):
lab = Lab.objects.get(pk=lab_id)
- #submissions = lab.submission_set.filter(user__is_staff=False).order_by('-grade', '-time')
- submissions = lab.submission_set.order_by('-grade', '-time')
+ submissions = lab.submission_set.filter(user__is_staff=False).order_by('-grade', '-time')
return render_to_response('lab.html', {
'lab' : lab,
'submissions' : submissions,
@@ -23,6 +22,9 @@ from django.contrib.auth.decorators import login_required
def submit(request, lab_id):
from django.http import HttpResponseRedirect
from django.db import IntegrityError
+ from django.conf import settings
+ import os
+
if request.method == 'POST':
form = SubmissionForm(request.POST, request.FILES)
if form.is_valid():
@@ -34,8 +36,10 @@ def submit(request, lab_id):
except IntegrityError:
# already exists
submission = Submission.objects.get(lab__exact=lab_id, user__exact=request.user)
+ if submission.file:
+ os.unlink(os.path.join(settings.MEDIA_ROOT, submission.file.name))
submission.file = rfile
- submission.save()
+ submission.save() # this moves the file to MEDIA_ROOT
score, err = grade(submission.file.name, lab_id)
try:
score = int(score)
@@ -44,6 +48,7 @@ def submit(request, lab_id):
if score > submission.grade:
submission.grade = score
submission.save()
+
return render_to_response('submit.html', {
'err' : err,
'score' : score,