summaryrefslogtreecommitdiff
path: root/Omni/Task
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-11-22 17:00:09 -0500
committerBen Sima <ben@bensima.com>2025-11-22 17:00:09 -0500
commit581dc6bfd6408300a6d9d3abadb10c3ed67f1c58 (patch)
tree03a5a6734aa558c53168c0e5c4471029cd841a50 /Omni/Task
parent4b711255cd0eb5ec1a91105a10ec464e46e3589a (diff)
parent5213e86447768b5a17cae3c8dfba71771ce2a0cb (diff)
task: complete t-1o2bxcq7999.2 (Merge)
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'Omni/Task')
-rw-r--r--Omni/Task/Core.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs
index 3de42b2..ebf5390 100644
--- a/Omni/Task/Core.hs
+++ b/Omni/Task/Core.hs
@@ -42,7 +42,7 @@ data Task = Task
data TaskType = Epic | WorkTask
deriving (Show, Eq, Generic)
-data Status = Open | InProgress | Review | Done
+data Status = Open | InProgress | Review | Approved | Done
deriving (Show, Eq, Generic)
-- Priority levels (matching beads convention)
@@ -578,6 +578,7 @@ showTaskTree maybeId = do
Open -> "[ ]"
InProgress -> "[~]"
Review -> "[?]"
+ Approved -> "[+]"
Done -> "[✓]"
coloredStatusStr = case taskType task of
@@ -586,6 +587,7 @@ showTaskTree maybeId = do
Open -> bold statusStr
InProgress -> yellow statusStr
Review -> magenta statusStr
+ Approved -> green statusStr
Done -> green statusStr
nsStr = case taskNamespace task of
@@ -645,6 +647,7 @@ printTask t = do
Open -> bold s
InProgress -> yellow s
Review -> magenta s
+ Approved -> green s
Done -> green s
coloredTitle = if taskType t == Epic then bold (taskTitle t) else taskTitle t
@@ -755,6 +758,7 @@ data TaskStats = TaskStats
openTasks :: Int,
inProgressTasks :: Int,
reviewTasks :: Int,
+ approvedTasks :: Int,
doneTasks :: Int,
totalEpics :: Int,
readyTasks :: Int,
@@ -790,6 +794,7 @@ getTaskStats maybeEpicId = do
open = length <| filter (\t -> taskStatus t == Open) tasks
inProg = length <| filter (\t -> taskStatus t == InProgress) tasks
review = length <| filter (\t -> taskStatus t == Review) tasks
+ approved = length <| filter (\t -> taskStatus t == Approved) tasks
done = length <| filter (\t -> taskStatus t == Done) tasks
epics = length <| filter (\t -> taskType t == Epic) tasks
readyCount' = readyCount
@@ -812,6 +817,7 @@ getTaskStats maybeEpicId = do
openTasks = open,
inProgressTasks = inProg,
reviewTasks = review,
+ approvedTasks = approved,
doneTasks = done,
totalEpics = epics,
readyTasks = readyCount',
@@ -839,6 +845,7 @@ showTaskStats maybeEpicId = do
putText <| " Open: " <> T.pack (show (openTasks stats))
putText <| " In Progress: " <> T.pack (show (inProgressTasks stats))
putText <| " Review: " <> T.pack (show (reviewTasks stats))
+ putText <| " Approved: " <> T.pack (show (approvedTasks stats))
putText <| " Done: " <> T.pack (show (doneTasks stats))
putText ""
putText <| "Epics: " <> T.pack (show (totalEpics stats))