add forbidden exceptions on closed elements
This commit is contained in:
parent
42eb625ef6
commit
88bd28e949
6 changed files with 151 additions and 71 deletions
|
|
@ -4,7 +4,7 @@ import json
|
|||
import shutil
|
||||
from datetime import datetime
|
||||
|
||||
from warchron.model.exception import DeletionForbidden
|
||||
from warchron.model.exception import ForbiddenOperation
|
||||
from warchron.model.player import Player
|
||||
from warchron.model.war import War
|
||||
from warchron.model.war_participant import WarParticipant
|
||||
|
|
@ -91,7 +91,7 @@ class Model:
|
|||
wars_using_player.append(war.name)
|
||||
if wars_using_player:
|
||||
wars_str = ", ".join(wars_using_player)
|
||||
raise DeletionForbidden(
|
||||
raise ForbiddenOperation(
|
||||
f"This player is participating in war(s): {wars_str}.\n"
|
||||
"Remove it from participants first."
|
||||
)
|
||||
|
|
@ -178,6 +178,21 @@ class Model:
|
|||
return list(self.wars.values())
|
||||
|
||||
def remove_war(self, war_id: str) -> None:
|
||||
war = self.wars[war_id]
|
||||
if war:
|
||||
if war.is_over:
|
||||
raise ForbiddenOperation("Can't remove closed war.")
|
||||
if war.has_finished_campaign():
|
||||
raise ForbiddenOperation("Can't remove war with finished campaign(s).")
|
||||
if war.has_finished_round():
|
||||
raise ForbiddenOperation(
|
||||
"Can't remove war with finished round(s) in campaign(s)."
|
||||
)
|
||||
if war.has_finished_battle():
|
||||
raise ForbiddenOperation(
|
||||
"Can't remove war with finished battle(s) in round(s) "
|
||||
"in campaign(s)."
|
||||
)
|
||||
del self.wars[war_id]
|
||||
|
||||
# Objective methods
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue