|
|
@@ -11,7 +11,8 @@ 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.filter(user__is_staff=False).order_by('-grade', '-time')
|
|
|
+ submissions = lab.submission_set.order_by('-grade', '-time')
|
|
|
return render_to_response('lab.html', {
|
|
|
'lab' : lab,
|
|
|
'submissions' : submissions,
|
|
|
@@ -27,21 +28,33 @@ def submit(request, lab_id):
|
|
|
if form.is_valid():
|
|
|
labobj = Lab.objects.get(pk=lab_id)
|
|
|
rfile = request.FILES['file']
|
|
|
- submission = Submission(lab=labobj, user=request.user, file=rfile)
|
|
|
+ submission = Submission(lab=labobj, user=request.user)
|
|
|
try:
|
|
|
submission.save()
|
|
|
except IntegrityError:
|
|
|
- pass
|
|
|
+ # already exists
|
|
|
+ submission = Submission.objects.get(lab__exact=lab_id, user__exact=request.user)
|
|
|
+ submission.file = rfile
|
|
|
+ submission.save()
|
|
|
score, err = grade(submission.file.name, lab_id)
|
|
|
+ try:
|
|
|
+ score = int(score)
|
|
|
+ except ValueError:
|
|
|
+ score = 0
|
|
|
+ if score > submission.grade:
|
|
|
+ submission.grade = score
|
|
|
+ submission.save()
|
|
|
return render_to_response('submit.html', {
|
|
|
'err' : err,
|
|
|
'score' : score,
|
|
|
'form' : form,
|
|
|
+ 'lab_id' : lab_id,
|
|
|
}, context_instance=RequestContext(request))
|
|
|
else:
|
|
|
form = SubmissionForm()
|
|
|
return render_to_response('submit.html', {
|
|
|
'form' : form,
|
|
|
+ 'lab_id' : lab_id,
|
|
|
}, context_instance=RequestContext(request))
|
|
|
|
|
|
def grade(file, id):
|