idac: fix team daily and weekly reset

This commit is contained in:
Dniel97
2026-04-15 17:25:43 +02:00
parent e06c9d1e5c
commit 72c5a89a42
+11 -14
View File
@@ -257,22 +257,19 @@ class IDACSeason3TeamService:
now = datetime.now()
# create timestamp for today at 1am
this_day = now.replace(hour=1, minute=0, second=0, microsecond=0)
# create timestamp for today at 12am
start_of_today = now.replace(hour=0, minute=0, second=0, microsecond=0)
# check if this_day is greater than or equal to create_date_daily
if this_day >= team_member_ranking_dto.create_date_daily:
# reset the daily stamp
# if their last claim was before today started, reset it
if team_member_ranking_dto.create_date_daily < start_of_today:
team_member_ranking_dto.create_date_daily = now
daily_bonus = 0
# create a timestamp for this monday at 1am
this_monday = now - timedelta(days=now.weekday())
this_monday = this_monday.replace(hour=1, minute=0, second=0, microsecond=0)
# find the monday of the current week at 12am
start_of_this_monday = start_of_today - timedelta(days=start_of_today.weekday())
# check if this_monday is greater than or equal to create_date_weekly
if this_monday >= team_member_ranking_dto.create_date_weekly:
# reset the weekly stamp
# if their last claim was before this monday, reset it
if team_member_ranking_dto.create_date_weekly < start_of_this_monday:
team_member_ranking_dto.create_date_weekly = now
weekly_bonus = 0
@@ -659,12 +656,12 @@ class IDACSeason3TeamService:
before_user_ranking = member.ranking
break
# update daily and weekly bonus
if team_update.team_daily_bonus:
# update daily and weekly bonus if previously not received
if team_update.team_daily_bonus and not team_member_ranking.daily_bonus:
team_member_ranking.daily_bonus = team_update.team_daily_bonus
team_member_ranking.create_date_daily = datetime.now()
if team_update.team_weekly_bonus:
if team_update.team_weekly_bonus and not team_member_ranking.weekly_bonus:
team_member_ranking.weekly_bonus = team_update.team_weekly_bonus
team_member_ranking.create_date_weekly = datetime.now()