7

Use timezone-aware dates and times in rules (#197)

* use timezone-aware dates and times re #196

* remove redundant newlines

* Fix flake8 linting errors in python 3.6
This commit is contained in:
aweakley
2019-01-25 02:27:34 +11:00
committed by Jasper Berghoef
parent 1e69d929aa
commit 956c1bf4f5
2 changed files with 7 additions and 5 deletions

View File

@ -196,8 +196,10 @@ class SessionSegmentsAdapter(BaseSegmentsAdapter):
for segment in enabled_segments:
if segment.is_static and segment.static_users.filter(id=self.request.user.id).exists():
additional_segments.append(segment)
elif (segment.excluded_users.filter(id=self.request.user.id).exists() or
segment in excluded_segments):
elif any((
segment.excluded_users.filter(id=self.request.user.id).exists(),
segment in excluded_segments
)):
continue
elif not segment.is_static or not segment.is_full:
segment_rules = []

View File

@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
import logging
import re
from datetime import datetime
from importlib import import_module
import pycountry
@ -13,6 +12,7 @@ from django.core.exceptions import ObjectDoesNotExist
from django.db import models
from django.template.defaultfilters import slugify
from django.test.client import RequestFactory
from django.utils import timezone
from django.utils.encoding import force_text, python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from modelcluster.fields import ParentalKey
@ -113,7 +113,7 @@ class TimeRule(AbstractBaseRule):
verbose_name = _('Time Rule')
def test_user(self, request=None):
return self.start_time <= datetime.now().time() <= self.end_time
return self.start_time <= timezone.now().time() <= self.end_time
def description(self):
return {
@ -157,7 +157,7 @@ class DayRule(AbstractBaseRule):
def test_user(self, request=None):
return [self.mon, self.tue, self.wed, self.thu,
self.fri, self.sat, self.sun][datetime.today().weekday()]
self.fri, self.sat, self.sun][timezone.now().date().weekday()]
def description(self):
days = (