From fae7d1ad12f3ca7fb9197fc24e3213e090482e7d Mon Sep 17 00:00:00 2001 From: transcental Date: Thu, 3 Jul 2025 22:01:27 +0100 Subject: [PATCH] timezones? pfft, what are those --- .../views/home/components/leaderboards.py | 26 +++++++------------ nephthys/views/home/helper.py | 2 +- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/nephthys/views/home/components/leaderboards.py b/nephthys/views/home/components/leaderboards.py index 0bdd7d2..d3872ce 100644 --- a/nephthys/views/home/components/leaderboards.py +++ b/nephthys/views/home/components/leaderboards.py @@ -1,13 +1,11 @@ from datetime import datetime from datetime import timedelta -import pytz - from nephthys.utils.env import env from prisma.enums import TicketStatus -async def get_leaderboard_view(tz=None): +async def get_leaderboard_view(): tickets = await env.db.ticket.find_many() or [] users_with_closed_tickets = await env.db.user.find_many( include={"closedTickets": True, "assignedTickets": True}, where={"helper": True} @@ -32,15 +30,11 @@ async def get_leaderboard_view(tz=None): else: overall_leaderboard_str = "\n".join(overall_leaderboard_lines) - # Use UTC as fallback if no timezone provided - if tz is None: - tz = pytz.UTC - - now = datetime.now(tz) + now = datetime.now() prev_day_start = now - timedelta(days=1) prev_day_total = len( - [t for t in tickets if prev_day_start < t.createdAt.replace(tzinfo=tz) < now] + [t for t in tickets if prev_day_start < t.createdAt.replace(tzinfo=None) < now] ) prev_day_only_closed = len( [ @@ -48,15 +42,15 @@ async def get_leaderboard_view(tz=None): for t in tickets if t.status == TicketStatus.CLOSED and t.closedAt - and prev_day_start < t.closedAt.replace(tzinfo=tz) < now - and prev_day_start < t.createdAt.replace(tzinfo=tz) < now + and prev_day_start < t.closedAt.replace(tzinfo=None) < now + and prev_day_start < t.createdAt.replace(tzinfo=None) < now ] ) prev_day_open = len( [ t for t in tickets - if prev_day_start < t.createdAt.replace(tzinfo=tz) < now + if prev_day_start < t.createdAt.replace(tzinfo=None) < now and t.status == TicketStatus.OPEN ] ) @@ -65,7 +59,7 @@ async def get_leaderboard_view(tz=None): t for t in tickets if t.assignedAt - and prev_day_start < t.assignedAt.replace(tzinfo=tz) < now + and prev_day_start < t.assignedAt.replace(tzinfo=None) < now and t.status == TicketStatus.IN_PROGRESS ] ) @@ -75,11 +69,11 @@ async def get_leaderboard_view(tz=None): for t in tickets if t.status == TicketStatus.CLOSED and t.closedAt - and prev_day_start < t.closedAt.replace(tzinfo=tz) < now + and prev_day_start < t.closedAt.replace(tzinfo=None) < now ] ) prev_day_leaderboard_lines = [ - f"{i + 1}. <@{user.slackId}> - {len([t for t in user.closedTickets or [] if prev_day_start < t.closedAt.replace(tzinfo=tz) < now])} closed, {len([t for t in user.assignedTickets or [] if prev_day_start < t.createdAt.replace(tzinfo=tz) < now and t.status != TicketStatus.CLOSED])} assigned" + f"{i + 1}. <@{user.slackId}> - {len([t for t in user.closedTickets or [] if prev_day_start < t.closedAt.replace(tzinfo=None) < now])} closed, {len([t for t in user.assignedTickets or [] if prev_day_start < t.createdAt.replace(tzinfo=None) < now and t.status != TicketStatus.CLOSED])} assigned" for i, user in enumerate( sorted( users_with_closed_tickets, @@ -87,7 +81,7 @@ async def get_leaderboard_view(tz=None): [ t for t in user.closedTickets or [] - if prev_day_start < t.closedAt.replace(tzinfo=tz) < now + if prev_day_start < t.closedAt.replace(tzinfo=None) < now ] ), reverse=True, diff --git a/nephthys/views/home/helper.py b/nephthys/views/home/helper.py index ecb830c..86086e4 100644 --- a/nephthys/views/home/helper.py +++ b/nephthys/views/home/helper.py @@ -18,7 +18,7 @@ async def get_helper_view(user: User): tz = pytz.timezone(tz_string) pie_chart = await get_ticket_status_pie_chart(user, tz) - leaderboard = await get_leaderboard_view(tz) + leaderboard = await get_leaderboard_view() btns = get_buttons(user, "dashboard")