mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 11:23:48 -05:00
util for naive dt parsing
This commit is contained in:
@@ -21,6 +21,7 @@ from notifications_utils.recipients import (
|
||||
from notifications_utils.take import Take
|
||||
from notifications_utils.timezones import convert_utc_to_local_timezone
|
||||
|
||||
from app.utils.time import parse_naive_dt
|
||||
|
||||
def convert_to_boolean(value):
|
||||
if isinstance(value, str):
|
||||
@@ -75,19 +76,19 @@ def format_datetime_numeric(date):
|
||||
|
||||
|
||||
def format_date_numeric(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return convert_utc_to_local_timezone(date).strftime('%Y-%m-%d')
|
||||
|
||||
|
||||
def format_time_24h(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return convert_utc_to_local_timezone(date).strftime('%H:%M')
|
||||
|
||||
|
||||
def get_human_day(time, date_prefix=''):
|
||||
|
||||
# Add 1 minute to transform 00:00 into ‘midnight today’ instead of ‘midnight tomorrow’
|
||||
time = dateutil.parser.parse(time, ignoretz=True)
|
||||
time = parse_naive_dt(time)
|
||||
date = (convert_utc_to_local_timezone(time) - timedelta(minutes=1)).date()
|
||||
now = datetime.utcnow()
|
||||
|
||||
@@ -110,7 +111,7 @@ def get_human_day(time, date_prefix=''):
|
||||
|
||||
|
||||
def format_time(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return {
|
||||
'12:00AM': 'Midnight',
|
||||
'12:00PM': 'Noon'
|
||||
@@ -121,17 +122,17 @@ def format_time(date):
|
||||
|
||||
|
||||
def format_date(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return convert_utc_to_local_timezone(date).strftime('%A %d %B %Y')
|
||||
|
||||
|
||||
def format_date_normal(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return convert_utc_to_local_timezone(date).strftime('%d %B %Y').lstrip('0')
|
||||
|
||||
|
||||
def format_date_short(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return _format_datetime_short(convert_utc_to_local_timezone(date))
|
||||
|
||||
|
||||
@@ -147,7 +148,7 @@ def format_datetime_human(date, date_prefix=''):
|
||||
|
||||
|
||||
def format_day_of_week(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
return convert_utc_to_local_timezone(date).strftime('%A')
|
||||
|
||||
|
||||
@@ -164,7 +165,7 @@ def naturaltime_without_indefinite_article(date):
|
||||
|
||||
|
||||
def format_delta(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
delta = (
|
||||
datetime.now(timezone.utc)
|
||||
) - (
|
||||
@@ -178,7 +179,7 @@ def format_delta(date):
|
||||
|
||||
|
||||
def format_delta_days(date):
|
||||
date = dateutil.parser.parse(date, ignoretz=True)
|
||||
date = parse_naive_dt(date)
|
||||
now = datetime.now(timezone.utc)
|
||||
date = convert_utc_to_local_timezone(date).replace(tzinfo=pytz.utc)
|
||||
if date.strftime('%Y-%m-%d') == now.strftime('%Y-%m-%d'):
|
||||
|
||||
@@ -67,6 +67,7 @@ from app.main.forms import (
|
||||
from app.utils import DELIVERED_STATUSES, FAILURE_STATUSES, SENDING_STATUSES
|
||||
from app.utils.branding import NHS_EMAIL_BRANDING_ID
|
||||
from app.utils.branding import get_email_choices as get_email_branding_choices
|
||||
from app.utils.time import parse_naive_dt
|
||||
from app.utils.user import (
|
||||
user_has_permissions,
|
||||
user_is_gov_user,
|
||||
@@ -440,7 +441,7 @@ def get_service_verify_reply_to_address_partials(service_id, notification_id):
|
||||
is_default=is_default
|
||||
)
|
||||
seconds_since_sending = (
|
||||
datetime.utcnow() - dateutil.parser.parse(notification['created_at'], ignoretz=True)
|
||||
datetime.utcnow() - parse_naive_dt(notification['created_at'])
|
||||
).seconds
|
||||
if notification["status"] in FAILURE_STATUSES or (
|
||||
notification["status"] in SENDING_STATUSES and
|
||||
|
||||
@@ -18,6 +18,7 @@ from app.notify_client import InviteTokenError
|
||||
from app.notify_client.invite_api_client import invite_api_client
|
||||
from app.notify_client.org_invite_api_client import org_invite_api_client
|
||||
from app.notify_client.user_api_client import user_api_client
|
||||
from app.utils.time import parse_naive_dt
|
||||
from app.utils.user import is_gov_user
|
||||
from app.utils.user_permissions import (
|
||||
all_ui_permissions,
|
||||
@@ -127,8 +128,8 @@ class User(JSONModel, UserMixin):
|
||||
def password_changed_more_recently_than(self, datetime_string):
|
||||
if not self.password_changed_at:
|
||||
return False
|
||||
datetime_string = dateutil.parser.parse(datetime_string, ignoretz=True)
|
||||
changed = dateutil.parser.parse(self.password_changed_at, ignoretz=True)
|
||||
datetime_string = parse_naive_dt(datetime_string)
|
||||
changed = parse_naive_dt(self.password_changed_at)
|
||||
return convert_utc_to_local_timezone(
|
||||
changed
|
||||
) > convert_utc_to_local_timezone(
|
||||
|
||||
@@ -18,3 +18,7 @@ def is_less_than_days_ago(date_from_db, number_of_days):
|
||||
return (
|
||||
datetime.utcnow().astimezone(pytz.utc) - parser.parse(date_from_db)
|
||||
).days < number_of_days
|
||||
|
||||
|
||||
def parse_naive_dt(dt):
|
||||
return parser.parse(dt, ignoretz=True)
|
||||
|
||||
Reference in New Issue
Block a user