summaryrefslogtreecommitdiff
path: root/Omni/Task/Core.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-11-28 04:01:07 -0500
committerBen Sima <ben@bensima.com>2025-11-28 04:01:07 -0500
commit0f3ec582e98fff87988b829d704e1152f52d8d1f (patch)
tree33590d28851d0910003ce65f686a1be574dff97a /Omni/Task/Core.hs
parent632d36e314fff9211e35ae293822e41d77689628 (diff)
Make task description a required field on create
All tests pass. The changes are complete: **Summary of changes:** 1. **Omni/Task/Core.hs**: Changed `taskDescription` from `Maybe Text` to 2. **Omni/Task.hs**: Made `--description` required on CLI `create` (pani 3. **Omni/Task/RaceTest.hs**: Updated test to provide descriptions Task-Id: t-165
Diffstat (limited to 'Omni/Task/Core.hs')
-rw-r--r--Omni/Task/Core.hs18
1 files changed, 8 insertions, 10 deletions
diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs
index 6d69834..18f80e2 100644
--- a/Omni/Task/Core.hs
+++ b/Omni/Task/Core.hs
@@ -35,7 +35,7 @@ data Task = Task
taskStatus :: Status,
taskPriority :: Priority, -- Priority level (0-4)
taskDependencies :: [Dependency], -- List of dependencies with types
- taskDescription :: Maybe Text, -- Optional detailed description
+ taskDescription :: Text, -- Required description
taskCreatedAt :: UTCTime,
taskUpdatedAt :: UTCTime
}
@@ -251,7 +251,7 @@ instance SQL.FromRow Task where
<*> SQL.field
<*> SQL.field
<*> SQL.field
- <*> SQL.field
+ <*> (fromMaybe "" </ SQL.field) -- Handle NULL description from legacy data
<*> SQL.field
<*> SQL.field
@@ -598,7 +598,7 @@ saveTask task =
task
-- Create a new task
-createTask :: Text -> TaskType -> Maybe Text -> Maybe Text -> Priority -> [Dependency] -> Maybe Text -> IO Task
+createTask :: Text -> TaskType -> Maybe Text -> Maybe Text -> Priority -> [Dependency] -> Text -> IO Task
createTask title taskType parent namespace priority deps description =
withTaskLock <| do
let parent' = fmap normalizeId parent
@@ -957,13 +957,11 @@ showTaskDetailed t = do
putText "Dependencies:"
traverse_ printDependency (taskDependencies t)
- case taskDescription t of
- Nothing -> pure ()
- Just desc -> do
- putText ""
- putText "Description:"
- let indented = T.unlines <| map (" " <>) (T.lines desc)
- putText indented
+ unless (T.null (taskDescription t)) <| do
+ putText ""
+ putText "Description:"
+ let indented = T.unlines <| map (" " <>) (T.lines (taskDescription t))
+ putText indented
putText ""
where