diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 70f005dfc..1ab2e4bf5 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -394,6 +394,10 @@ UpdatedAssignedCorrectorsAuto num@Int64: #{display num} Abgaben wurden unter den CouldNotAssignCorrectorsAuto num@Int64: #{display num} Abgaben konnten nicht automatisch zugewiesen werden: SelfCorrectors num@Int64: #{display num} Abgaben wurden Abgebenden als eigenem Korrektor zugeteilt! +AssignSubmissionExceptionNoCorrectors: Es sind keine Korrektoren eingestellt +AssignSubmissionExceptionNoCorrectorsByProportion: Es sind keine Korrektoren mit Anteil ungleich Null eingestellt +AssignSubmissionExceptionSubmissionsNotFound n@Int: #{tshow n} Abgaben konnten nicht gefunden werden + CorrectionsUploaded num@Int64: #{display num} Korrekturen wurden gespeichert: NoCorrectionsUploaded: In der hochgeladenen Datei wurden keine Korrekturen gefunden. diff --git a/src/Handler/Corrections.hs b/src/Handler/Corrections.hs index 78b5d187a..ca358a335 100644 --- a/src/Handler/Corrections.hs +++ b/src/Handler/Corrections.hs @@ -432,7 +432,18 @@ correctionsR whereClause displayColumns dbtFilterUI psValidator actions = do redirect currentRoute FormSuccess (CorrAutoSetCorrectorData shid, subs') -> do subs <- mapM decrypt $ Set.toList subs' - runDB $ do + let + assignExceptions :: AssignSubmissionException -> Handler () + assignExceptions NoCorrectors = addMessageI Error MsgAssignSubmissionExceptionNoCorrectors + assignExceptions NoCorrectorsByProportion = addMessageI Error MsgAssignSubmissionExceptionNoCorrectorsByProportion + assignExceptions (SubmissionsNotFound subIds) = do + subCIDs <- mapM encrypt . Set.toList $ toNullable subIds :: Handler [CryptoFileNameSubmission] + let errorModal = msgModal + [whamlet|_{MsgAssignSubmissionExceptionSubmissionsNotFound (length subCIDs)}|] + (Right $(widgetFile "messages/submissionsAssignNotFound")) + addMessageWidget Error errorModal + + handle assignExceptions . runDB $ do alreadyAssigned <- selectList [SubmissionId <-. subs, SubmissionRatingBy !=. Nothing] [] unless (null alreadyAssigned) $ do mr <- (toHtml . ) <$> getMessageRender diff --git a/src/Handler/Utils/Submission.hs b/src/Handler/Utils/Submission.hs index 8fededf3f..be6745a6a 100644 --- a/src/Handler/Utils/Submission.hs +++ b/src/Handler/Utils/Submission.hs @@ -57,7 +57,7 @@ import qualified Control.Monad.Catch as E (Handler(..)) data AssignSubmissionException = NoCorrectors | NoCorrectorsByProportion | SubmissionsNotFound (NonNull (Set SubmissionId)) - deriving (Typeable, Show) + deriving (Eq, Ord, Read, Show, Generic, Typeable) instance Exception AssignSubmissionException diff --git a/templates/messages/submissionsAssignNotFound.hamlet b/templates/messages/submissionsAssignNotFound.hamlet new file mode 100644 index 000000000..570e81459 --- /dev/null +++ b/templates/messages/submissionsAssignNotFound.hamlet @@ -0,0 +1,4 @@ +
#{toPathPiece cID}