fix(study-features): also apply caching to table columns
This commit is contained in:
parent
8f6d54d012
commit
564c0b975a
@ -8,6 +8,7 @@ module Handler.Utils.StudyFeatures
|
||||
, cacheStudyFeatureRelevance
|
||||
, isCourseStudyFeature, courseUserStudyFeatures
|
||||
, isExternalExamStudyFeature, externalExamUserStudyFeatures
|
||||
, isTermStudyFeature
|
||||
) where
|
||||
|
||||
import Import.NoFoundation
|
||||
@ -180,3 +181,6 @@ externalExamUserStudyFeatures eeId uid = do
|
||||
, userTableSemester = studyFeaturesSemester
|
||||
, userTableFieldType = studyFeaturesType
|
||||
}
|
||||
|
||||
isTermStudyFeature :: E.SqlExpr (Entity Term) -> E.SqlExpr (Entity StudyFeatures) -> E.SqlExpr (E.Value Bool)
|
||||
isTermStudyFeature = isRelevantStudyFeatureCached TermId
|
||||
|
||||
@ -789,7 +789,7 @@ colStudyFeatures resultFeatures = Colonnade.singleton (fromSortable header) body
|
||||
fltrRelevantStudyFeaturesTerms :: OpticFilterColumn' t (Set Text) (E.SqlExpr (E.Value TermId), E.SqlExpr (E.Value UserId))
|
||||
fltrRelevantStudyFeaturesTerms queryTermUser = singletonMap "features-terms" . FilterColumn $ \t criterias ->
|
||||
E.subSelectOr . E.from $ \(term `E.InnerJoin` studyFeatures) -> do
|
||||
E.on $ isRelevantStudyFeature TermId term studyFeatures
|
||||
E.on $ isTermStudyFeature term studyFeatures
|
||||
|
||||
let (tid, uid) = t ^. queryTermUser
|
||||
E.where_ $ studyFeatures E.^. StudyFeaturesUser E.==. uid
|
||||
@ -807,7 +807,7 @@ fltrRelevantStudyFeaturesTermsUI = fltrStudyTermsUI
|
||||
fltrRelevantStudyFeaturesDegree :: OpticFilterColumn' t (Set Text) (E.SqlExpr (E.Value TermId), E.SqlExpr (E.Value UserId))
|
||||
fltrRelevantStudyFeaturesDegree queryTermUser = singletonMap "features-degree" . FilterColumn $ \t criterias ->
|
||||
E.subSelectOr . E.from $ \(term `E.InnerJoin` studyFeatures) -> do
|
||||
E.on $ isRelevantStudyFeature TermId term studyFeatures
|
||||
E.on $ isTermStudyFeature term studyFeatures
|
||||
|
||||
let (tid, uid) = t ^. queryTermUser
|
||||
E.where_ $ studyFeatures E.^. StudyFeaturesUser E.==. uid
|
||||
@ -826,7 +826,7 @@ fltrRelevantStudyFeaturesDegreeUI mPrev =
|
||||
fltrRelevantStudyFeaturesSemester :: OpticFilterColumn' t (Set Text) (E.SqlExpr (E.Value TermId), E.SqlExpr (E.Value UserId))
|
||||
fltrRelevantStudyFeaturesSemester queryTermUser = singletonMap "features-semester" . FilterColumn $ \t criterias ->
|
||||
E.subSelectOr . E.from $ \(term `E.InnerJoin` studyFeatures) -> do
|
||||
E.on $ isRelevantStudyFeature TermId term studyFeatures
|
||||
E.on $ isTermStudyFeature term studyFeatures
|
||||
|
||||
let (tid, uid) = t ^. queryTermUser
|
||||
E.where_ $ studyFeatures E.^. StudyFeaturesUser E.==. uid
|
||||
|
||||
Loading…
Reference in New Issue
Block a user