From a0ca3616ad50ecde9d7ab1be2cc07337e87c3f9f Mon Sep 17 00:00:00 2001 From: raylu Date: Fri, 13 May 2011 17:21:42 -0400 Subject: Store times in UTC, show times in PDT --- pyc/grader/models.py | 4 ++-- pyc/grader/views.py | 11 ++++++++++- 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', { -- cgit v1.2.3