feat(corrections): override rating_done & documentation
Fixes #525 Fixes #274
This commit is contained in:
parent
af7947328d
commit
bbbfa946e1
@ -636,8 +636,8 @@ CorrectionTime: Korrekturdauer
|
||||
AssignSubmissionsRandomWarning: Die Zuteilungsvorschau kann von der tatsächlichen Zuteilung abweichen, wenn mehrere Blätter auf einmal zugeteilt werden, da beim Ausgleich der Kontigente nur bereits zugeteilte Abgaben berücksichtigt werden. Da es ein randomisierte Prozess ist, kann es auch bei einzelnen Blättern gerinfgügige Abweichungen geben.
|
||||
AssignSubmissionsAssignableSheets: Korrekturen verteilen für:
|
||||
|
||||
CorrectionsUploaded num@Int64: #{num} Korrekturen wurden gespeichert:
|
||||
NoCorrectionsUploaded: In der hochgeladenen Datei wurden keine Korrekturen gefunden.
|
||||
CorrectionsUploaded num@Int64: #{num} #{pluralDE num "Korrektur wurde" "Korrekturen wurden"} gespeichert
|
||||
NoCorrectionsUploaded: In den hochgeladenen Dateien wurden keine Korrekturen gefunden.
|
||||
|
||||
RatingBy: Korrigiert von
|
||||
HasCorrector: Korrektor zugeteilt
|
||||
@ -2632,4 +2632,10 @@ RatingYAMLChangePointsComment: TODO: Hier die Punktezahl statt null eintragen (b
|
||||
RatingYAMLChangePassedComment: TODO: Hier true oder false statt null eintragen (true entspricht Bestanden)
|
||||
RatingYAMLChangeDoneComment: TODO: Von false auf true setzen, sobald Bewertung abgeschlossen; sonst Korrektur für die Studierenden nicht sichtbar und keine Anrechnung auf Klausurbonus
|
||||
RatingYAMLChangeCommentComment: TODO: Korrektur-Kommentar für die Studierenden unterhalb der Abtrennung (...) eintragen
|
||||
RatingYAMLSubmissionIdComment: Abgabenummer; wird beim Hochladen mit dem Dateinamen abgeglichen
|
||||
RatingYAMLSubmissionIdComment: Abgabenummer; wird beim Hochladen mit dem Dateinamen abgeglichen
|
||||
|
||||
SubmissionDoneNever: Nie
|
||||
SubmissionDoneByFile: Je nach Bewertungsdatei
|
||||
SubmissionDoneAlways: Immer
|
||||
CorrUploadSubmissionDoneMode: Bewertung abgeschlossen
|
||||
CorrUploadSubmissionDoneModeTip: Sollen hochgeladene Korrekturen als abgeschlossen markiert werden? Bewertungen sind erst für Studierende sichtbar und zählen gegen Examboni, wenn sie abgeschlossen sind.
|
||||
@ -634,8 +634,8 @@ CorrectionTime: Correction time
|
||||
AssignSubmissionsRandomWarning: The assignment preview might be different from the actual assignment if multiple sheets are being distributed. This is due to the fact that only assigned submissions are considered when handling corrector-deficits. Due to this being a randomised process small differences are also possible for a single sheet.
|
||||
AssignSubmissionsAssignableSheets: Distribute corrections for:
|
||||
|
||||
CorrectionsUploaded num: Successfully saved #{num} #{pluralEN num "correction" "corrections"}:
|
||||
NoCorrectionsUploaded: No corrections could be found within the uploaded file.
|
||||
CorrectionsUploaded num: Successfully saved #{num} #{pluralEN num "correction" "corrections"}
|
||||
NoCorrectionsUploaded: No corrections could be found within the uploaded files.
|
||||
|
||||
RatingBy: Marked by
|
||||
HasCorrector: Corrector assigned
|
||||
@ -2633,3 +2633,9 @@ RatingYAMLChangePassedComment: TODO: Set true or false instead of null (true mea
|
||||
RatingYAMLChangeDoneComment: TODO: Set to true instead of false, when correction is finished; otherwise correction will not be visible to students and won't be counted for exam bonus
|
||||
RatingYAMLChangeCommentComment: TODO: Enter correction comment after the separator below (...)
|
||||
RatingYAMLSubmissionIdComment: Submission id; will be compared to the filename during upload
|
||||
|
||||
SubmissionDoneNever: Never
|
||||
SubmissionDoneByFile: According to correction file
|
||||
SubmissionDoneAlways: Always
|
||||
CorrUploadSubmissionDoneMode: Rating finished
|
||||
CorrUploadSubmissionDoneModeTip: Should uploaded corrections be marked as finished? The rating is only visible to the submittors and considered for any exam bonuses if it is finished.
|
||||
|
||||
2
routes
2
routes
@ -60,7 +60,7 @@
|
||||
/health HealthR GET !free
|
||||
/instance InstanceR GET !free
|
||||
/info InfoR GET !free
|
||||
/info/lecturer InfoLecturerR GET !lecturer
|
||||
/info/lecturer InfoLecturerR GET !free
|
||||
/info/legal LegalR GET !free
|
||||
/info/allocation InfoAllocationR GET !free
|
||||
/info/glossary GlossaryR GET !free
|
||||
|
||||
@ -2881,7 +2881,7 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
|
||||
, NavLink
|
||||
{ navLabel = MsgInfoLecturerTitle
|
||||
, navRoute = InfoLecturerR
|
||||
, navAccess' = return True
|
||||
, navAccess' = hasWriteAccessTo CourseNewR
|
||||
, navType = NavTypeLink { navModal = False }
|
||||
, navQuick' = mempty
|
||||
, navForceActive = False
|
||||
@ -3206,7 +3206,7 @@ pageActions InfoR = return
|
||||
{ navLink = NavLink
|
||||
{ navLabel = MsgInfoLecturerTitle
|
||||
, navRoute = InfoLecturerR
|
||||
, navAccess' = return True
|
||||
, navAccess' = hasWriteAccessTo CourseNewR
|
||||
, navType = NavTypeLink { navModal = False }
|
||||
, navQuick' = mempty
|
||||
, navForceActive = False
|
||||
@ -3252,7 +3252,7 @@ pageActions VersionR = return
|
||||
{ navLink = NavLink
|
||||
{ navLabel = MsgInfoLecturerTitle
|
||||
, navRoute = InfoLecturerR
|
||||
, navAccess' = return True
|
||||
, navAccess' = hasWriteAccessTo CourseNewR
|
||||
, navType = NavTypeLink { navModal = False }
|
||||
, navQuick' = mempty
|
||||
, navForceActive = False
|
||||
@ -3335,7 +3335,7 @@ pageActions HelpR = return
|
||||
{ navLink = NavLink
|
||||
{ navLabel = MsgInfoLecturerTitle
|
||||
, navRoute = InfoLecturerR
|
||||
, navAccess' = return True
|
||||
, navAccess' = hasWriteAccessTo CourseNewR
|
||||
, navType = NavTypeLink { navModal = False }
|
||||
, navQuick' = mempty
|
||||
, navForceActive = False
|
||||
|
||||
@ -16,27 +16,57 @@ import Data.List (genericLength)
|
||||
import qualified Data.Conduit.List as C
|
||||
|
||||
|
||||
data SubmissionDoneMode
|
||||
= SubmissionDoneNever
|
||||
| SubmissionDoneByFile
|
||||
| SubmissionDoneAlways
|
||||
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Typeable)
|
||||
deriving anyclass (Universe, Finite)
|
||||
nullaryPathPiece ''SubmissionDoneMode $ camelToPathPiece' 2
|
||||
embedRenderMessage ''UniWorX ''SubmissionDoneMode id
|
||||
|
||||
|
||||
explainSubmissionDoneMode :: SubmissionDoneMode -> MaybeT Handler Widget
|
||||
explainSubmissionDoneMode SubmissionDoneNever = return $(i18nWidgetFile "submission-done-tip/never")
|
||||
explainSubmissionDoneMode SubmissionDoneAlways = return $(i18nWidgetFile "submission-done-tip/always")
|
||||
explainSubmissionDoneMode SubmissionDoneByFile = return $(i18nWidgetFile "submission-done-tip/by-file")
|
||||
|
||||
|
||||
getCorrectionsUploadR, postCorrectionsUploadR :: Handler Html
|
||||
getCorrectionsUploadR = postCorrectionsUploadR
|
||||
postCorrectionsUploadR = do
|
||||
((uploadRes, upload), uploadEncoding) <- runFormPost . identifyForm FIDcorrectionsUpload . renderAForm FormStandard $
|
||||
areq (zipFileField True Nothing) (fslI MsgCorrUploadField) Nothing
|
||||
((uploadRes, upload), uploadEncoding) <- runFormPost . identifyForm FIDcorrectionsUpload . renderAForm FormStandard $ (,)
|
||||
<$> areq (zipFileField True Nothing) (fslI MsgCorrUploadField) Nothing
|
||||
<*> apopt (explainedSelectionField Nothing $ explainOptionList optionsFinite explainSubmissionDoneMode) (fslI MsgCorrUploadSubmissionDoneMode & setTooltip MsgCorrUploadSubmissionDoneModeTip) (Just SubmissionDoneByFile)
|
||||
|
||||
case uploadRes of
|
||||
FormMissing -> return ()
|
||||
FormFailure errs -> mapM_ (addMessage Error . toHtml) errs
|
||||
FormSuccess files -> do
|
||||
uid <- requireAuthId
|
||||
mbSubs <- msgSubmissionErrors . runDBJobs . runConduit $ transPipe (lift . lift) files .| C.mapM (either get404 return) .| extractRatingsMsg .| sinkMultiSubmission uid True
|
||||
case mbSubs of
|
||||
Nothing -> return ()
|
||||
(Just subs)
|
||||
| null subs -> addMessageI Warning MsgNoCorrectionsUploaded
|
||||
| otherwise -> do
|
||||
subs' <- traverse (\x -> (,) <$> encrypt x <*> encrypt x) $ Set.toList subs :: Handler [(CryptoFileNameSubmission, CryptoUUIDSubmission)]
|
||||
let trigger = [whamlet|_{MsgCorrectionsUploaded (genericLength subs')}|]
|
||||
content = Right $(widgetFile "messages/correctionsUploaded")
|
||||
addMessageModal Success trigger content
|
||||
formResult uploadRes $ \(files, doneMode) -> do
|
||||
let
|
||||
setDone (Right (subId, rating))
|
||||
= Right ( subId
|
||||
, rating & _ratingDone %~ setDone'
|
||||
)
|
||||
where setDone' = case doneMode of
|
||||
SubmissionDoneNever -> const False
|
||||
SubmissionDoneByFile -> id
|
||||
SubmissionDoneAlways -> const True
|
||||
setDone other = other
|
||||
|
||||
uid <- requireAuthId
|
||||
mbSubs <- msgSubmissionErrors . runDBJobs . runConduit $
|
||||
transPipe (lift . lift) files
|
||||
.| C.mapM (either get404 return)
|
||||
.| extractRatingsMsg
|
||||
.| C.map setDone
|
||||
.| sinkMultiSubmission uid True
|
||||
|
||||
forM_ mbSubs $ \subs -> if
|
||||
| null subs -> addMessageI Warning MsgNoCorrectionsUploaded
|
||||
| otherwise -> do
|
||||
subs' <- traverse (\x -> (,) <$> encrypt x <*> encrypt x) $ Set.toList subs :: Handler [(CryptoFileNameSubmission, CryptoUUIDSubmission)]
|
||||
let trigger = [whamlet|_{MsgCorrectionsUploaded (genericLength subs')}|]
|
||||
content = Right $(widgetFile "messages/correctionsUploaded")
|
||||
addMessageModal Success trigger content
|
||||
redirect CorrectionsR
|
||||
|
||||
let uploadForm = wrapForm upload def
|
||||
{ formAction = Just $ SomeRoute CorrectionsUploadR
|
||||
|
||||
@ -6,6 +6,7 @@ module Utils.Lens ( module Utils.Lens ) where
|
||||
|
||||
import Import.NoModel
|
||||
import Model
|
||||
import Model.Rating
|
||||
import qualified ClassyPrelude.Yesod as Yesod (HasHttpManager(..))
|
||||
|
||||
import Control.Lens as Utils.Lens
|
||||
@ -230,6 +231,8 @@ makeLenses_ ''ExternalExam
|
||||
makeLenses_ ''ExternalExamOfficeSchool
|
||||
makeLenses_ ''ExternalExamStaff
|
||||
makeLenses_ ''ExternalExamResult
|
||||
|
||||
makeLenses_ ''Rating'
|
||||
|
||||
|
||||
-- makeClassy_ ''Load
|
||||
|
||||
@ -1,5 +1,12 @@
|
||||
$newline never
|
||||
<dl .deflist>
|
||||
<dt .deflist__dt>
|
||||
^{formatGregorianW 2020 06 17}
|
||||
<dd .deflist__dd>
|
||||
<ul>
|
||||
<li>
|
||||
Neues (YAML-basiertes) Format für Bewertungsdateien
|
||||
|
||||
<dt .deflist__dt>
|
||||
^{formatGregorianW 2020 06 14}
|
||||
<dd .deflist__dd>
|
||||
|
||||
@ -1,5 +1,12 @@
|
||||
$newline never
|
||||
<dl .deflist>
|
||||
<dt .deflist__dt>
|
||||
^{formatGregorianW 2020 06 17}
|
||||
<dd .deflist__dd>
|
||||
<ul>
|
||||
<li>
|
||||
New (YAML-based) format for correction files
|
||||
|
||||
<dt .deflist__dt>
|
||||
^{formatGregorianW 2020 06 14}
|
||||
<dd .deflist__dd>
|
||||
|
||||
@ -3,15 +3,9 @@ $newline never
|
||||
<section>
|
||||
<p>
|
||||
|
||||
Das Hochladen einer Korrekturen markiert die entsprechende Abgabe #
|
||||
automatisch als "korrigiert" (Bewertung abgeschlossen), falls #
|
||||
Ihnen die Abgabe zugeteilt gewesen war.
|
||||
|
||||
<p>
|
||||
|
||||
Lädt jedoch ein Assistent Korrekturen hoch, welche anderen #
|
||||
Korrektoren oder noch nicht zugeteilt wurden, so werden diese #
|
||||
Abgaben noch nicht als "korrigiert" markiert.
|
||||
Das aktuelle (YAML-basierte) Format für Bewertungsdatei enthält #
|
||||
ein Feld, ob die jeweilige Abgabe als „korrigiert“ (Bewertung #
|
||||
abgeschlossen) markiert werden soll.
|
||||
|
||||
<p>
|
||||
|
||||
@ -19,15 +13,19 @@ $newline never
|
||||
|
||||
<p>
|
||||
|
||||
Es ist geplant, dass die Bewertungsdatei in Zukunft ein eigenes #
|
||||
Feld enthält, in dem Korrektoren angeben können, ob die Korrektur #
|
||||
abgeschlossen ist oder nicht.
|
||||
Bei Bewertungsdateien im veralteten Format (nur Text) werden #
|
||||
Abgaben nur dann automatisch als „korrigiert“ markiert, wenn das #
|
||||
entsprechende Auswahlfeld („_{MsgCorrUploadSubmissionDoneMode}“) #
|
||||
auf „_{SubmissionDoneAlways}“ gestellt wird.
|
||||
|
||||
<p>
|
||||
|
||||
Im Gegensatz zu UniWorX enthalten die heruntergeladenen Abgaben #
|
||||
immer den aktuellen Stand der Bewertung. Dies betrifft ggf. auch #
|
||||
geänderte Dateien!
|
||||
Die heruntergeladenen Abgaben enthalten immer den aktuellen Stand #
|
||||
der Bewertung.
|
||||
|
||||
<br>
|
||||
|
||||
Dies betrifft ggf. auch geänderte Dateien!
|
||||
|
||||
<section>
|
||||
<p>
|
||||
@ -37,8 +35,8 @@ $newline never
|
||||
|
||||
<br>
|
||||
|
||||
Die Abgebenden werden entsprechend informiert, sobald die Abgabe #
|
||||
als "korrigiert" markiert wurde.
|
||||
Die Abgebenden werden entsprechend informiert, sobald die #
|
||||
Abgabe als „korrigiert“ markiert wurde.
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
@ -3,13 +3,9 @@ $newline never
|
||||
<section>
|
||||
<p>
|
||||
|
||||
Uploading a correction automatically marks it finished iff you #
|
||||
were assigned that correction.
|
||||
|
||||
<p>
|
||||
|
||||
If an administrator that was not assigned the correction uploads #
|
||||
it, it will not be marked finished.
|
||||
The current (YAML-based) format for correction files contains a #
|
||||
field determining whether the respective correction should be #
|
||||
marked as finished.
|
||||
|
||||
<p>
|
||||
|
||||
@ -17,13 +13,15 @@ $newline never
|
||||
|
||||
<p>
|
||||
|
||||
It is expected that rating files will, in the future, contain a #
|
||||
field to mark the correction as finished or not.
|
||||
When using rating files in the legacy format (plaintext only) #
|
||||
corrections will only be marked as finished if the appropriate #
|
||||
selection (“_{MsgCorrUploadSubmissionDoneMode}” set to #
|
||||
“_{SubmissionDoneAlways}”) has been made.
|
||||
|
||||
<p>
|
||||
|
||||
Contrary to UniWorX downloaded submissions always reflect the #
|
||||
current state of the correction.
|
||||
Downloaded submissions always reflect the current state of the #
|
||||
correction.
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ $newline text
|
||||
<dd .deflist__dd>
|
||||
<p>
|
||||
^{newU2WFeat} Uni2work unterstüzt die Verwaltung von mehreren Instituten, d.h.
|
||||
Kursnamen wie "[MATH]" für Kurse des mathematischen Instituts werden ab sofort nicht mehr benötigt.
|
||||
Kursnamen wie "[MATH]" für Kurse des mathematischen Instituts werden nicht mehr benötigt.
|
||||
Stattdessen gibt es nun Instituts-Filter für Kurslisten.
|
||||
<p>
|
||||
Die Berechtigungen der Uni2work-Administratoren sind auf Kurse des jeweiligen Instituts eingeschränkt,
|
||||
@ -52,7 +52,7 @@ $newline text
|
||||
|
||||
<dt .deflist__dt> Materialien veröffentlichen
|
||||
<dd .deflist__dd>
|
||||
Folien, Code-Bündel, usw. können nun bequem
|
||||
Folien, Code-Bündel, usw. können bequem
|
||||
per Uni2work an die Teilnehmer verteilt werden, ggf. auch geschützt.
|
||||
|
||||
<dt .deflist__dt> Kurs-Passwort
|
||||
@ -75,7 +75,7 @@ $newline text
|
||||
Die Dozenten Berechtigung wird nach Instituten unterschieden.
|
||||
|
||||
Assistenten haben nur Zugriff auf einen speziellen Kurs,
|
||||
aber innerhalb dieses Kurses die gleichen Rechte wie Dozenten.
|
||||
aber innerhalb dieses Kurses die gleichen Rechte wie die jeweiligen Dozenten.
|
||||
|
||||
<p>
|
||||
In UniWorX gab es die Rolle "Assistent",
|
||||
@ -106,7 +106,6 @@ $newline text
|
||||
^{probFeatInline} Es kann sein, dass ein "gröberer" Studiengang
|
||||
angezeigt wird, als tatsächlich studiert wird (z.B. Medieninformatik
|
||||
statt Mensch-Computer-Interaktion).
|
||||
Dieses Problem soll demnächst behoben werden.
|
||||
|
||||
<dt .deflist__dt> Aus Studentensicht
|
||||
<dd .deflist__dd>
|
||||
@ -123,7 +122,7 @@ $newline text
|
||||
^{newFeat 2019 10 7} Es lassen sich direkt auf der Kursübersichtsseite Neuigkeiten in Bezug
|
||||
auf die Veranstaltung publizieren ("Aktuelles").
|
||||
<p>
|
||||
In Zukunft sind ein RSS-Feed und (opt-in) E-Mail-Benachrichtigungen
|
||||
In Zukunft sind ein RSS-Feed und E-Mail-Benachrichtigungen
|
||||
hierfür geplant.
|
||||
|
||||
<dt .deflist__dt> Termine
|
||||
@ -143,7 +142,7 @@ $newline text
|
||||
<dt .deflist__dt> Korrektoren
|
||||
<dd .deflist__dd>
|
||||
^{newU2WFeat} Korrektoren und Korrekturweise werden ad hoc pro Übungsblatt vom Veranstalter festgelegt;
|
||||
es gibt keine Eintragung von Korrektoren in der Veranstaltungskonfiguration mehr.<br />
|
||||
es gibt keine Eintragung von Korrektoren in der Veranstaltungskonfiguration.<br />
|
||||
Um reinen Tutoren vorab Zugriff auf Lösungen zu gewähren, sollten diese
|
||||
als Korrektoren mit Korrekturanteil 0 eingetragen werden.
|
||||
|
||||
@ -152,6 +151,12 @@ $newline text
|
||||
|
||||
<dt .deflist__dt> Verteilung
|
||||
<dd .deflist__dd>
|
||||
Jeder Abgabe für ein Übungsblatt kann ein Korrektor zugewiesen werden.
|
||||
|
||||
Eine automatische, möglichst faire, Zuteilung kann sowohl
|
||||
manuell als auch automatisch mit Ende des Abgabezeitraums
|
||||
ausgelöst werden.
|
||||
|
||||
^{newU2WFeat} Korrektoren können pro Blatt auch als Abwesend oder Entschuldigt
|
||||
markiert werden und bekommen dann keine Abgaben automatisch zugeteilt.
|
||||
|
||||
@ -195,7 +200,7 @@ $newline text
|
||||
|
||||
<dt .deflist__dt> Externe Abgaben
|
||||
<dd .deflist__dd>
|
||||
Externe Abgaben Form (z.B. Papierabgaben)
|
||||
Externe Abgaben (z.B. Papierabgaben)
|
||||
können mit Pseudonymen verwaltet werden:
|
||||
<ul>
|
||||
<li>
|
||||
@ -228,6 +233,34 @@ $newline text
|
||||
Verteilung von Übungsblättern
|
||||
dem jeweiligen Korrektor zum Arbeitspensum angerechnet.
|
||||
|
||||
<dt .deflist__dt #correction-files> Korrekturdateien
|
||||
<dd .deflist__dd>
|
||||
<p>
|
||||
Zugeteilte Korrektoren und Kursverwalter haben die Möglichkeit einzelne oder auch Sammlungen von Abgaben als ZIP-Archiv herunterzuladen.
|
||||
|
||||
<p>
|
||||
Es wird hierbei jeder Abgabe eine Bewertungsdatei beigelegt.
|
||||
|
||||
<p>
|
||||
^{newU2WFeat} Das Format der Bewertungsdatei ist primär
|
||||
<a href="https://yaml.org">YAML (Englisch)
|
||||
\ und somit maschinell einfach zu interpretieren und zu verändern.
|
||||
|
||||
<p>
|
||||
Zusätzlich zum YAML-Teil besteht die Möglichkeit ans Ende der Datei einen Bewertungskommentar für die jeweiligen Studierenden anzuhängen.
|
||||
Alternativ (für maschinelle Bearbeitung) kann ein Feld
|
||||
<code>comment
|
||||
eingefügt werden, dass den Kommentar als String enthält.
|
||||
|
||||
<p>
|
||||
YAML ist kompatibel zu
|
||||
<a href="https://www.json.org/json-de.html">JSON
|
||||
.
|
||||
Bewertungsdateien können also beim Upload durch äquivalente JSON-Dateien (mit den gleichen Feldnamen) ersetzt werden.
|
||||
|
||||
<p>
|
||||
Genauer Name und Dateiendung der Bewertungsdateien ist unerheblich; Uni2work prüft nur ob eine valide Abgabennummer teil des Dateinamen ist.
|
||||
|
||||
<section>
|
||||
<h2 #tutorials>_{MsgInfoLecturerTutorials}
|
||||
|
||||
|
||||
@ -109,7 +109,7 @@ $newline text
|
||||
^{newFeat 2019 10 7} On the course overview page, one can directly publish news concerning
|
||||
the course ("News").
|
||||
<p>
|
||||
An RSS feed and (opt-in) email notifications for course news are planned in the future.
|
||||
An RSS feed and email notifications for course news are planned in the future.
|
||||
|
||||
<dt .deflist__dt> Dates
|
||||
<dd .deflist__dd>
|
||||
@ -134,6 +134,10 @@ $newline text
|
||||
|
||||
<dt .deflist__dt> Distribution
|
||||
<dd .deflist__dd>
|
||||
Each submission can be assigned to a corrector.
|
||||
|
||||
An automatic assignment (which aims to be as fair as possible) can be triggered either manually or automatically with the end of the submission period.
|
||||
|
||||
^{newU2WFeat} Correctors can be marked as Absent or Excused per exercise sheet. This way, they will not be
|
||||
automatically assigned as correctors of any submissions.
|
||||
|
||||
@ -198,6 +202,34 @@ $newline text
|
||||
Such submissions will be accounted for in the next distribution of
|
||||
submissions according to the corrector's correction proportions.
|
||||
|
||||
<dt .deflist__dt #correction-files> Correction files
|
||||
<dd .deflist__dd>
|
||||
<p>
|
||||
Assigned correctors and course administrators can download submissions or collections thereof as ZIP archives.
|
||||
<p>
|
||||
When doing so correction files are added to each submission.
|
||||
|
||||
<p>
|
||||
^{newU2WFeat} Correction files are formatted primarily as
|
||||
<a href="https://yaml.org">YAML
|
||||
\ and are thus easy to parse and edit automatically.
|
||||
|
||||
<p>
|
||||
In addition to the YAML part each correction file may contain contain an appended correction comment for the respective students.
|
||||
Alternatively (for automatic editing) the comment may be added as a YAML field
|
||||
<code>comment
|
||||
which then contains the comment as a string.
|
||||
|
||||
<p>
|
||||
YAML is compatible with
|
||||
<a href="https://www.json.org/json-en.html">JSON
|
||||
.
|
||||
Correction files may thus be replaced with equivalent JSON files for upload (keeping the same field names).
|
||||
|
||||
<p>
|
||||
The exact name or file extension of correction files do not matter; Uni2work only checks whether the filename contains a valid submission number.
|
||||
|
||||
|
||||
<section>
|
||||
<h2 #tutorials>_{MsgInfoLecturerTutorials}
|
||||
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
$newline never
|
||||
<p>
|
||||
Stand: ^{formatGregorianW 2020 04 28}
|
||||
Stand: ^{formatGregorianW 2020 06 17}
|
||||
<ul>
|
||||
<li>
|
||||
Format von Bewertungsdateien ist noch provisorisch
|
||||
<li>
|
||||
Zahlen und Prüfungsergebnisse werden nicht internationalisiert #
|
||||
(betrifft auch CSV-Import und Export)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
$newline never
|
||||
<p>
|
||||
Last updated: ^{formatGregorianW 2020 04 28}
|
||||
Last updated: ^{formatGregorianW 2020 06 17}
|
||||
<ul>
|
||||
<li>
|
||||
Format of rating files is provisional
|
||||
<li>
|
||||
Numbers and exam results are not internationalised (also affects #
|
||||
csv-import and export)
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
$newline never
|
||||
<p>
|
||||
|
||||
Alle, in den hochgeladenen Dateien referenzierten, Abgaben werden #
|
||||
als „korrigiert“ markiert.
|
||||
5
templates/i18n/submission-done-tip/always/en-eu.hamlet
Normal file
5
templates/i18n/submission-done-tip/always/en-eu.hamlet
Normal file
@ -0,0 +1,5 @@
|
||||
$newline never
|
||||
<p>
|
||||
|
||||
All submission referenced in the uploaded corrections are marked #
|
||||
as finished.
|
||||
@ -0,0 +1,16 @@
|
||||
$newline never
|
||||
<p>
|
||||
|
||||
Die, in den hochgeladenen Dateien referenzierten, Abgaben werden #
|
||||
entweder als „korrigiert“ markiert, oder zurückgesetzt, ja nach #
|
||||
Einstellung in den jeweiligen Korrekturdateien.
|
||||
|
||||
<p>
|
||||
|
||||
Abgaben, für die die jeweilige Korrekturdatei keine Einstellung #
|
||||
enthält, werden zurückgesetzt.
|
||||
|
||||
<br>
|
||||
|
||||
Abgaben mit Korrekturdateien im veralteten Format (nur Text) werden #
|
||||
zurückgesetzt.
|
||||
16
templates/i18n/submission-done-tip/by-file/en-eu.hamlet
Normal file
16
templates/i18n/submission-done-tip/by-file/en-eu.hamlet
Normal file
@ -0,0 +1,16 @@
|
||||
$newline never
|
||||
<p>
|
||||
|
||||
Submissions referenced in the uploaded files are either marked as #
|
||||
finished or their state reset, according to the setting in the #
|
||||
respective correction file.
|
||||
|
||||
<p>
|
||||
|
||||
Submissions for which the respective correction file contains no #
|
||||
setting are reset.
|
||||
|
||||
<br>
|
||||
|
||||
Submissions for which the respective correction file is in legacy #
|
||||
format (plaintext only) are reset.
|
||||
@ -0,0 +1,9 @@
|
||||
$newline never
|
||||
<p>
|
||||
|
||||
Keine der, in den hochgeladenen Dateien referenzierten, Abgaben wird #
|
||||
als „korrigiert“ markiert.
|
||||
|
||||
<br>
|
||||
|
||||
Bereits als „korrigiert“ markierte Abgaben werden zurückgesetzt.
|
||||
9
templates/i18n/submission-done-tip/never/en-eu.hamlet
Normal file
9
templates/i18n/submission-done-tip/never/en-eu.hamlet
Normal file
@ -0,0 +1,9 @@
|
||||
$newline never
|
||||
<p>
|
||||
|
||||
No submission referenced in the uploaded files is marked as #
|
||||
finished.
|
||||
|
||||
<br>
|
||||
|
||||
Corrections already marked as finished have their state reset.
|
||||
Loading…
Reference in New Issue
Block a user