summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyc/grader/models.py4
-rw-r--r--pyc/grader/views.py11
2 files changed, 12 insertions, 3 deletions
diff --git a/pyc/grader/models.py b/pyc/grader/models.py
index e11f371..b8d0c55 100644
--- a/pyc/grader/models.py
+++ b/pyc/grader/models.py
@@ -13,10 +13,10 @@ class Submission(models.Model):
return "s%d_%d_%d.py" % (instance.lab.id, instance.user.id, int(time()))
lab = models.ForeignKey(Lab)
user = models.ForeignKey(User)
- time = models.DateTimeField(auto_now_add=True)
+ time = models.DateTimeField()
file = models.FileField(upload_to=upload_filename)
grade = models.IntegerField(null=True)
class Meta:
unique_together = (('lab', 'user'),)
def __unicode__(self):
- return "%d, %s" % (self.lab.id, self.user)
+ return "%d, %s, %d" % (self.lab.id, self.user, self.grade)
diff --git a/pyc/grader/views.py b/pyc/grader/views.py
index 479dc63..3fa7ecf 100644
--- a/pyc/grader/views.py
+++ b/pyc/grader/views.py
@@ -13,8 +13,15 @@ def password_changed(request):
return render_to_response('password_changed.html')
def lab(request, lab_id):
+ from datetime import timedelta
lab = Lab.objects.get(pk=lab_id)
submissions = lab.submission_set.filter(user__is_staff=False).order_by('-grade', '-time')
+
+ # times are stored in UTC; do the conversion here
+ tzoffset = timedelta(0, 0, 0, 0, 0, -7) # -7 hours
+ for s in submissions:
+ s.time += tzoffset
+
return render_to_response('lab.html', {
'lab' : lab,
'submissions' : submissions,
@@ -27,13 +34,14 @@ def submit(request, lab_id):
from django.db import IntegrityError
from django.conf import settings
import os
+ from datetime import datetime
if request.method == 'POST':
form = SubmissionForm(request.POST, request.FILES)
if form.is_valid():
labobj = Lab.objects.get(pk=lab_id)
rfile = request.FILES['file']
- submission = Submission(lab=labobj, user=request.user)
+ submission = Submission(lab=labobj, user=request.user, time=datetime.utcnow())
try:
submission.save()
except IntegrityError:
@@ -50,6 +58,7 @@ def submit(request, lab_id):
score = 0
if score > submission.grade:
submission.grade = score
+ submission.time = datetime.utcnow()
submission.save()
return render_to_response('submit.html', {