refactor(schedule): update comments and TODOs, move fetchActiveTerms

This commit is contained in:
Sarah Vaupel 2021-05-06 14:03:51 +02:00
parent 4e6ffa7b85
commit 0c8de277d5
5 changed files with 18 additions and 13 deletions

View File

@ -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)

View File

@ -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

View File

@ -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
)
)

View File

@ -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)

View File

@ -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