fix sector missing fields

This commit is contained in:
Maxime Réaux 2026-02-12 09:10:03 +01:00
parent 6cbb7c6534
commit 93aae78f0d
10 changed files with 102 additions and 14 deletions

View file

@ -152,8 +152,12 @@ class Campaign:
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
mission: str | None,
description: str | None,
) -> Sector:
sect = Sector(name, round_id, major_id, minor_id, influence_id)
sect = Sector(
name, round_id, major_id, minor_id, influence_id, mission, description
)
self.sectors[sect.id] = sect
return sect
@ -177,6 +181,8 @@ class Campaign:
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
mission: str | None,
description: str | None,
) -> None:
sect = self.get_sector(sector_id)
old_round_id = sect.round_id
@ -187,6 +193,8 @@ class Campaign:
sect.set_major(major_id)
sect.set_minor(minor_id)
sect.set_influence(influence_id)
sect.set_mission(mission)
sect.set_description(description)
if old_round_id == round_id:
apply_update()

View file

@ -301,9 +301,13 @@ class Model:
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
mission: str | None,
description: str | None,
) -> Sector:
camp = self.get_campaign(campaign_id)
return camp.add_sector(name, round_id, major_id, minor_id, influence_id)
return camp.add_sector(
name, round_id, major_id, minor_id, influence_id, mission, description
)
# TODO replace multiloops by internal has_* method
def get_sector(self, sector_id: str) -> Sector:
@ -323,6 +327,8 @@ class Model:
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
mission: str | None,
description: str | None,
) -> None:
war = self.get_war_by_sector(sector_id)
war.update_sector(
@ -332,6 +338,8 @@ class Model:
major_id=major_id,
minor_id=minor_id,
influence_id=influence_id,
mission=mission,
description=description,
)
def remove_sector(self, sector_id: str) -> None:

View file

@ -11,6 +11,8 @@ class Sector:
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
mission: str | None,
description: str | None,
):
self.id: str = str(uuid4())
self.name: str = name
@ -18,8 +20,8 @@ class Sector:
self.major_objective_id: str | None = major_id # ref to War.objectives
self.minor_objective_id: str | None = minor_id # ref to War.objectives
self.influence_objective_id: str | None = influence_id # ref to War.objectives
self.mission: str | None = None
self.description: str | None = None
self.mission: str | None = mission
self.description: str | None = description
def set_id(self, new_id: str) -> None:
self.id = new_id
@ -39,6 +41,12 @@ class Sector:
def set_influence(self, new_influence_id: str | None) -> None:
self.influence_objective_id = new_influence_id
def set_mission(self, new_mission_id: str | None) -> None:
self.mission = new_mission_id
def set_description(self, new_description: str | None) -> None:
self.description = new_description
def toDict(self) -> Dict[str, Any]:
return {
"id": self.id,
@ -59,6 +67,8 @@ class Sector:
data.get("major_objective_id") or None,
data.get("minor_objective_id") or None,
data.get("influence_objective_id") or None,
data.get("mission") or None,
data.get("description") or None,
)
sec.set_id(data["id"])
sec.mission = data.get("mission") or None

View file

@ -233,9 +233,13 @@ class War:
major_id: str,
minor_id: str,
influence_id: str,
mission: str,
description: str,
) -> Sector:
camp = self.get_campaign(campaign_id)
return camp.add_sector(name, round_id, major_id, minor_id, influence_id)
return camp.add_sector(
name, round_id, major_id, minor_id, influence_id, mission, description
)
# TODO replace multiloops by internal has_* method
def get_sector(self, sector_id: str) -> Sector:
@ -254,6 +258,8 @@ class War:
major_id: str | None,
minor_id: str | None,
influence_id: str | None,
mission: str | None,
description: str | None,
) -> None:
camp = self.get_campaign_by_sector(sector_id)
camp.update_sector(
@ -263,6 +269,8 @@ class War:
major_id=major_id,
minor_id=minor_id,
influence_id=influence_id,
mission=mission,
description=description,
)
def remove_sector(self, sector_id: str) -> None: