Changeset 3cf10cb in flexoentity


Ignore:
Timestamp:
11/19/25 12:55:23 (2 months ago)
Author:
Enrico Schwass <ennoausberlin@…>
Branches:
master
Children:
bd1554a
Parents:
8840db7
Message:

simplify allowed_transitions and use enums instead of strings

File:
1 edited

Legend:

Unmodified
Added
Removed
  • flexoentity/flexo_entity.py

    r8840db7 r3cf10cb  
    6262from flexoentity.id_factory import FlexOID
    6363from flexoentity import canonical_seed
     64
    6465
    6566# ──────────────────────────────────────────────────────────────────────────────
     
    105106    OBSOLETE = "O"
    106107
     108    def allowed_transitions(self) -> list[str]:
     109        """Return allowed state names for this state."""
     110        return TRANSITIONS[self]
     111
    107112    def __str__(self):
    108113        return self.name
     114
     115TRANSITIONS = {
     116    EntityState.DRAFT: [EntityState.APPROVED],
     117    EntityState.APPROVED: [EntityState.APPROVED_AND_SIGNED, EntityState.PUBLISHED,
     118                           EntityState.OBSOLETE],
     119    EntityState.APPROVED_AND_SIGNED: [EntityState.PUBLISHED, EntityState.OBSOLETE],
     120    EntityState.PUBLISHED: [EntityState.OBSOLETE],
     121    EntityState.OBSOLETE: [],
     122}
     123
    109124
    110125
     
    507522    def allowed_transitions(self) -> list[str]:
    508523        """Return a list of possible next state names (for GUI use)."""
    509         match self.state:
    510             case EntityState.DRAFT:
    511                 return ["APPROVED"]
    512             case EntityState.APPROVED:
    513                 return ["APPROVED_AND_SIGNED", "PUBLISHED", "OBSOLETE"]
    514             case EntityState.APPROVED_AND_SIGNED:
    515                 return ["PUBLISHED", "OBSOLETE"]
    516             case EntityState.PUBLISHED:
    517                 return ["OBSOLETE"]
    518             case EntityState.OBSOLETE:
    519                 return []
    520             case _:
    521                 return []
     524        return self.state.allowed_transitions()
    522525
    523526    def apply_state_change(self, new_state):
Note: See TracChangeset for help on using the changeset viewer.