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: for segment in enabled_segments:
if segment.is_static and segment.static_users.filter(id=self.request.user.id).exists(): if segment.is_static and segment.static_users.filter(id=self.request.user.id).exists():
additional_segments.append(segment) additional_segments.append(segment)
elif (segment.excluded_users.filter(id=self.request.user.id).exists() or elif any((
segment in excluded_segments): segment.excluded_users.filter(id=self.request.user.id).exists(),
segment in excluded_segments
)):
continue continue
elif not segment.is_static or not segment.is_full: elif not segment.is_static or not segment.is_full:
segment_rules = [] segment_rules = []

View File

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