Skip to main content

hackagent.interfaces.tui.views.campaign.outline

The outline of a campaign: one node per part of the schema being edited.

Node Objects​

@dataclass(frozen=True)
class Node()

One entry of the outline and the panel it opens.

union​

Set instead of model when this panel edits a tagged union.

groups​

def groups(draft: Optional[CampaignDraft] = None) -> list[Group]

The boxes this panel shows, each a nested model of the schema.

draft is needed where the schema branches: a tagged union shows the tag and only the fields of the variant the document currently names.

fields​

def fields(draft: Optional[CampaignDraft] = None) -> list[FieldDef]

Every row of this panel, boxes flattened.

build_outline​

def build_outline(draft: CampaignDraft) -> list[Outline]

The outline for the draft's current shape (its attacks, judges...).