From cd0bfc7f9387230cd985483438bae11133202d59 Mon Sep 17 00:00:00 2001 From: Giulio Gratta Date: Wed, 15 Nov 2017 20:40:41 -0800 Subject: [PATCH] Makes comparison between TZ naive UTC dates - push to v0.1.9 --- freetextresponse/mixins.py | 30 +++++++++++++++--------------- package.json | 2 +- setup.py | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/freetextresponse/mixins.py b/freetextresponse/mixins.py index 1e10ab42..344c5edf 100644 --- a/freetextresponse/mixins.py +++ b/freetextresponse/mixins.py @@ -2,10 +2,6 @@ Mixins for the Free Text Response XBlock """ import datetime -import pytz -from django.conf import settings - -TIME_ZONE = pytz.timezone(getattr(settings, 'TIME_ZONE', pytz.utc.zone)) class EnforceDueDates(object): # pylint: disable=too-few-public-methods @@ -15,19 +11,23 @@ class EnforceDueDates(object): # pylint: disable=too-few-public-methods subsection in which they are placed """ - # These values are pulled from platform. - # They are defaulted to None for tests. - due = None - graceperiod = None - def is_past_due(self): """ Determine if component is past-due """ - now = datetime.datetime.utcnow().replace(tzinfo=TIME_ZONE) - if self.due is not None: - due_date = self.due - if self.graceperiod is not None: - due_date = due_date + self.graceperiod - return now > due_date + # These values are pulled from platform. + # They are defaulted to None for tests. + due = getattr(self, 'due', None) + graceperiod = getattr(self, 'graceperiod', None) + # Calculate the current DateTime so we can compare the due date to it. + # datetime.utcnow() returns timezone naive date object. + now = datetime.datetime.utcnow() + if due is not None: + # Remove timezone information from platform provided due date. + # Dates are stored as UTC timezone aware objects on platform. + due = due.replace(tzinfo=None) + if graceperiod is not None: + # Compare the datetime objects (both have to be timezone naive) + due = due + graceperiod + return now > due return False diff --git a/package.json b/package.json index ed366d3a..aa85a62b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "xblock-free-text-response", "title": "FreeTextResponse XBlock", "description": "Enables instructors to create questions with free-text responses.", - "version": "0.1.8", + "version": "0.1.9", "homepage": "https://github.com/Stanford-Online/xblock-free-text-response", "author": { "name": "Azim Pradhan", diff --git a/setup.py b/setup.py index f2c09629..29aa8c56 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ def run_tests(self): setup( name="xblock-free-text-response", - version="0.1.8", + version="0.1.9", description="Enables instructors to create questions with free-text responses.", license='AGPL-3.0', packages=[