|
2 | 2 | import decimal |
3 | 3 | import logging |
4 | 4 | import warnings |
| 5 | +import zoneinfo |
5 | 6 | from datetime import datetime, timedelta |
6 | 7 |
|
7 | | -import pytz |
8 | 8 | import six |
9 | 9 | import tagulous |
10 | 10 | from auditlog.models import LogEntry |
|
97 | 97 |
|
98 | 98 | logger = logging.getLogger(__name__) |
99 | 99 |
|
100 | | -local_tz = pytz.timezone(get_system_setting("time_zone")) |
| 100 | +local_tz = zoneinfo.ZoneInfo(get_system_setting("time_zone")) |
101 | 101 |
|
102 | 102 | BOOLEAN_CHOICES = (("false", "No"), ("true", "Yes")) |
103 | 103 | EARLIEST_FINDING = None |
@@ -125,7 +125,7 @@ def vulnerability_id_filter(queryset, name, value): |
125 | 125 |
|
126 | 126 |
|
127 | 127 | def now(): |
128 | | - return local_tz.localize(datetime.today()) |
| 128 | + return datetime.today().replace(tzinfo=local_tz) |
129 | 129 |
|
130 | 130 |
|
131 | 131 | class NumberInFilter(filters.BaseInFilter, filters.NumberFilter): |
@@ -199,9 +199,8 @@ def __init__(self, *args, **kwargs): |
199 | 199 | def filter(self, qs, value): |
200 | 200 | earliest_finding = get_earliest_finding(qs) |
201 | 201 | if earliest_finding is not None: |
202 | | - start_date = local_tz.localize(datetime.combine( |
203 | | - earliest_finding.date, datetime.min.time()), |
204 | | - ) |
| 202 | + start_date = datetime.combine( |
| 203 | + earliest_finding.date, datetime.min.time()).replace(tzinfo=local_tz) |
205 | 204 | self.start_date = _truncate(start_date - timedelta(days=1)) |
206 | 205 | self.end_date = _truncate(now() + timedelta(days=1)) |
207 | 206 | try: |
@@ -818,26 +817,23 @@ class MetricsDateRangeFilter(ChoiceFilter): |
818 | 817 | def any(self, qs, name): |
819 | 818 | earliest_finding = get_earliest_finding(qs) |
820 | 819 | if earliest_finding is not None: |
821 | | - start_date = local_tz.localize(datetime.combine( |
822 | | - earliest_finding.date, datetime.min.time()), |
823 | | - ) |
| 820 | + start_date = datetime.combine( |
| 821 | + earliest_finding.date, datetime.min.time()).replace(tzinfo=local_tz) |
824 | 822 | self.start_date = _truncate(start_date - timedelta(days=1)) |
825 | 823 | self.end_date = _truncate(now() + timedelta(days=1)) |
826 | 824 | return qs.all() |
827 | 825 | return None |
828 | 826 |
|
829 | 827 | def current_month(self, qs, name): |
830 | | - self.start_date = local_tz.localize( |
831 | | - datetime(now().year, now().month, 1, 0, 0, 0)) |
| 828 | + self.start_date = datetime(now().year, now().month, 1, 0, 0, 0).replace(tzinfo=local_tz) |
832 | 829 | self.end_date = now() |
833 | 830 | return qs.filter(**{ |
834 | 831 | f"{name}__year": self.start_date.year, |
835 | 832 | f"{name}__month": self.start_date.month, |
836 | 833 | }) |
837 | 834 |
|
838 | 835 | def current_year(self, qs, name): |
839 | | - self.start_date = local_tz.localize( |
840 | | - datetime(now().year, 1, 1, 0, 0, 0)) |
| 836 | + self.start_date = datetime(now().year, 1, 1, 0, 0, 0).replace(tzinfo=local_tz) |
841 | 837 | self.end_date = now() |
842 | 838 | return qs.filter(**{ |
843 | 839 | f"{name}__year": now().year, |
@@ -887,9 +883,8 @@ def filter(self, qs, value): |
887 | 883 | return qs |
888 | 884 | earliest_finding = get_earliest_finding(qs) |
889 | 885 | if earliest_finding is not None: |
890 | | - start_date = local_tz.localize(datetime.combine( |
891 | | - earliest_finding.date, datetime.min.time()), |
892 | | - ) |
| 886 | + start_date = datetime.combine( |
| 887 | + earliest_finding.date, datetime.min.time()).replace(tzinfo=local_tz) |
893 | 888 | self.start_date = _truncate(start_date - timedelta(days=1)) |
894 | 889 | self.end_date = _truncate(now() + timedelta(days=1)) |
895 | 890 | try: |
|
0 commit comments