fix scheduled jobs time

This commit is contained in:
Kenneth Kehl
2023-11-30 14:41:44 -08:00
parent fc00273b31
commit 50ccd994d0
3 changed files with 36 additions and 2 deletions

View File

@@ -1,5 +1,9 @@
import datetime
from zoneinfo import ZoneInfo
from app.extensions import redis_client
from app.notify_client import NotifyAdminAPIClient, _attach_current_user, cache
from app.utils.csv import get_user_preferred_timezone
class JobApiClient(NotifyAdminAPIClient):
@@ -86,10 +90,26 @@ class JobApiClient(NotifyAdminAPIClient):
def has_jobs(self, service_id):
return bool(self.get_jobs(service_id)["data"])
@classmethod
def convert_user_time_to_utc(cls, scheduled_for):
user_preferred_tz = get_user_preferred_timezone()
user_date = datetime.datetime.fromisoformat(scheduled_for)
scheduled_for = (
user_date.replace(tzinfo=ZoneInfo(user_preferred_tz))
.astimezone(ZoneInfo("UTC"))
.strftime("%Y-%m-%dT%H:%M:%S")
)
return scheduled_for
def create_job(self, job_id, service_id, scheduled_for=None):
data = {"id": job_id}
# make a datetime object in the user's preferred timezone
if scheduled_for:
scheduled_for = self.convert_user_time_to_utc(scheduled_for)
data.update({"scheduled_for": scheduled_for})
data = _attach_current_user(data)

View File

@@ -22,3 +22,9 @@ def is_less_than_days_ago(date_from_db, number_of_days):
def parse_naive_dt(dt):
return parser.parse(dt, ignoretz=True)
def hilite(message):
ansi_green = "\033[32m"
ansi_reset = "\033[0m"
return f"{ansi_green}{message}{ansi_reset}"