diff --git a/course/flow.py b/course/flow.py index 8827aab016e5d51ccf303645038e9e6444fbcaea..391726c6a6d044b0f5c1be363bd9b7989367a816 100644 --- a/course/flow.py +++ b/course/flow.py @@ -35,7 +35,7 @@ from django.utils.safestring import mark_safe from django import forms from django import http -from courseflow.utils import StyledForm +from courseflow.utils import StyledForm, local_now, as_local_time from crispy_forms.layout import Submit import re @@ -562,10 +562,9 @@ def reopen_session(session, force=False, suppress_log=False): session.max_points = None if not suppress_log: - from django.utils.timezone import now session.append_comment( "Session reopened at %s, previous completion time was '%s'." - % (now(), session.completion_time)) + % (local_now(), as_local_time(session.completion_time))) session.completion_time = None session.save() @@ -637,8 +636,7 @@ def regrade_session(repo, course, session): else: prev_completion_time = session.completion_time - from django.utils.timezone import now - session.append_comment("Session regraded at %s." % now()) + session.append_comment("Session regraded at %s." % local_now()) session.save() reopen_session(session, force=True, suppress_log=True) diff --git a/courseflow/utils.py b/courseflow/utils.py index ab3c7b23a282ac4cc7a96ed2cb7a38f1ff6159f9..45c58476b3202251d00065e387e90b30dd6e1bb2 100644 --- a/courseflow/utils.py +++ b/courseflow/utils.py @@ -58,6 +58,21 @@ def settings_context_processor(request): } +def as_local_time(datetime): + from django.conf import settings + from pytz import timezone + tz = timezone(settings.TIME_ZONE) + return datetime.astimezone(tz) + + +def local_now(): + from django.conf import settings + from pytz import timezone + tz = timezone(settings.TIME_ZONE) + from datetime import datetime + return tz.localize(datetime.now()) + + # {{{ dict_to_struct class Struct(object):