From 115ddf8d509f657e82b014643277a63a5f118123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20R=C3=A9aux?= Date: Mon, 16 Feb 2026 10:45:34 +0100 Subject: [PATCH] fix delete campaign participant in another war --- src/warchron/model/war.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/warchron/model/war.py b/src/warchron/model/war.py index 1f7d068..e62337a 100644 --- a/src/warchron/model/war.py +++ b/src/warchron/model/war.py @@ -234,11 +234,13 @@ class War: return camp raise KeyError(f"Sector {sector_id} not found in any Campaign") - def get_campaign_by_campaign_participant(self, participant_id: str) -> Campaign: + def get_campaign_by_campaign_participant( + self, participant_id: str + ) -> Campaign | None: for camp in self.campaigns: if camp.has_participant(participant_id): return camp - raise KeyError(f"Participant {participant_id} not found in any Campaign") + return None def update_campaign(self, campaign_id: str, *, name: str, month: int) -> None: if self.is_over: @@ -351,11 +353,13 @@ class War: self, participant_id: str, *, leader: str, theme: str ) -> None: camp = self.get_campaign_by_campaign_participant(participant_id) - camp.update_campaign_participant(participant_id, leader=leader, theme=theme) + if camp is not None: + camp.update_campaign_participant(participant_id, leader=leader, theme=theme) def remove_campaign_participant(self, participant_id: str) -> None: camp = self.get_campaign_by_campaign_participant(participant_id) - camp.remove_campaign_participant(participant_id) + if camp is not None: + camp.remove_campaign_participant(participant_id) # Round methods