From 9dd5d9c154c90f33629324224840fc621cedfb2d Mon Sep 17 00:00:00 2001 From: Keith Smith Date: Fri, 9 Jan 2026 08:32:38 -0700 Subject: [PATCH] Replace pytz with zoneinfo for timezone handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes ModuleNotFoundError by using Python's built-in zoneinfo module instead of the external pytz dependency. zoneinfo is the standard library solution for timezone handling in Python 3.9+. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- tasks/models.py | 6 +++--- tasks/views.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tasks/models.py b/tasks/models.py index a88425c..142d019 100644 --- a/tasks/models.py +++ b/tasks/models.py @@ -153,14 +153,14 @@ class Task(models.Model): """Check if task is overdue.""" if self.due_date and self.status not in ('completed', 'cancelled'): from django.utils import timezone - import pytz + from zoneinfo import ZoneInfo # Get current date in user's timezone try: - user_tz = pytz.timezone(self.user.timezone) + user_tz = ZoneInfo(self.user.timezone) user_now = timezone.now().astimezone(user_tz) user_today = user_now.date() - except (pytz.UnknownTimeZoneError, AttributeError): + except (Exception,): # Fall back to UTC if user timezone is invalid or missing user_today = timezone.now().date() diff --git a/tasks/views.py b/tasks/views.py index c7ed0cb..54af7dc 100644 --- a/tasks/views.py +++ b/tasks/views.py @@ -219,12 +219,12 @@ class DashboardView(View): return redirect('login') # Get today's date in user's timezone - import pytz + from zoneinfo import ZoneInfo try: - user_tz = pytz.timezone(request.user.timezone) + user_tz = ZoneInfo(request.user.timezone) user_now = timezone.now().astimezone(user_tz) today = user_now.date() - except (pytz.UnknownTimeZoneError, AttributeError): + except (Exception,): # Fall back to UTC if user timezone is invalid or missing today = timezone.now().date()