From 8d5faa8a6ef0464d0986449feadc9900ea3d1838 Mon Sep 17 00:00:00 2001 From: Keith Smith Date: Fri, 9 Jan 2026 08:30:52 -0700 Subject: [PATCH] Add error handling for timezone conversion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes 500 error when user timezone is invalid or missing. Now gracefully falls back to UTC if timezone conversion fails. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- tasks/models.py | 10 +++++++--- tasks/views.py | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tasks/models.py b/tasks/models.py index 66e0b0a..a88425c 100644 --- a/tasks/models.py +++ b/tasks/models.py @@ -156,9 +156,13 @@ class Task(models.Model): import pytz # Get current date in user's timezone - user_tz = pytz.timezone(self.user.timezone) - user_now = timezone.now().astimezone(user_tz) - user_today = user_now.date() + try: + user_tz = pytz.timezone(self.user.timezone) + user_now = timezone.now().astimezone(user_tz) + user_today = user_now.date() + except (pytz.UnknownTimeZoneError, AttributeError): + # Fall back to UTC if user timezone is invalid or missing + user_today = timezone.now().date() return self.due_date < user_today return False diff --git a/tasks/views.py b/tasks/views.py index a8ba166..c7ed0cb 100644 --- a/tasks/views.py +++ b/tasks/views.py @@ -220,9 +220,13 @@ class DashboardView(View): # Get today's date in user's timezone import pytz - user_tz = pytz.timezone(request.user.timezone) - user_now = timezone.now().astimezone(user_tz) - today = user_now.date() + try: + user_tz = pytz.timezone(request.user.timezone) + user_now = timezone.now().astimezone(user_tz) + today = user_now.date() + except (pytz.UnknownTimeZoneError, AttributeError): + # Fall back to UTC if user timezone is invalid or missing + today = timezone.now().date() # Get filter parameters current_filter = request.GET.get('filter', 'all')