feat(external-exams): add actions to EEUsers

This commit is contained in:
Sarah Vaupel 2020-03-02 17:21:07 +01:00
parent 5090cca98b
commit 2cf4895231
4 changed files with 25 additions and 3 deletions

View File

@ -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!
AllocationMissingPrioritiesIgnored: Bewerber, für die keine zentrale Priorität angegeben wird, werden bei der Vergabe ignoriert!

View File

@ -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
ParticipantsIntersectCourses: Courses

View File

@ -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)

View File

@ -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