From 92da5a31239159bda6c8a9b574861ced8f7ee373 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 24 Nov 2018 15:30:18 +0100 Subject: [PATCH] minor cleanup --- config/settings.yml | 2 +- messages/uniworx/de.msg | 16 ++++++++-------- src/Foundation.hs | 30 ++++++++++++++++++++++-------- src/Handler/Corrections.hs | 14 ++++++++++---- 4 files changed, 41 insertions(+), 21 deletions(-) diff --git a/config/settings.yml b/config/settings.yml index b6d418bda..60c1f2c33 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -9,7 +9,7 @@ port: "_env:PORT:3000" ip-from-header: "_env:IP_FROM_HEADER:false" approot: "_env:APPROOT:http://localhost:3000" mail-from: - name: "_env:MAILFROM_NAME:Uni2Work" + name: "_env:MAILFROM_NAME:Uni2work" email: "_env:MAILFROM_EMAIL:uniworx@localhost" mail-object-domain: "_env:MAILOBJECT_DOMAIN:localhost" mail-verp: diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 9fb473237..e45a4c0d1 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -206,8 +206,8 @@ LoginTitle: Authentifizierung ProfileHeading: Benutzereinstellungen ProfileDataHeading: Gespeicherte Benutzerdaten ImpressumHeading: Impressum -SystemMessageHeading: Uni2Work Statusmeldung -SystemMessageListHeading: Uni2Work Statusmeldungen +SystemMessageHeading: Uni2work Statusmeldung +SystemMessageListHeading: Uni2work Statusmeldungen NumCourses num@Int64: #{display num} Kurse CloseAlert: Schliessen @@ -322,8 +322,8 @@ SubmissionFilesIgnored: Es wurden Dateien in der hochgeladenen Abgabe ignoriert: SubmissionDoesNotExist smid@CryptoFileNameSubmission: Es existiert keine Abgabe mit Nummer #{toPathPiece smid}. LDAPLoginTitle: Campus-Login -PWHashLoginTitle: Uni2Work-Login -PWHashLoginNote: Dieses Formular ist zu verwenden, wenn Sie vom Uni2Work-Team spezielle Logindaten erhalten haben. Normale Nutzer melden sich bitte via Campus-Login an! +PWHashLoginTitle: Uni2work-Login +PWHashLoginNote: Dieses Formular ist zu verwenden, wenn Sie vom Uni2work-Team spezielle Logindaten erhalten haben. Normale Nutzer melden sich bitte via Campus-Login an! DummyLoginTitle: Development-Login CorrectorNormal: Normal @@ -342,7 +342,7 @@ SheetNoSubmissions: Keine Abgabe SheetCorrectorSubmissions: Abgabe extern mit Pseudonym SheetUserSubmissions: Direkte Abgabe -SheetCorrectorSubmissionsTip: Abgabe erfolgt über ein Uni2Work-externes Verfahren (zumeist in Papierform durch Einwurf) unter Angabe eines persönlichen Pseudonyms. Korrektorn können mithilfe des Pseudonyms später Korrekturergebnisse in Uni2Work eintragen, damit Sie sie einsehen können. +SheetCorrectorSubmissionsTip: Abgabe erfolgt über ein Uni2work-externes Verfahren (zumeist in Papierform durch Einwurf) unter Angabe eines persönlichen Pseudonyms. Korrektorn können mithilfe des Pseudonyms später Korrekturergebnisse in Uni2work eintragen, damit Sie sie einsehen können. SubmissionNoUploadExpected: Es ist keine Abgabe von Dateien vorgesehen. @@ -352,8 +352,8 @@ FieldSecondary: Nebenfach MailTestFormEmail: Email-Addresse MailTestFormLanguages: Spracheinstellungen -MailTestSubject: Uni2Work Test-Email -MailTestContent: Dies ist eine Test-Email versandt von Uni2Work. Von Ihrer Seite ist keine Handlung notwendig. +MailTestSubject: Uni2work Test-Email +MailTestContent: Dies ist eine Test-Email versandt von Uni2work. Von Ihrer Seite ist keine Handlung notwendig. MailTestDateTime: Test der Datumsformattierung: German: Deutsch @@ -418,7 +418,7 @@ UnknownPseudonym pseudonym@Text: Unbekanntes Pseudonym "#{pseudonym}" CorrectionPseudonyms: Abgaben-Pseudonyme CorrectionPseudonymsTip: Eine Abgabe pro Zeile, bei Gruppenabgaben mehrere Pseudonyme (komma-separiert) innerhalb einer Zeile PseudonymSheet: Übungsblatt -CorrectionPseudonymSheet termDesc@Text csh@CourseShorthand shn@SheetName: #{termDesc} > #{csh} > #{shn} +CorrectionPseudonymSheet termDesc@Text csh@CourseShorthand shn@SheetName: #{termDesc} » #{csh} » #{shn} SheetGroupTooLarge sheetGroupDesc@Text: Abgabegruppe zu groß: #{sheetGroupDesc} SheetNoRegisteredGroup sheetGroupDesc@Text: "#{sheetGroupDesc}" sind nicht als Gruppe registriert SheetAmbiguousRegisteredGroup sheetGroupDesc@Text: "#{sheetGroupDesc}" enthält Mitglieder aus verschiedenen registrierten Gruppen diff --git a/src/Foundation.hs b/src/Foundation.hs index da72da1af..0722e2ba5 100644 --- a/src/Foundation.hs +++ b/src/Foundation.hs @@ -1312,12 +1312,19 @@ pageActions (CorrectionsR) = , menuItemModal = True , menuItemAccessCallback' = runDB $ do uid <- liftHandlerT requireAuthId - [E.Value corrCount] <- E.select . E.from $ \(sheet `E.InnerJoin` sheetCorrector) -> do - E.on $ sheetCorrector E.^. SheetCorrectorSheet E.==. sheet E.^. SheetId + [E.Value sheetCount] <- E.select . E.from $ \(course `E.InnerJoin` sheet) -> do + E.on $ course E.^. CourseId E.==. sheet E.^. SheetCourse + let + isCorrector = E.exists . E.from $ \sheetCorrector -> E.where_ + $ sheetCorrector E.^. SheetCorrectorUser E.==. E.val uid + E.&&. sheetCorrector E.^. SheetCorrectorSheet E.==. sheet E.^. SheetId + isLecturer = E.exists . E.from $ \lecturer -> E.where_ + $ lecturer E.^. LecturerUser E.==. E.val uid + E.&&. lecturer E.^. LecturerCourse E.==. course E.^. CourseId E.where_ $ sheet E.^. SheetSubmissionMode E.==. E.val CorrectorSubmissions - E.&&. sheetCorrector E.^. SheetCorrectorUser E.==. E.val uid + E.&&. ( isCorrector E.||. isLecturer ) return E.countRows - return $ (corrCount :: Int) /= 0 + return $ (sheetCount :: Int) /= 0 } , MenuItem { menuItemType = PageActionPrime @@ -1345,12 +1352,19 @@ pageActions (CorrectionsGradeR) = , menuItemModal = True , menuItemAccessCallback' = runDB $ do uid <- liftHandlerT requireAuthId - [E.Value corrCount] <- E.select . E.from $ \(sheet `E.InnerJoin` sheetCorrector) -> do - E.on $ sheetCorrector E.^. SheetCorrectorSheet E.==. sheet E.^. SheetId + [E.Value sheetCount] <- E.select . E.from $ \(course `E.InnerJoin` sheet) -> do + E.on $ course E.^. CourseId E.==. sheet E.^. SheetCourse + let + isCorrector = E.exists . E.from $ \sheetCorrector -> E.where_ + $ sheetCorrector E.^. SheetCorrectorUser E.==. E.val uid + E.&&. sheetCorrector E.^. SheetCorrectorSheet E.==. sheet E.^. SheetId + isLecturer = E.exists . E.from $ \lecturer -> E.where_ + $ lecturer E.^. LecturerUser E.==. E.val uid + E.&&. lecturer E.^. LecturerCourse E.==. course E.^. CourseId E.where_ $ sheet E.^. SheetSubmissionMode E.==. E.val CorrectorSubmissions - E.&&. sheetCorrector E.^. SheetCorrectorUser E.==. E.val uid + E.&&. ( isCorrector E.||. isLecturer ) return E.countRows - return $ (corrCount :: Int) /= 0 + return $ (sheetCount :: Int) /= 0 } ] pageActions _ = [] diff --git a/src/Handler/Corrections.hs b/src/Handler/Corrections.hs index 67bba1394..01d9ff18a 100644 --- a/src/Handler/Corrections.hs +++ b/src/Handler/Corrections.hs @@ -604,11 +604,17 @@ getCorrectionsCreateR, postCorrectionsCreateR :: Handler Html getCorrectionsCreateR = postCorrectionsCreateR postCorrectionsCreateR = do uid <- requireAuthId - let sheetOptions = mkOptList <=< runDB $ E.select . E.from $ \(course `E.InnerJoin` sheet `E.InnerJoin` sheetCorrector) -> do - E.on $ sheet E.^. SheetId E.==. sheetCorrector E.^. SheetCorrectorSheet + let sheetOptions = mkOptList <=< runDB $ E.select . E.from $ \(course `E.InnerJoin` sheet) -> do E.on $ course E.^. CourseId E.==. sheet E.^. SheetCourse - E.where_ $ sheetCorrector E.^. SheetCorrectorUser E.==. E.val uid - E.&&. sheet E.^. SheetSubmissionMode E.==. E.val CorrectorSubmissions + let + isCorrector = E.exists . E.from $ \sheetCorrector -> E.where_ + $ sheetCorrector E.^. SheetCorrectorUser E.==. E.val uid + E.&&. sheetCorrector E.^. SheetCorrectorSheet E.==. sheet E.^. SheetId + isLecturer = E.exists . E.from $ \lecturer -> E.where_ + $ lecturer E.^. LecturerUser E.==. E.val uid + E.&&. lecturer E.^. LecturerCourse E.==. course E.^. CourseId + E.where_ $ sheet E.^. SheetSubmissionMode E.==. E.val CorrectorSubmissions + E.&&. ( isCorrector E.||. isLecturer ) E.orderBy [E.desc $ course E.^. CourseTerm, E.asc $ course E.^. CourseShorthand, E.desc $ sheet E.^. SheetActiveFrom] return (sheet E.^. SheetId, course E.^. CourseTerm, course E.^. CourseShorthand, sheet E.^. SheetName) mkOptList :: [(E.Value SheetId, E.Value TermId, E.Value CourseShorthand, E.Value SheetName)] -> Handler (OptionList SheetId)