From a2d56d6ac442e09cd6ae1a73ad40275ba4a0af53 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sat, 5 May 2018 10:32:41 +0000 Subject: [PATCH] Add subtask module --- src/TaskMachine/Subtask.hs | 23 +++++++++++++++++++++++ src/TaskMachine/Task.hs | 21 ++++++++++----------- 2 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 src/TaskMachine/Subtask.hs diff --git a/src/TaskMachine/Subtask.hs b/src/TaskMachine/Subtask.hs new file mode 100644 index 0000000..e88a495 --- /dev/null +++ b/src/TaskMachine/Subtask.hs @@ -0,0 +1,23 @@ +module TaskMachine.Subtask + ( Subtask(..) + , SubtaskID + , allRepetitionsTotal + , allRepetitionsDone + ) where + +import qualified Data.Text as T + +type SubtaskID = Integer + +data Subtask = Subtask + { subID :: SubtaskID + , subLabel :: T.Text + , subRepetitionsTotal :: Integer + , subRepetitionsDone :: Integer + } + +allRepetitionsTotal :: [Subtask] -> Integer +allRepetitionsTotal = sum . map subRepetitionsTotal + +allRepetitionsDone :: [Subtask] -> Integer +allRepetitionsDone = sum . map subRepetitionsDone diff --git a/src/TaskMachine/Task.hs b/src/TaskMachine/Task.hs index 244302a..0daed73 100644 --- a/src/TaskMachine/Task.hs +++ b/src/TaskMachine/Task.hs @@ -9,22 +9,14 @@ module TaskMachine.Task ( Task(..) - , Subtask(..) + , TaskID ) where import qualified Data.Text as T import qualified TaskMachine.DateExpr as TM import qualified TaskMachine.Deadline as TM - -type SubtaskID = Integer - -data Subtask = Subtask - { subID :: SubtaskID - , subLabel :: T.Text - , subRepetitionsTotal :: Integer - , subRepetitionsDone :: Integer - } +import qualified TaskMachine.Subtask as TM type TaskID = Integer @@ -34,7 +26,14 @@ data Task = Task , taskFormula :: Maybe TM.IntExpr , taskDescription :: T.Text , taskDetails :: T.Text - , taskSubtasks :: [Subtask] + , taskSubtasks :: [TM.Subtask] + } + +data EmptyTask = EmptyTask + { etaskID :: TaskID + , etaskFormula :: Maybe TM.IntExpr + , etaskDescription :: T.Text + , etaskDetails :: T.Text } {-