From 0c8de277d57991351dec43b0caa601f3ba4d4a85 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Thu, 6 May 2021 14:03:51 +0200 Subject: [PATCH] refactor(schedule): update comments and TODOs, move fetchActiveTerms --- src/Handler/Utils/Term.hs | 12 +++++++++++- src/Utils/Schedule.hs | 8 +------- src/Utils/Schedule/Types.hs | 8 ++++---- src/Utils/Schedule/Types/ScheduleView.hs | 1 + src/Utils/Schedule/Week.hs | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/Handler/Utils/Term.hs b/src/Handler/Utils/Term.hs index 1fa223378..78c764445 100644 --- a/src/Handler/Utils/Term.hs +++ b/src/Handler/Utils/Term.hs @@ -1,5 +1,6 @@ module Handler.Utils.Term - ( groupHolidays + ( fetchActiveTerms + , groupHolidays ) where import Import @@ -7,6 +8,15 @@ import Import import qualified Data.Set as Set import qualified Data.Sequence as Seq +import qualified Database.Esqueleto as E + + +fetchActiveTerms :: MonadHandler m => ReaderT SqlBackend m [Entity Term] +fetchActiveTerms = E.select $ E.from $ \term -> do + E.where_ $ term E.^. TermActive + return term + + groupHolidays :: ( MonoFoldable mono , Enum (Element mono) , Ord (Element mono) diff --git a/src/Utils/Schedule.hs b/src/Utils/Schedule.hs index afab06d66..7df0e4a64 100644 --- a/src/Utils/Schedule.hs +++ b/src/Utils/Schedule.hs @@ -1,5 +1,5 @@ module Utils.Schedule - ( fetchActiveTerms, fetchCourseEventsScheduleInfo, fetchTutorialsScheduleInfo, fetchExamOccurrencesScheduleInfo + ( fetchCourseEventsScheduleInfo, fetchTutorialsScheduleInfo, fetchExamOccurrencesScheduleInfo , courseEventShouldBeDisplayedInSchedule, tutorialShouldBeDisplayedInSchedule, examOccurrenceShouldBeDisplayedInSchedule ) where @@ -18,12 +18,6 @@ import Utils.Tutorial import Utils.Schedule.Types --- TODO: move to general utils or use general utils function if available -fetchActiveTerms :: MonadHandler m => ReaderT SqlBackend m [Entity Term] -fetchActiveTerms = E.select $ E.from $ \term -> do - E.where_ $ term E.^. TermActive - return term - fetchCourseEventsScheduleInfo :: MonadHandler m => Maybe UserId -> AuthTagActive -> UTCTime -> ReaderT SqlBackend m [ScheduleCourseEventInfo] fetchCourseEventsScheduleInfo muid ata now = E.select $ E.from $ \(course `E.InnerJoin` courseEvent) -> do E.on $ course E.^. CourseId E.==. courseEvent E.^. CourseEventCourse diff --git a/src/Utils/Schedule/Types.hs b/src/Utils/Schedule/Types.hs index 791f6c72e..14e174ea4 100644 --- a/src/Utils/Schedule/Types.hs +++ b/src/Utils/Schedule/Types.hs @@ -16,22 +16,22 @@ import Utils.Schedule.Types.ScheduleOptions as Utils.Schedule.Types type ScheduleCourseEventInfo = ( Entity Course , Entity CourseEvent - , E.Value Bool -- showRoom + , E.Value Bool -- ^ showRoom ) type ScheduleTutorialInfo = ( Entity Course , Entity Tutorial - , E.Value Bool -- showRoom + , E.Value Bool -- ^ showRoom ) type ScheduleExamOccurrenceInfo = ( Entity Course , Entity Exam , Entity ExamOccurrence - , E.Value Bool -- showRoom + , E.Value Bool -- ^ showRoom ) type ScheduleExamOccurrenceJoinedInfo = ( Entity Course , Entity Exam , NonEmpty ( Entity ExamOccurrence - , E.Value Bool -- showRoom + , E.Value Bool -- ^ showRoom ) ) diff --git a/src/Utils/Schedule/Types/ScheduleView.hs b/src/Utils/Schedule/Types/ScheduleView.hs index 192bf3d9f..c7a423972 100644 --- a/src/Utils/Schedule/Types/ScheduleView.hs +++ b/src/Utils/Schedule/Types/ScheduleView.hs @@ -7,6 +7,7 @@ import Import.NoModel import Model.Types.TH.PathPiece +-- TODO: implement ScheduleViewDay and ScheduleViewMonth data ScheduleView = ScheduleViewWeek deriving (Eq, Ord, Enum, Show, Read, Generic, Typeable, NFData) diff --git a/src/Utils/Schedule/Week.hs b/src/Utils/Schedule/Week.hs index 6b8f8373b..3b9538fec 100644 --- a/src/Utils/Schedule/Week.hs +++ b/src/Utils/Schedule/Week.hs @@ -5,13 +5,13 @@ module Utils.Schedule.Week import Import import qualified Data.CaseInsensitive as CI - import qualified Data.Map as Map import qualified Data.Set as Set import qualified Database.Esqueleto as E import Handler.Utils.DateTime (formatTimeRangeW, formatTimeW, utcToLocalTime, localTimeToUTCSimple) +import Handler.Utils.Term (fetchActiveTerms) import Handler.Utils.Widgets (roomReferenceWidget) import Utils.Schedule