From df3262b8a0b3ed62a5c1289fab3ce408b090ac09 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel <> Date: Sat, 24 Oct 2020 20:34:21 +0200 Subject: [PATCH] refactor(schedule): move schedule utils --- src/Handler/Schedule.hs | 4 +-- src/{Handler => }/Utils/Schedule/Types.hs | 8 +++--- .../Utils/Schedule/Types/ScheduleEntry.hs | 2 +- src/Utils/Schedule/Types/ScheduleOffset.hs | 12 ++++++++ .../Utils/Schedule/Types/ScheduleOptions.hs | 28 ++++--------------- src/Utils/Schedule/Types/ScheduleView.hs | 19 +++++++++++++ src/{Handler => }/Utils/Schedule/Week.hs | 8 +++--- .../Utils/Schedule/Week/TimeSlot.hs | 2 +- 8 files changed, 48 insertions(+), 35 deletions(-) rename src/{Handler => }/Utils/Schedule/Types.hs (64%) rename src/{Handler => }/Utils/Schedule/Types/ScheduleEntry.hs (95%) create mode 100644 src/Utils/Schedule/Types/ScheduleOffset.hs rename src/{Handler => }/Utils/Schedule/Types/ScheduleOptions.hs (75%) create mode 100644 src/Utils/Schedule/Types/ScheduleView.hs rename src/{Handler => }/Utils/Schedule/Week.hs (98%) rename src/{Handler => }/Utils/Schedule/Week/TimeSlot.hs (97%) diff --git a/src/Handler/Schedule.hs b/src/Handler/Schedule.hs index 7cb846c5a..d2341710f 100644 --- a/src/Handler/Schedule.hs +++ b/src/Handler/Schedule.hs @@ -6,8 +6,8 @@ import Import import Handler.Utils.Form -import Handler.Utils.Schedule.Types -import Handler.Utils.Schedule.Week +import Utils.Schedule.Types +import Utils.Schedule.Week getScheduleR, postScheduleR :: Handler Html diff --git a/src/Handler/Utils/Schedule/Types.hs b/src/Utils/Schedule/Types.hs similarity index 64% rename from src/Handler/Utils/Schedule/Types.hs rename to src/Utils/Schedule/Types.hs index 6b45c5c53..4392a61e4 100644 --- a/src/Handler/Utils/Schedule/Types.hs +++ b/src/Utils/Schedule/Types.hs @@ -1,11 +1,11 @@ -module Handler.Utils.Schedule.Types - ( module Handler.Utils.Schedule.Types +module Utils.Schedule.Types + ( module Utils.Schedule.Types ) where import Import -import Handler.Utils.Schedule.Types.ScheduleEntry as Handler.Utils.Schedule.Types -import Handler.Utils.Schedule.Types.ScheduleOptions as Handler.Utils.Schedule.Types +import Utils.Schedule.Types.ScheduleEntry as Utils.Schedule.Types +import Utils.Schedule.Types.ScheduleOptions as Utils.Schedule.Types -- TODO: replace Info types with one joined type and fetch info in one single runDB diff --git a/src/Handler/Utils/Schedule/Types/ScheduleEntry.hs b/src/Utils/Schedule/Types/ScheduleEntry.hs similarity index 95% rename from src/Handler/Utils/Schedule/Types/ScheduleEntry.hs rename to src/Utils/Schedule/Types/ScheduleEntry.hs index 536623ff8..0cb1b50a7 100644 --- a/src/Handler/Utils/Schedule/Types/ScheduleEntry.hs +++ b/src/Utils/Schedule/Types/ScheduleEntry.hs @@ -1,4 +1,4 @@ -module Handler.Utils.Schedule.Types.ScheduleEntry +module Utils.Schedule.Types.ScheduleEntry ( ScheduleEntry(..) ) where diff --git a/src/Utils/Schedule/Types/ScheduleOffset.hs b/src/Utils/Schedule/Types/ScheduleOffset.hs new file mode 100644 index 000000000..e11b696ec --- /dev/null +++ b/src/Utils/Schedule/Types/ScheduleOffset.hs @@ -0,0 +1,12 @@ +module Utils.Schedule.Types.ScheduleOffset + ( ScheduleOffset(..) + ) where + +import Import.NoModel + + +data ScheduleOffset = ScheduleOffsetNone + | ScheduleOffsetDays Int + deriving (Eq, Ord, Show, Read, Generic, Typeable) + +derivePathPiece ''ScheduleOffset (camelToPathPiece' 1) "_" diff --git a/src/Handler/Utils/Schedule/Types/ScheduleOptions.hs b/src/Utils/Schedule/Types/ScheduleOptions.hs similarity index 75% rename from src/Handler/Utils/Schedule/Types/ScheduleOptions.hs rename to src/Utils/Schedule/Types/ScheduleOptions.hs index aef97abfa..daafccc8f 100644 --- a/src/Handler/Utils/Schedule/Types/ScheduleOptions.hs +++ b/src/Utils/Schedule/Types/ScheduleOptions.hs @@ -1,32 +1,14 @@ -module Handler.Utils.Schedule.Types.ScheduleOptions - ( ScheduleView(..) - , ScheduleOffset(..) +module Utils.Schedule.Types.ScheduleOptions + ( ScheduleOffset(..) , ScheduleOptionsAction(..) , ScheduleOptions(..) ) where -import Import +import Import.NoModel import Utils.Form - - -data ScheduleView = ScheduleViewWeek - deriving (Eq, Ord, Enum, Show, Read, Generic, Typeable) - -instance Bounded ScheduleView where - minBound = maxBound - maxBound = ScheduleViewWeek -instance Finite ScheduleView -instance Universe ScheduleView - -derivePathPiece ''ScheduleView (camelToPathPiece' 1) "_" - - -data ScheduleOffset = ScheduleOffsetNone - | ScheduleOffsetDays Int - deriving (Eq, Ord, Show, Read, Generic, Typeable) - -derivePathPiece ''ScheduleOffset (camelToPathPiece' 1) "_" +import Utils.Schedule.Types.ScheduleOffset +import Utils.Schedule.Types.ScheduleView data ScheduleOptionsAction = ScheduleSetView diff --git a/src/Utils/Schedule/Types/ScheduleView.hs b/src/Utils/Schedule/Types/ScheduleView.hs new file mode 100644 index 000000000..3de254067 --- /dev/null +++ b/src/Utils/Schedule/Types/ScheduleView.hs @@ -0,0 +1,19 @@ +module Utils.Schedule.Types.ScheduleView + ( ScheduleView(..) + ) where + +import Import.NoModel + + +data ScheduleView = ScheduleViewWeek + deriving (Eq, Ord, Enum, Show, Read, Generic, Typeable) + +instance Bounded ScheduleView where + minBound = maxBound + maxBound = ScheduleViewWeek + +instance Finite ScheduleView + +instance Universe ScheduleView + +derivePathPiece ''ScheduleView (camelToPathPiece' 1) "_" diff --git a/src/Handler/Utils/Schedule/Week.hs b/src/Utils/Schedule/Week.hs similarity index 98% rename from src/Handler/Utils/Schedule/Week.hs rename to src/Utils/Schedule/Week.hs index f5ea9b3b0..497b3c1bb 100644 --- a/src/Handler/Utils/Schedule/Week.hs +++ b/src/Utils/Schedule/Week.hs @@ -1,4 +1,4 @@ -module Handler.Utils.Schedule.Week +module Utils.Schedule.Week ( weekSchedule ) where @@ -13,9 +13,9 @@ import qualified Database.Esqueleto as E import Handler.Utils.DateTime (formatTimeRangeW, formatTimeW) -import Handler.Utils.Schedule -import Handler.Utils.Schedule.Types -import Handler.Utils.Schedule.Week.TimeSlot +import Utils.Schedule +import Utils.Schedule.Types +import Utils.Schedule.Week.TimeSlot weekSchedule :: UserId -> ScheduleOffset -> Widget diff --git a/src/Handler/Utils/Schedule/Week/TimeSlot.hs b/src/Utils/Schedule/Week/TimeSlot.hs similarity index 97% rename from src/Handler/Utils/Schedule/Week/TimeSlot.hs rename to src/Utils/Schedule/Week/TimeSlot.hs index 6584211eb..5b8cc6768 100644 --- a/src/Handler/Utils/Schedule/Week/TimeSlot.hs +++ b/src/Utils/Schedule/Week/TimeSlot.hs @@ -1,4 +1,4 @@ -module Handler.Utils.Schedule.Week.TimeSlot +module Utils.Schedule.Week.TimeSlot ( TimeSlot(..) , timeSlot , timeSlotsFromTo