diff --git a/messages/uniworx/de-de-formal.msg b/messages/uniworx/de-de-formal.msg index 39b865efb..0baaa428f 100644 --- a/messages/uniworx/de-de-formal.msg +++ b/messages/uniworx/de-de-formal.msg @@ -1729,6 +1729,9 @@ ExamUserSyncLastChange: Zuletzt geändert ExamUserMarkSynchronised: Prüfungsleistung als synchronisiert markieren ExternalExamUserMarkSynchronised: Prüfungsleistung als synchronisiert markieren ExternalExamUserMarkSynchronisedTip: Sollen beim CSV-Export automatisch alle heruntergeladenen Prüfungsleistungen als synchronisiert markiert werden? Diese Markierung dient als Hinweis an andere Prüfungsbeauftragte und die Kursverwalter, dass die Leistung an der korrekten Stelle vermerkt wurde und keiner weiteren Handlung bedarf. +ExternalExamUserEditOccurrence: Termin ändern +ExternalExamUserEditResult: Prüfungsergebnis ändern +ExternalExamUserDelete: Prüfungsteilnehmer entfernen ExamUserMarkSynchronisedCsv: Prüfungsleistungen beim Export als synchronisiert markieren ExamUserMarkSynchronisedCsvTip: Sollen beim CSV-Export automatisch alle heruntergeladenen Prüfungsleistungen als synchronisiert markiert werden? Diese Markierung dient als Hinweis an andere Prüfungsbeauftragte und die Kursverwalter, dass die Leistung an der korrekten Stelle vermerkt wurde und keiner weiteren Handlung bedarf. @@ -2370,4 +2373,4 @@ AllocationPrioritiesTitle tid@TermId ssh@SchoolId ash@AllocationShorthand: #{tid AllocationPrioritiesFile: CSV-Datei AllocationPrioritiesSunk num@Int64: Zentrale Prioritäten für #{num} Bewerber erfolgreich hinterlegt AllocationPrioritiesMissing num@Int64: Für #{num} Bewerber ist keine zentrale Priorität hinterlegt, da in der hochgeladenen CSV-Datei die #{pluralDE num "entsprechende Matrikelnummer" "entsprechenden Matrikelnummern"} nicht gefunden #{pluralDE num "wurde" "wurden"} -AllocationMissingPrioritiesIgnored: Bewerber, für die keine zentrale Priorität angegeben wird, werden bei der Vergabe ignoriert! \ No newline at end of file +AllocationMissingPrioritiesIgnored: Bewerber, für die keine zentrale Priorität angegeben wird, werden bei der Vergabe ignoriert! diff --git a/messages/uniworx/en-eu.msg b/messages/uniworx/en-eu.msg index 224cb684a..3c551257c 100644 --- a/messages/uniworx/en-eu.msg +++ b/messages/uniworx/en-eu.msg @@ -1721,6 +1721,9 @@ ExamUserSyncLastChange: Last changed ExamUserMarkSynchronised: Mark exam achievements as synchronised ExternalExamUserMarkSynchronised: Mark exam achievements as synchronised ExternalExamUserMarkSynchronisedTip: Should all exam achievements, that are included in the download, be marked as synchronised? Marking exam achievemnts as synchronised serves as a notice to other exam offices and course administrators, that the exam achievement has been dealt with properly such that no further action is required. +ExternalExamUserEditOccurrence: Edit occurrence +ExternalExamUserEditResult: Edit exam result +ExternalExamUserDelete: Delete exam participant ExamUserMarkSynchronisedCsv: Mark exam achievements as synchronised while exporting ExamUserMarkSynchronisedCsvTip: Should all exam achievements, that are included in the download, be marked as synchronised? Marking exam achievemnts as synchronised serves as a notice to other exam offices and course administrators, that the exam achievement has been dealt with properly such that no further action is required. @@ -2335,4 +2338,4 @@ InfoLecturerExams: Exams InfoLecturerAllocations: Central allocations ParticipantsIntersectCourseOption tid@TermId ssh@SchoolId coursen@CourseName: #{tid} - #{ssh} - #{coursen} -ParticipantsIntersectCourses: Courses \ No newline at end of file +ParticipantsIntersectCourses: Courses diff --git a/src/Handler/ExamOffice/ExternalExam.hs b/src/Handler/ExamOffice/ExternalExam.hs index db65d9c8c..c3ae6c290 100644 --- a/src/Handler/ExamOffice/ExternalExam.hs +++ b/src/Handler/ExamOffice/ExternalExam.hs @@ -21,6 +21,9 @@ postEEGradesR tid ssh coursen examn = do return . Just $ do addMessageI Success $ MsgExamUserMarkedSynchronised (length selectedResults) redirect $ EExamR tid ssh coursen examn EEGradesR + (ExternalExamUserEditOccurrenceData _, _) -> error "EditOccurrence not implemented" + (ExternalExamUserEditResultData _, _) -> error "EditResult not implemented" + (ExternalExamUserDeleteData, _) -> error "Delete not implemented" return (usersResult', examUsersTable) diff --git a/src/Handler/Utils/ExternalExam/Users.hs b/src/Handler/Utils/ExternalExam/Users.hs index 545a5bbe2..c3b27b7cd 100644 --- a/src/Handler/Utils/ExternalExam/Users.hs +++ b/src/Handler/Utils/ExternalExam/Users.hs @@ -107,6 +107,9 @@ instance CsvColumnsExplained ExternalExamUserTableCsv where data ExternalExamUserAction = ExternalExamUserMarkSynchronised + | ExternalExamUserEditOccurrence + | ExternalExamUserEditResult + | ExternalExamUserDelete deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic, Typeable) instance Universe ExternalExamUserAction instance Finite ExternalExamUserAction @@ -115,6 +118,9 @@ embedRenderMessage ''UniWorX ''ExternalExamUserAction id data ExternalExamUserActionData = ExternalExamUserMarkSynchronisedData + | ExternalExamUserEditOccurrenceData UTCTime + | ExternalExamUserEditResultData ExamResultPassedGrade + | ExternalExamUserDeleteData newtype ExternalExamUserCsvExportDataGrades = ExternalExamUserCsvExportDataGrades { csvEEUserMarkSynchronised :: Bool @@ -303,7 +309,14 @@ makeExternalExamUsersTable mode (Entity eeId ExternalExam{..}) = do (res, formWgt) <- multiActionM actionMap (fslI MsgAction) Nothing csrf let formRes = (, mempty) . First . Just <$> res return (formRes, formWgt) - _other -> \csrf -> return (FormMissing, toWidget csrf) + EEUMUsers -> \csrf -> do + let + actionMap :: Map ExternalExamUserAction (AForm Handler ExternalExamUserActionData) + actionMap = Map.fromList + [] + (res, formWgt) <- multiActionM actionMap (fslI MsgAction) Nothing csrf + let formRes = (, mempty) . First . Just <$> res + return (formRes, formWgt) , dbParamsFormEvaluate = liftHandler . runFormPost , dbParamsFormResult = id , dbParamsFormIdent = def