chore(test): finalize property description

This commit is contained in:
Wolfgang Witt 2021-01-30 17:31:56 +01:00 committed by Wolfgang Witt
parent aba5c53a0b
commit c0fd3bc1e4

View File

@ -10,8 +10,7 @@ import Test.Hspec.QuickCheck (prop)
import qualified Data.Map as Map
import qualified Data.Text as Text
import Control.Applicative (ZipList(..))
import qualified Data.CaseInsensitive as CI
import Handler.Utils.Exam
@ -41,7 +40,7 @@ instance Arbitrary ExamOccurrence where
-- examAutoOccurrence (hash -> seed) rule ExamAutoOccurrenceConfig{..} occurrences users
spec :: Spec
spec = do
prop "property test" $ do -- TODO
prop "examAutoOccurrence Surname, no Nudges, no preselection" $ do -- TODO
rawUsers <- listOf1 $ Entity <$> arbitrary <*> arbitrary
-- user surnames anpassen, sodass interessante instanz
adjustedUsers <- forM rawUsers $ \Entity {entityKey, entityVal} -> do
@ -60,14 +59,20 @@ spec = do
| otherwise = pure acc
occurrences <- Map.fromList <$> createOccurrences []
--let occurrences = Map.empty :: Map ExamOccurrenceId Natural
let (maybeMapping, userMap) = examAutoOccurrence seed rule config occurrences users
let result@(_maybeMapping, userMap) = examAutoOccurrence seed rule config occurrences users
pure $ ioProperty $ do
print $ Map.map (userSurname . fst) users
shouldSatisfy users $ not . null
shouldSatisfy occurrences $ not . null
-- TODO test with some users fixed to certain rooms
-- every user got assigned a room
shouldBe (length userMap) (length users)
shouldSatisfy userMap $ all isJust
-- no room is overfull
shouldSatisfy userMap $ fitsInRooms occurrences
-- all users match the shown ranges
shouldSatisfy result $ showsCorrectRanges users
-- TODO test with some users fixed/preselected to certain rooms
-- TODO test with ExamRoomManual, ExamRoomFifo, (ExamRoomSurname), ExamRoomMatriculation, ExamRoomRandom
where
-- name list copied from test/Database/Fill.hs
surnames :: [Text]
surnames = [ "Smith", "Johnson", "Williams", "Brown"
, "Jones", "Miller", "Davis", "Garcia"
, "Rodriguez", "Wilson", "Martinez", "Anderson"
@ -77,89 +82,50 @@ spec = do
, "Clark", "Lewis", "Robinson", "Walker"
, "Perez", "Hall", "Young", "Allen"
]
seed :: ()
seed = ()
--seed = FixedHash (-7234408896601100696)
rule :: ExamOccurrenceRule
rule = ExamRoomSurname
config :: ExamAutoOccurrenceConfig
config = def --{eaocNudge = Map.singleton occ20Id (-11)}
--ExamAutoOccurrenceConfig {eaocMinimizeRooms = False, eaocFinenessCost = 1 % 5, eaocNudge = fromList [(SqlBackendKey {unSqlBackendKey = 4},-11)], eaocNudgeSize = 1 % 20}
{-
occurrences :: Map ExamOccurrenceId Natural
occurrences = Map.empty --TODO
--fromList [(SqlBackendKey {unSqlBackendKey = 1},5),(SqlBackendKey {unSqlBackendKey = 2},15),(SqlBackendKey {unSqlBackendKey = 3},10),(SqlBackendKey {unSqlBackendKey = 4},20),(SqlBackendKey {unSqlBackendKey = 5},10)]
users :: Map UserId User
users = Map.empty --TODO
-}
config = def
-- TODO adjust with different nudges, depended on occurrences list/map
-- def {eaocNudge = Map.singleton occ20Id (-11)}
--ExamAutoOccurrenceConfig {eaocMinimizeRooms = False, eaocFinenessCost = 1 % 5, eaocNudge = fromList [(SqlBackendKey {unSqlBackendKey = 4},-11)], eaocNudgeSize = 1 % 20}
occurrenceMap :: Map UserId (Maybe ExamOccurrenceId) -> Map ExamOccurrenceId [UserId]
occurrenceMap userMap = foldl' (\acc (userId, maybeOccurrenceId) -> appendJust maybeOccurrenceId userId acc)
Map.empty $ Map.toAscList userMap
where
appendJust :: Maybe ExamOccurrenceId -> UserId -> Map ExamOccurrenceId [UserId] -> Map ExamOccurrenceId [UserId]
appendJust Nothing _userId = id
appendJust (Just occurrenceId) userId = Map.insertWith (++) occurrenceId [userId]
fitsInRooms :: Map ExamOccurrenceId Natural
-> (Maybe (ExamOccurrenceMapping ExamOccurrenceId), Map UserId (Maybe ExamOccurrenceId))
-> Map UserId (Maybe ExamOccurrenceId)
-> Bool
fitsInRooms _occurrences (Nothing, _userMap) = False
fitsInRooms occurrences (Just (examOccurrenceMappingMapping -> m), _userMap)
= all (\(roomId, mappingSet) -> maybe False ((< length mappingSet) . fromIntegral) $ lookup roomId occurrences) $ Map.toAscList m
{-
newtype FixedHash = FixedHash Int
instance Hashable FixedHash where
hashWithSalt _salt (FixedHash h) = h
seed = FixedHash -7234408896601100696
rule = ExamRoomSurname
config = ExamAutoOccurrenceConfig {eaocMinimizeRooms = False, eaocFinenessCost = 1 % 5, eaocNudge = fromList [(SqlBackendKey {unSqlBackendKey = 4},-11)], eaocNudgeSize = 1 % 20}
occurrences = fromList [(SqlBackendKey {unSqlBackendKey = 1},5),(SqlBackendKey {unSqlBackendKey = 2},15),(SqlBackendKey {unSqlBackendKey = 3},10),(SqlBackendKey {unSqlBackendKey = 4},20),(SqlBackendKey {unSqlBackendKey = 5},10)]
-}
{-
trace result of arguments with erroneous output (users split into multiple lines for better:
let traceMsg = "\n\n\n-------------\nseed: " ++ show seed
++ "\nrule: " ++ show rule
++ "\nconfig: " ++ show config
++ "\noccurrences: " ++ show occurrences
++ "\nusers: " ++ show users
++ "\n-------------\n"
in Debug.trace traceMsg $
------------------------------------------------------------------------------------
seed: -7234408896601100696
rule: ExamRoomSurname
config: ExamAutoOccurrenceConfig {eaocMinimizeRooms = False, eaocFinenessCost = 1 % 5, eaocNudge = fromList [(SqlBackendKey {unSqlBackendKey = 4},-11)], eaocNudgeSize = 1 % 20}
occurrences: fromList [(SqlBackendKey {unSqlBackendKey = 1},5),(SqlBackendKey {unSqlBackendKey = 2},15),(SqlBackendKey {unSqlBackendKey = 3},10),(SqlBackendKey {unSqlBackendKey = 4},20),(SqlBackendKey {unSqlBackendKey = 5},10)]
users: fromList [(SqlBackendKey {unSqlBackendKey = 2},(User {userSurname = "Hamann", userDisplayName = "Feli Hamann", userDisplayEmail = "felix.hamann@campus.lmu.de", userEmail = "felix.hamann@campus.lmu.de", userIdent = "felix.hamann@campus.lmu.de", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Nothing, userFirstName = "Felix", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 2, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ';', csvUseCrLf = True, csvQuoting = QuoteAll, csvEncoding = CP1252}, csvTimestamp = False}, userSex = Just SexMale, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 4},(User {userSurname = "Musterstudent", userDisplayName = "Max Musterstudent", userDisplayEmail = "max@max.com", userEmail = "max@campus.lmu.de", userIdent = "max@campus.lmu.de", userAuthentication = AuthLDAP, userLastAuthentication = Just 2021-01-04 13:25:03.752361 UTC, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "1299", userFirstName = "Max", userTitle = Nothing, userMaxFavourites = 7, userMaxFavouriteTerms = 2, userTheme = ThemeAberdeenReds, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Just SexMale, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 5},(User {userSurname = "v\246n T\235rr\246r\191", userDisplayName = "Tina Tester", userDisplayEmail = "tina@tester.example", userEmail = "tester@campus.lmu.de", userIdent = "tester@campus.lmu.de", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "999", userFirstName = "Sabrina", userTitle = Just "Magister", userMaxFavourites = 5, userMaxFavouriteTerms = 2, userTheme = ThemeAberdeenReds, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Just SexNotApplicable, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 277},(User {userSurname = "Thomas", userDisplayName = "William Thomas", userDisplayEmail = "William.Thomas@example.invalid", userEmail = "William.Thomas@example.invalid", userIdent = "William.Thomas@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "41446818", userFirstName = "William", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 282},(User {userSurname = "Thompson", userDisplayName = "William Thompson", userDisplayEmail = "William.Thompson@example.invalid", userEmail = "William.Thompson@example.invalid", userIdent = "William.Thompson@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "61745950", userFirstName = "William", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 523},(User {userSurname = "Brown", userDisplayName = "Joseph Brown", userDisplayEmail = "Joseph.Brown@example.invalid", userEmail = "Joseph.Brown@example.invalid", userIdent = "Joseph.Brown@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "56956566", userFirstName = "Joseph", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 526},(User {userSurname = "Davis", userDisplayName = "Joseph Davis", userDisplayEmail = "Joseph.Davis@example.invalid", userEmail = "Joseph.Davis@example.invalid", userIdent = "Joseph.Davis@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "94367997", userFirstName = "Joseph", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 531},(User {userSurname = "Anderson", userDisplayName = "Joseph Anderson", userDisplayEmail = "Joseph.Anderson@example.invalid", userEmail = "Joseph.Anderson@example.invalid", userIdent = "Joseph.Anderson@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "31448209", userFirstName = "Joseph", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 551},(User {userSurname = "Allen", userDisplayName = "Joseph Allen", userDisplayEmail = "Joseph.Allen@example.invalid", userEmail = "Joseph.Allen@example.invalid", userIdent = "Joseph.Allen@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "63947610", userFirstName = "Joseph", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 651},(User {userSurname = "Brown", userDisplayName = "Charles Brown", userDisplayEmail = "Charles.Brown@example.invalid", userEmail = "Charles.Brown@example.invalid", userIdent = "Charles.Brown@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "34896034", userFirstName = "Charles", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 670},(User {userSurname = "Gonzalez", userDisplayName = "Charles Gonzalez", userDisplayEmail = "Charles.Gonzalez@example.invalid", userEmail = "Charles.Gonzalez@example.invalid", userIdent = "Charles.Gonzalez@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "17481093", userFirstName = "Charles", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 843},(User {userSurname = "Brown", userDisplayName = "Patricia Brown", userDisplayEmail = "Patricia.Brown@example.invalid", userEmail = "Patricia.Brown@example.invalid", userIdent = "Patricia.Brown@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "41986570", userFirstName = "Patricia", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 846},(User {userSurname = "Davis", userDisplayName = "Patricia Davis", userDisplayEmail = "Patricia.Davis@example.invalid", userEmail = "Patricia.Davis@example.invalid", userIdent = "Patricia.Davis@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "01036878", userFirstName = "Patricia", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 871},(User {userSurname = "Allen", userDisplayName = "Patricia Allen", userDisplayEmail = "Patricia.Allen@example.invalid", userEmail = "Patricia.Allen@example.invalid", userIdent = "Patricia.Allen@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "33463057", userFirstName = "Patricia", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 910},(User {userSurname = "Davis", userDisplayName = "Jennifer Davis", userDisplayEmail = "Jennifer.Davis@example.invalid", userEmail = "Jennifer.Davis@example.invalid", userIdent = "Jennifer.Davis@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "55795001", userFirstName = "Jennifer", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1048},(User {userSurname = "Martin", userDisplayName = "Elizabeth Martin", userDisplayEmail = "Elizabeth.Martin@example.invalid", userEmail = "Elizabeth.Martin@example.invalid", userIdent = "Elizabeth.Martin@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "20439978", userFirstName = "Elizabeth", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1056},(User {userSurname = "Clark", userDisplayName = "Elizabeth Clark", userDisplayEmail = "Elizabeth.Clark@example.invalid", userEmail = "Elizabeth.Clark@example.invalid", userIdent = "Elizabeth.Clark@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "43931689", userFirstName = "Elizabeth", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1102},(User {userSurname = "Davis", userDisplayName = "Barbara Davis", userDisplayEmail = "Barbara.Davis@example.invalid", userEmail = "Barbara.Davis@example.invalid", userIdent = "Barbara.Davis@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "61041809", userFirstName = "Barbara", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1103},(User {userSurname = "Garcia", userDisplayName = "Barbara Garcia", userDisplayEmail = "Barbara.Garcia@example.invalid", userEmail = "Barbara.Garcia@example.invalid", userIdent = "Barbara.Garcia@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "83831882", userFirstName = "Barbara", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1109},(User {userSurname = "Thomas", userDisplayName = "Barbara Thomas", userDisplayEmail = "Barbara.Thomas@example.invalid", userEmail = "Barbara.Thomas@example.invalid", userIdent = "Barbara.Thomas@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "03345760", userFirstName = "Barbara", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1120},(User {userSurname = "Clark", userDisplayName = "Barbara Clark", userDisplayEmail = "Barbara.Clark@example.invalid", userEmail = "Barbara.Clark@example.invalid", userIdent = "Barbara.Clark@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "58680705", userFirstName = "Barbara", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1124},(User {userSurname = "Perez", userDisplayName = "Barbara Perez", userDisplayEmail = "Barbara.Perez@example.invalid", userEmail = "Barbara.Perez@example.invalid", userIdent = "Barbara.Perez@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "41808680", userFirstName = "Barbara", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1220},(User {userSurname = "Perez", userDisplayName = "Anthony Jamesson Perez", userDisplayEmail = "Anthony.Jamesson.Perez@example.invalid", userEmail = "Anthony.Jamesson.Perez@example.invalid", userIdent = "Anthony.Jamesson.Perez@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "82814982", userFirstName = "Anthony Jamesson", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1355},(User {userSurname = "Brown", userDisplayName = "Paul Brown", userDisplayEmail = "Paul.Brown@example.invalid", userEmail = "Paul.Brown@example.invalid", userIdent = "Paul.Brown@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "74285536", userFirstName = "Paul", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1359},(User {userSurname = "Garcia", userDisplayName = "Paul Garcia", userDisplayEmail = "Paul.Garcia@example.invalid", userEmail = "Paul.Garcia@example.invalid", userIdent = "Paul.Garcia@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "86082169", userFirstName = "Paul", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1362},(User {userSurname = "Martinez", userDisplayName = "Paul Martinez", userDisplayEmail = "Paul.Martinez@example.invalid", userEmail = "Paul.Martinez@example.invalid", userIdent = "Paul.Martinez@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "85611156", userFirstName = "Paul", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1363},(User {userSurname = "Anderson", userDisplayName = "Paul Anderson", userDisplayEmail = "Paul.Anderson@example.invalid", userEmail = "Paul.Anderson@example.invalid", userIdent = "Paul.Anderson@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "55314499", userFirstName = "Paul", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1483},(User {userSurname = "Brown", userDisplayName = "Andrew Brown", userDisplayEmail = "Andrew.Brown@example.invalid", userEmail = "Andrew.Brown@example.invalid", userIdent = "Andrew.Brown@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "75667403", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1486},(User {userSurname = "Davis", userDisplayName = "Andrew Davis", userDisplayEmail = "Andrew.Davis@example.invalid", userEmail = "Andrew.Davis@example.invalid", userIdent = "Andrew.Davis@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "88120189", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1487},(User {userSurname = "Garcia", userDisplayName = "Andrew Garcia", userDisplayEmail = "Andrew.Garcia@example.invalid", userEmail = "Andrew.Garcia@example.invalid", userIdent = "Andrew.Garcia@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "20608609", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1491},(User {userSurname = "Anderson", userDisplayName = "Andrew Anderson", userDisplayEmail = "Andrew.Anderson@example.invalid", userEmail = "Andrew.Anderson@example.invalid", userIdent = "Andrew.Anderson@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "69381224", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1497},(User {userSurname = "Jackson", userDisplayName = "Andrew Jackson", userDisplayEmail = "Andrew.Jackson@example.invalid", userEmail = "Andrew.Jackson@example.invalid", userIdent = "Andrew.Jackson@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "08741828", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1504},(User {userSurname = "Clark", userDisplayName = "Andrew Clark", userDisplayEmail = "Andrew.Clark@example.invalid", userEmail = "Andrew.Clark@example.invalid", userIdent = "Andrew.Clark@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "66829818", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Nothing, userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1509},(User {userSurname = "Hall", userDisplayName = "Andrew Hall", userDisplayEmail = "Andrew.Hall@example.invalid", userEmail = "Andrew.Hall@example.invalid", userIdent = "Andrew.Hall@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "06810371", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1510},(User {userSurname = "Young", userDisplayName = "Andrew Young", userDisplayEmail = "Andrew.Young@example.invalid", userEmail = "Andrew.Young@example.invalid", userIdent = "Andrew.Young@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "03707580", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1511},(User {userSurname = "Allen", userDisplayName = "Andrew Allen", userDisplayEmail = "Andrew.Allen@example.invalid", userEmail = "Andrew.Allen@example.invalid", userIdent = "Andrew.Allen@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "77293111", userFirstName = "Andrew", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1515},(User {userSurname = "Brown", userDisplayName = "Andrew Jamesson Brown", userDisplayEmail = "Andrew.Jamesson.Brown@example.invalid", userEmail = "Andrew.Jamesson.Brown@example.invalid", userIdent = "Andrew.Jamesson.Brown@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "48707057", userFirstName = "Andrew Jamesson", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1534},(User {userSurname = "Gonzalez", userDisplayName = "Andrew Jamesson Gonzalez", userDisplayEmail = "Andrew.Jamesson.Gonzalez@example.invalid", userEmail = "Andrew.Jamesson.Gonzalez@example.invalid", userIdent = "Andrew.Jamesson.Gonzalez@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "76523377", userFirstName = "Andrew Jamesson", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing)),(SqlBackendKey {unSqlBackendKey = 1934},(User {userSurname = "Davis", userDisplayName = "Susan Davis", userDisplayEmail = "Susan.Davis@example.invalid", userEmail = "Susan.Davis@example.invalid", userIdent = "Susan.Davis@example.invalid", userAuthentication = AuthLDAP, userLastAuthentication = Nothing, userCreated = 2021-01-04 13:25:03.752361 UTC, userLastLdapSynchronisation = Nothing, userLdapPrimaryKey = Nothing, userTokensIssuedAfter = Nothing, userMatrikelnummer = Just "30728879", userFirstName = "Susan", userTitle = Nothing, userMaxFavourites = 12, userMaxFavouriteTerms = 12, userTheme = ThemeDefault, userDateTimeFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y %R"}, userDateFormat = DateTimeFormat {unDateTimeFormat = "%a %d %b %Y"}, userTimeFormat = DateTimeFormat {unDateTimeFormat = "%R"}, userDownloadFiles = False, userLanguages = Just (Languages ["de-de-formal","de-de","de"]),
userNotificationSettings = [(NTSubmissionRatedGraded,True),(NTSubmissionRated,True),(NTSubmissionEdited,True),(NTSubmissionUserCreated,True),(NTSubmissionUserDeleted,True),(NTSheetActive,True),(NTSheetHint,True),(NTSheetSolution,True),(NTSheetSoonInactive,False),(NTSheetInactive,True),(NTCorrectionsAssigned,True),(NTCorrectionsNotDistributed,True),(NTUserRightsUpdate,True),(NTUserAuthModeUpdate,True),(NTExamRegistrationActive,True),(NTExamRegistrationSoonInactive,False),(NTExamDeregistrationSoonInactive,True),(NTExamResult,True),(NTAllocationStaffRegister,True),(NTAllocationAllocation,True),(NTAllocationRegister,True),(NTAllocationNewCourse,False),(NTAllocationOutdatedRatings,True),(NTAllocationUnratedApplications,True),(NTAllocationResults,True),(NTExamOfficeExamResults,True),(NTExamOfficeExamResultsChanged,True),(NTCourseRegistered,True)], userWarningDays = 1209600s, userCsvOptions = CsvOptions {csvFormat = CsvFormatOptions {csvDelimiter = ',', csvUseCrLf = True, csvQuoting = QuoteMinimal, csvEncoding = UTF8}, csvTimestamp = False}, userSex = Nothing, userShowSex = False},Nothing))]
-}
fitsInRooms occurrences userMap
= all roomIsBigEnough $ Map.toAscList $ occurrenceMap userMap
where
roomIsBigEnough :: (ExamOccurrenceId, [UserId]) -> Bool
roomIsBigEnough (roomId, userIds) = case lookup roomId occurrences of
Nothing -> False
(Just capacity) -> length userIds <= fromIntegral capacity
showsCorrectRanges :: Map UserId (User, Maybe ExamOccurrenceId)
-> (Maybe (ExamOccurrenceMapping ExamOccurrenceId), Map UserId (Maybe ExamOccurrenceId))
-> Bool
showsCorrectRanges _users (Nothing, _userMap) = False
showsCorrectRanges users (Just (examOccurrenceMappingMapping -> m), userMap)
= all userFitsInRange $ Map.toAscList $ occurrenceMap userMap
where
userFitsInRange :: (ExamOccurrenceId, [UserId]) -> Bool
userFitsInRange (roomId, userIds) = flip all userIds $ \userId ->
case (Map.lookup roomId m, Map.lookup userId users) of
(Just ranges, Just (User {userSurname}, _fixedRoom))
-> any fitsInRange ranges
where
ciSurname :: [CI Char]
ciSurname = map CI.mk $ Text.unpack userSurname
fitsInRange :: ExamOccurrenceMappingDescription -> Bool
fitsInRange ExamOccurrenceMappingRange {eaomrStart, eaomrEnd}
= eaomrStart <= ciSurname && (take (length eaomrEnd) ciSurname <= eaomrEnd)
fitsInRange ExamOccurrenceMappingSpecial {}
= True -- FIXME what is the meaning of special?
_otherwise -> False