From b46b77d20cb9141d9fb9ca99aa90063c94d72508 Mon Sep 17 00:00:00 2001 From: DevilXD <4180725+DevilXD@users.noreply.github.com> Date: Sun, 2 Mar 2025 10:26:12 +0100 Subject: [PATCH] Fix inventory view display issues with campaigns having both timed and sub-based drops --- gui.py | 10 +++++++--- inventory.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gui.py b/gui.py index 19cab07..5d427ce 100644 --- a/gui.py +++ b/gui.py @@ -1503,9 +1503,13 @@ class InventoryOverview: time=drop.ends_at.astimezone().replace(microsecond=0, tzinfo=None) ) else: - progress_text = _("gui", "inventory", "minutes_progress").format( - minutes=drop.required_minutes - ) + if drop.required_minutes > 0: + progress_text = _("gui", "inventory", "minutes_progress").format( + minutes=drop.required_minutes + ) + else: + # required_minutes is zero for subscription-based drops + progress_text = '' if datetime.now(timezone.utc) < drop.starts_at > drop.campaign.starts_at: # this drop can only be earned later than the campaign start progress_text += '\n' + _("gui", "inventory", "starts").format( diff --git a/inventory.py b/inventory.py index fa66364..e572f8a 100644 --- a/inventory.py +++ b/inventory.py @@ -370,7 +370,7 @@ class DropsCampaign: @cached_property def finished(self) -> bool: - return all(d.is_claimed for d in self.drops) + return all(d.is_claimed or d.required_minutes <= 0 for d in self.drops) @cached_property def claimed_drops(self) -> int: