fix delete campaign participant in another war

This commit is contained in:
Maxime Réaux 2026-02-16 10:45:34 +01:00
parent f408707588
commit 115ddf8d50

View file

@ -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,10 +353,12 @@ class War:
self, participant_id: str, *, leader: str, theme: str
) -> None:
camp = self.get_campaign_by_campaign_participant(participant_id)
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)
if camp is not None:
camp.remove_campaign_participant(participant_id)
# Round methods