diff --git a/messages/uniworx/de-de-formal.msg b/messages/uniworx/de-de-formal.msg index f31a52272..459a50be3 100644 --- a/messages/uniworx/de-de-formal.msg +++ b/messages/uniworx/de-de-formal.msg @@ -2046,6 +2046,7 @@ MailTitleChangeUserDisplayEmail displayName@Text: #{displayName} möchte diese E ExamOfficeOptOutsChanged: Zuständige Prüfungsbeauftragte erfolgreich angepasst +ExamCloseHeading: Klausur abschließen BtnCloseExam: Klausur abschließen ExamCloseTip: Wenn eine Klausur abgeschlossen wird, werden Prüfungsbeauftragte, die im System Noten einsehen, benachrichtigt und danach bei Änderungen informiert. ExamCloseReminder: Bitte schließen Sie die Klausur frühstmöglich, sobald die Prüfungsleistungen sich voraussichtlich nicht mehr ändern werden. Z.B. direkt nach der Klausureinsicht. @@ -2273,11 +2274,12 @@ ExternalExamExists coursen@CourseName examn@ExamName: Prüfung „#{examn}“ f ExternalExamCreated coursen@CourseName examn@ExamName: Prüfung „#{examn}“ für Kurs „#{coursen}“ erfolgreich angelegt. ExternalExamEdited coursen@CourseName examn@ExamName: Prüfung „#{examn}“ für Kurs „#{coursen}“ erfolgreich bearbeitet. +ExamAutoOccurrenceHeading: Automatische Raumverteilung ExamAutoOccurrenceMinimizeRooms: Verwendete Räume minimieren ExamAutoOccurrenceMinimizeRoomsTip: Soll, für die Aufteilung, die Liste an Räumen zunächst reduziert werden, sodass nur so wenige Räume verwendet werden, wie nötig (größte zuerst)? ExamAutoOccurrenceOccurrencesChangedInFlight: Raumliste wurde verändert ExamAutoOccurrenceParticipantsAssigned num@Int64: Verteilungstabelle erfolgreich gespeichert und #{num} Teilnehmer zugewiesen -TitleExamAutoOccurrence tid@TermId ssh@SchoolId csh@CourseShorthand examn@ExamName: #{tid}-#{ssh}-#{csh} #{examn}: Automatische Raumverteilung +TitleExamAutoOccurrence tid@TermId ssh@SchoolId csh@CourseShorthand examn@ExamName: #{tid} - #{ssh} - #{csh} #{examn}: Automatische Raumverteilung BtnExamAutoOccurrenceCalculate: Verteilung berechnen BtnExamAutoOccurrenceAccept: Verteilung akzeptieren ExamRoomMappingSurname: Nachnamen beginnend mit diff --git a/src/Handler/Exam/Show.hs b/src/Handler/Exam/Show.hs index 1bb67c713..febf7c4f3 100644 --- a/src/Handler/Exam/Show.hs +++ b/src/Handler/Exam/Show.hs @@ -5,6 +5,10 @@ module Handler.Exam.Show import Import import Handler.Exam.Register +import Handler.Exam.AutoOccurrence (examAutoOccurrenceCalculateWidget) + +import Handler.ExamOffice.Exam (examCloseWidget) + import Data.Map ((!?)) import qualified Data.Map as Map @@ -22,7 +26,7 @@ getEShowR tid ssh csh examn = do cTime <- liftIO getCurrentTime mUid <- maybeAuthId - (Entity _ Exam{..}, examParts, examVisible, (gradingVisible, gradingShown), (occurrenceAssignmentsVisible, occurrenceAssignmentsShown), results, result, bonus, occurrences, (registered, mayRegister), lecturerInfoShown) <- runDB $ do + (Entity eId Exam{..}, examParts, examVisible, (gradingVisible, gradingShown), (occurrenceAssignmentsVisible, occurrenceAssignmentsShown), results, result, bonus, occurrences, (registered, mayRegister), lecturerInfoShown) <- runDB $ do exam@(Entity eId Exam{..}) <- fetchExam tid ssh csh examn let examVisible = NTop (Just cTime) >= NTop examVisibleFrom @@ -76,6 +80,8 @@ getEShowR tid ssh csh examn = do let occurrenceNamesShown = lecturerInfoShown partNumbersShown = lecturerInfoShown examClosedShown = lecturerInfoShown + showCloseWidget = lecturerInfoShown + showAutoOccurrenceCalculateWidget = lecturerInfoShown sumMaxPoints = sum [ fromRational examPartWeight * mPoints | Entity _ ExamPart{..} <- examParts, let Just mPoints = examPartMaxPoints ] @@ -147,6 +153,8 @@ getEShowR tid ssh csh examn = do markUnregisteredOccurrences mOcc = occurrenceAssignmentsShown && hasRegistration && isn't _Just (registerWidget mOcc) showOccurrenceMappingColumn = examOccurrenceRuleAutomatic examOccurrenceRule && occurrenceAssignmentsShown && is _Just examExamOccurrenceMapping + closeWgt <- examCloseWidget (SomeRoute $ CExamR tid ssh csh examn EUsersR) eId + let heading = prependCourseTitle tid ssh csh $ CI.original examName siteLayoutMsg heading $ do diff --git a/templates/exam-show.hamlet b/templates/exam-show.hamlet index 0b6bde895..ac8653319 100644 --- a/templates/exam-show.hamlet +++ b/templates/exam-show.hamlet @@ -88,6 +88,19 @@ $maybe desc <- examDescription
_{MsgExamRegistration}
^{registerWdgt} +$if showCloseWidget && is _Nothing examClosed +
+

+ _{MsgExamCloseHeading} + \ ^{isVisible False} + ^{closeWgt} +$if examOccurrenceRuleAutomatic examOccurrenceRule && showAutoOccurrenceCalculateWidget +
+

+ _{MsgExamAutoOccurrenceHeading} + \ ^{isVisible False} + ^{examAutoOccurrenceCalculateWidget tid ssh csh examn} + $if not (null occurrences)
diff --git a/templates/exam-users.hamlet b/templates/exam-users.hamlet index 68cc39d21..9e85b0605 100644 --- a/templates/exam-users.hamlet +++ b/templates/exam-users.hamlet @@ -1,8 +1,11 @@ $newline never
+ $if is _Nothing examClosed +

_{MsgExamCloseHeading} ^{closeWgt} $if examOccurrenceRuleAutomatic examOccurrenceRule
+

_{MsgExamAutoOccurrenceHeading} ^{examAutoOccurrenceCalculateWidget tid ssh csh examn}
$if computedValues