diff --git a/src/my_memory/board_window.py b/src/my_memory/board_window.py index 8c12feb..ca2d58b 100644 --- a/src/my_memory/board_window.py +++ b/src/my_memory/board_window.py @@ -146,6 +146,11 @@ class EntryCard(QFrame): for status in EntryStatus: if status == self._entry.status: continue + # Only Docket and In Progress cards can be cancelled + if status == EntryStatus.CANCELLED and self._entry.status not in ( + EntryStatus.DOCKET, EntryStatus.IN_PROGRESS, + ): + continue action = menu.addAction(f"Move to {_label_for(status)}") action.triggered.connect(lambda _checked, s=status: self._move_to(s)) menu.exec(self.mapToGlobal(pos)) @@ -157,6 +162,7 @@ def _label_for(status: EntryStatus) -> str: EntryStatus.DOCKET: "On Docket", EntryStatus.IN_PROGRESS: "In Progress", EntryStatus.COMPLETE: "Complete", + EntryStatus.CANCELLED: "Cancelled", }[status] diff --git a/src/my_memory/models.py b/src/my_memory/models.py index 1a5d84d..d48a8f1 100644 --- a/src/my_memory/models.py +++ b/src/my_memory/models.py @@ -18,6 +18,7 @@ class EntryStatus(str, Enum): DOCKET = "docket" IN_PROGRESS = "in_progress" COMPLETE = "complete" + CANCELLED = "cancelled" class Entry(BaseModel):