Post-processes statuses composed in modals

This commit is contained in:
Mouse Reeve
2021-09-30 10:00:05 -07:00
parent 009a1fe4fd
commit 75e69eb269
4 changed files with 65 additions and 69 deletions

View File

@ -1,5 +1,10 @@
""" helper functions used in various views """
import re
from datetime import datetime
import dateutil.parser
import dateutil.tz
from dateutil.parser import ParserError
from requests import HTTPError
from django.core.exceptions import FieldError
from django.db.models import Q
@ -178,3 +183,15 @@ def get_landing_books():
.order_by("-review__published_date")[:6]
)
)
def load_date_in_user_tz_as_utc(date_str: str, user: models.User) -> datetime:
"""ensures that data is stored consistently in the UTC timezone"""
if not date_str:
return None
user_tz = dateutil.tz.gettz(user.preferred_timezone)
date = dateutil.parser.parse(date_str, ignoretz=True)
try:
return date.replace(tzinfo=user_tz).astimezone(dateutil.tz.UTC)
except ParserError:
return None