refactor(messages): sheet-folder
This commit is contained in:
parent
607fb12fa4
commit
f51679697f
@ -74,6 +74,15 @@ TableExamName: Name
|
||||
TableExamTime: Termin
|
||||
TableExamRegistration: Prüfungsanmeldung
|
||||
TableExamResult: Prüfungsergebnis
|
||||
TableSheet: Blatt
|
||||
TableLastEdit: Letzte Änderung
|
||||
TableSubmission: Abgabenummer
|
||||
TableRating: Korrektur
|
||||
TableFileTitle: Dateiname
|
||||
TableFileModified: Letzte Änderung
|
||||
TableCorState: Status
|
||||
TableCorProportion: Anteil
|
||||
TableCorrector: Korrektor
|
||||
|
||||
#headings
|
||||
HeadingLegal: Rechtliche Informationen
|
||||
@ -84,7 +93,6 @@ HeadingProfileData: Persönliche Daten
|
||||
HeadingSchoolList: Institute
|
||||
HeadingAdminCrontab: Crontab
|
||||
HeadingAdminTokens: Tokens ausstellen
|
||||
SheetPersonalisedFilesDownload: Personalisierte Dateien herunterladen
|
||||
HeadingCorrectionsAssign: Zuteilung der Korrekturen
|
||||
HeadingUserAdd: Benutzer:in anlegen
|
||||
CorrectorsChange: Korrektoren ändern
|
||||
@ -99,7 +107,7 @@ EmailInvitationWarning: Diese Adresse konnte keinem Uni2work-Benutzer zugeordnet
|
||||
|
||||
FormFieldWorkflowDatasetTip: Mindestens ein gekennzeichnetes Feld pro Datensatz muss ausgefüllt werden
|
||||
|
||||
|
||||
Corrector: Korrektor:in
|
||||
Aborted: Abgebrochen
|
||||
Remarks: Hinweise
|
||||
|
||||
@ -160,7 +168,6 @@ ExamOccurrenceNoCapacity: Zu diesem Termin/Raum sind keine Plätze mehr frei.
|
||||
CourseNotEmpty: In diesem Kurs sind momentan Teilnehmer angemeldet.
|
||||
|
||||
CourseApply: Zum Kurs bewerben
|
||||
FFSheetName: Name
|
||||
TermCourseListHeading tid@TermId: Kursübersicht #{tid}
|
||||
TermSchoolCourseListHeading tid@TermId school@SchoolName: Kursübersicht #{tid} für #{school}
|
||||
TermCourseListTitle tid@TermId: Kurse #{tid}
|
||||
@ -184,88 +191,25 @@ CourseRegistrationDeleteToEdit: Um Ihre Anmeldungsdaten zu editieren müssen Sie
|
||||
TutorialRegisterFromTip: Ohne Datum ist keine eigenständige Anmeldung von Studierenden erlaubt.
|
||||
TutorialRegisterToTip: Darf auch unbegrenzt offen bleiben
|
||||
|
||||
Sheet: Blatt
|
||||
SheetList tid@TermId ssh@SchoolId csh@CourseShorthand: #{tid}-#{ssh}-#{csh} Übersicht Übungsblätter
|
||||
SheetNewHeading tid@TermId ssh@SchoolId csh@CourseShorthand: #{tid}-#{ssh}-#{csh} Neues Übungsblatt anlegen
|
||||
SheetNewOk tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{sheetName} wurde als neues Übungsblatt im Kurs #{tid}-#{ssh}-#{csh} erfolgreich erstellt.
|
||||
SheetTitle tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
SheetTitleNew tid@TermId ssh@SchoolId csh@CourseShorthand : #{tid}-#{ssh}-#{csh}: Neues Übungsblatt
|
||||
SheetTitleHead tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
SheetEditHead tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{tid}-#{ssh}-#{csh} #{sheetName} editieren
|
||||
SheetEditOk tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: Übungsblatt #{sheetName} wurde gespeichert in Kurs #{tid}-#{ssh}-#{csh}
|
||||
SheetNameDup tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: Es gibt bereits ein Übungsblatt #{sheetName} in diesem Kurs #{tid}-#{ssh}-#{csh}
|
||||
SheetDelHead tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{sheetName} wirklich aus Kurs #{tid}-#{ssh}-#{csh} herauslöschen? Alle assoziierten Abgaben und Korrekturen gehen ebenfalls verloren!
|
||||
SheetDelOk tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{tid}-#{ssh}-#{csh}: #{sheetName} gelöscht.
|
||||
SheetDelHasSubmissions objs@Int: Inkl. #{objs} #{pluralDE objs "Abgabe" "Abgaben"}!
|
||||
|
||||
SheetDeleteQuestion: Wollen Sie das unten aufgeführte Übungsblatt und alle zugehörigen Abgaben wirklich löschen?
|
||||
SheetDeleted: Übungsblatt gelöscht
|
||||
|
||||
SheetUploadMode: Abgabe von Dateien
|
||||
SheetSubmissionMode: Abgabe-Modus
|
||||
SheetExercise: Aufgabenstellung
|
||||
SheetHint: Hinweis
|
||||
SheetHintFrom: Hinweis ab
|
||||
SheetHintFromPlaceholder: Datum, sonst nur für Korrektoren
|
||||
SheetSolutionFromPlaceholder: Datum, sonst nur für Korrektoren
|
||||
SheetSolution: Lösung
|
||||
SheetSolutionFrom: Lösung ab
|
||||
SheetMarking: Hinweise für Korrektoren
|
||||
SheetMarkingFiles: Korrektur
|
||||
SheetType: Wertung
|
||||
SheetInvisible: Dieses Übungsblatt ist für Teilnehmer momentan unsichtbar!
|
||||
SheetName: Name
|
||||
SheetDescription: Hinweise für Teilnehmer
|
||||
SheetGroup: Gruppenabgabe
|
||||
SheetVisibleFrom: Sichtbar für Teilnehmer ab
|
||||
SheetVisibleFromTip: Ohne Datum nie sichtbar und keine Abgabe möglich; nur für unfertige Blätter leer lassen, deren Bewertung/Fristen sich noch ändern können
|
||||
SheetActiveFrom: Aktiv ab/Beginn Abgabezeitraum
|
||||
SheetActiveFromParticipant: Beginn Abgabezeitraum
|
||||
SheetActiveFromParticipantNoSubmit: Herausgabe der Aufgabestellung
|
||||
SheetActiveFromTip: Download der Aufgabenstellung und Abgabe erst ab diesem Datum möglich. Ohne Datum keine Abgabe und keine Herausgabe der Aufgabenstellung
|
||||
SheetActiveFromUnset: Nie
|
||||
SheetActiveTo: Aktiv bis/Ende Abgabezeitraum
|
||||
SheetActiveToParticipant: Ende Abgabezeitraum
|
||||
SheetActiveToTip: Abgabe nur bis zu diesem Datum möglich. Ohne Datum unbeschränkte Abgabe möglich (soweit gefordert).
|
||||
SheetActiveToUnset: Nie
|
||||
SheetHintFromTip: Ohne Datum nie für Teilnehmer sichtbar, Korrektoren können diese Dateien immer herunterladen
|
||||
SheetSolutionFromTip: Ohne Datum nie für Teilnehmer sichtbar, Korrektoren können diese Dateien immer herunterladen
|
||||
SheetMarkingTip: Hinweise zur Korrektur, sichtbar nur für Korrektoren
|
||||
SheetPseudonym: Persönliches Abgabe-Pseudonym
|
||||
SheetGeneratePseudonym: Generieren
|
||||
SheetAnonymousCorrection: Anonymisierte Korrektur
|
||||
SheetAnonymousCorrectionTip: Wenn die Korrektur anonymisiert erfolgt, können Korrektoren die ihnen zugeteilten Abgaben nicht bestimmten Studierenden zuordnen (Name, Matrikelnummer und feste Abgabegruppe der Abgebenden werden versteckt)
|
||||
SheetRequireExam: Anmeldung zu einer Prüfung voraussetzen?
|
||||
SheetRequireExamTip: Wenn die Anmeldung zu einer Prüfung vorausgesetzt wird, können nur Kursteilnehmer abgeben, die zum Zeitpunkt der Abgabe auch zur gewählten Prüfung angemeldet sind. Auch der Download von Übungsblatt-Dateien wird nur zur Prüfung angemeldeten Kursteilnehmern erlaubt.
|
||||
SheetRequiredExam: Prüfung
|
||||
SheetShowRequiredExam: Vorausgesetze Prüfungsanmeldung
|
||||
SheetSubmissionExamRegistrationRequired: Um die Angabe für dieses Übungsblatt herunterzuladen oder Abzugeben ist eine Anmeldung zur genannten Prüfung erforderlich.
|
||||
SheetFilesExamRegistrationRequired: Um die Dateien dieses Übungsblattes herunterzuladen oder Abzugeben ist eine Anmeldung zu der oben genannten Prüfung erforderlich.
|
||||
SheetFilesMissingPersonalisedFiles: Um abzugeben muss zunächst ein Kursverwalter personalisierte Übungsblatt-Dateien für Sie hinterlegen.
|
||||
UtilSheetSubmissionMode: Abgabe-Modus
|
||||
UtilSheetType: Wertung
|
||||
|
||||
SheetArchiveFileTypeDirectoryExercise: aufgabenstellung
|
||||
SheetArchiveFileTypeDirectoryHint: hinweis
|
||||
SheetArchiveFileTypeDirectorySolution: loesung
|
||||
SheetArchiveFileTypeDirectoryMarking: korrektur
|
||||
|
||||
SheetFormType: Wertung & Abgabe
|
||||
SheetFormTimes: Zeiten
|
||||
SheetFormFiles: Dateien
|
||||
|
||||
SheetErrVisibility: "Aktiv ab/Beginn Abgabezeitraum" muss nach "Sichbar für Teilnehmer ab" liegen
|
||||
SheetErrDeadlineEarly: "Aktiv bis/Ende Abgabezeitraum" muss nach "Aktiv ab/Beginn Abzeitraum" liegen
|
||||
SheetErrHintEarly: Hinweise dürfen erst nach Beginn des Abgabezeitraums herausgegeben werden
|
||||
SheetErrSolutionEarly: Lösungen dürfen erst nach Ende der Abgabezeitraums herausgegeben werden
|
||||
SheetErrVisibleWithoutActive: Wird "Sichtbar für Teilnehmer ab" angegeben, muss auch "Aktiv ab/Beginn Abgabezeitraum" angegeben werden
|
||||
SheetWarnNoActiveTo: "Aktiv bis/Ende Abgabezeitraum" sollte stets angegeben werden
|
||||
SheetNoCurrent: Es gibt momentan kein aktives Übungsblatt.
|
||||
SheetNoOldUnassigned: Alle Abgaben inaktiver Blätter sind bereits einen Korrektor zugeteilt.
|
||||
SheetsUnassignable name@Text: Momentan keine Abgaben zuteilbar für #{name}
|
||||
SheetSubmissionModeNoneWithoutNotGraded: Es wurde "Keine Abgabe" eingestellt, jedoch nicht "Keine Bewertung". Kursteilnehmer werden nicht abgeben können.
|
||||
|
||||
Deadline: Abgabe
|
||||
Done: Eingereicht
|
||||
|
||||
Submission: Abgabenummer
|
||||
SubmissionsCourse tid@TermId ssh@SchoolId csh@CourseShorthand: Alle Abgaben Kurs #{tid}-#{ssh}-#{csh}
|
||||
SubmissionsSheet sheetName@SheetName: Abgaben für #{sheetName}
|
||||
SubmissionWrongSheet: Abgabenummer gehört nicht zum angegebenen Übungsblatt.
|
||||
@ -444,16 +388,6 @@ NotAParticipant email@UserEmail tid@TermId csh@CourseShorthand: #{email} ist nic
|
||||
TooManyParticipants: Es wurden zu viele Mitabgebende angegeben
|
||||
|
||||
AddCorrector: Zusätzlicher Korrektor
|
||||
CorrectorExists: Nutzer ist bereits als Korrektor eingetragen
|
||||
SheetCorrectorsTitle tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: Korrektoren für #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
CountTutProp: Tutorien zählen gegen Proportion
|
||||
CountTutPropTip: Wenn Abgaben nach Tutorium zugeteilt werden, zählen diese Zuteilungen in Bezug auf den jeweiligen Anteil?
|
||||
AutoAssignCorrs: Korrekturen nach Ablauf des Abgabezeitraums automatisch zuteilen
|
||||
Corrector: Korrektor
|
||||
Correctors: Korrektoren
|
||||
CorState: Status
|
||||
CorByTut: Zuteilung nach Tutorium
|
||||
CorProportion: Anteil
|
||||
CorDeficitProportion: Defizit Anteile
|
||||
CorByProportionOnly proportion@Rational: #{rationalToFixed3 proportion} Anteile
|
||||
CorByProportionIncludingTutorial proportion@Rational: #{rationalToFixed3 proportion} Anteile - Tutorium
|
||||
@ -461,7 +395,6 @@ CorByProportionExcludingTutorial proportion@Rational: #{rationalToFixed3 proport
|
||||
|
||||
RowCount count@Int64: #{count} #{pluralDE count "passender Eintrag" "passende Einträge"} insgesamt
|
||||
DeleteRow: Entfernen
|
||||
ProportionNegative: Anteile dürfen nicht negativ sein
|
||||
CorrectorUpdated: Korrektor erfolgreich aktualisiert
|
||||
CorrectorsUpdated: Korrektoren erfolgreich aktualisiert
|
||||
CorrectorsPlaceholder: Korrektoren...
|
||||
@ -587,13 +520,9 @@ NotPassed: Nicht bestanden
|
||||
RatingTime: Korrigiert
|
||||
RatingComment: Kommentar
|
||||
SubmissionUsers: Studenten
|
||||
Rating: Korrektur
|
||||
IsRated: Korrigiert
|
||||
SheetTypeIsExam: Anrechnung „als Prüfungsaufgabe“
|
||||
RatingPoints: Punkte
|
||||
RatingDone: Bewertung abgeschlossen
|
||||
RatingDoneTip: Das Korrekturergebnis ist nur dann für die Abgebenden sichtbar und kann gegen etwaige Prüfungs-Bonuspunkte verrechnet werden, wenn die Bewertung abgeschlossen ist.
|
||||
RatingPercent: Erreicht
|
||||
RatingFiles: Korrigierte Dateien
|
||||
RatingFilesTip: Hier hochgeladene Dateien ersetzen ggf. die bestehende korrigierte Version der Abgabe vollständig (nicht erneut hochgeladene Dateien werden gelöscht). Die original abgegebene Version bleibt erhalten.
|
||||
PointsNotPositive: Punktzahl darf nicht negativ sein
|
||||
@ -603,13 +532,9 @@ RatingPointsDone: Abgabe zählt als korrigiert, gdw. Punktezahl gesetzt ist
|
||||
ColumnRatingPoints: Punktzahl
|
||||
Pseudonyms: Pseudonyme
|
||||
|
||||
Files: Dateien
|
||||
FileTitle: Dateiname
|
||||
FileModified: Letzte Änderung
|
||||
VisibleFrom: Veröffentlicht
|
||||
AccessibleSince: Verfügbar seit
|
||||
|
||||
|
||||
Corrected: Korrigiert
|
||||
CorrectionAchievedPoints: Erzielte Punkte
|
||||
CorrectionAchievedPass: Bestanden
|
||||
@ -700,7 +625,6 @@ IllDefinedUTCTime: Der angegebene Zeitpunkt lässt sich nicht zu UTC konvertiere
|
||||
|
||||
LastEdits: Letzte Änderungen
|
||||
EditedBy name@Text time@Text: #{time} durch #{name}
|
||||
LastEdit: Letzte Änderung
|
||||
LastEditByUser: Ihre letzte Bearbeitung
|
||||
NoEditByUser: Nicht von Ihnen bearbeitet
|
||||
|
||||
@ -728,8 +652,6 @@ CampusUserInvalidSex: Konnte anhand des Campus-Logins kein Geschlecht ermitteln
|
||||
CorrectorNormal: Normal
|
||||
CorrectorMissing: Abwesend
|
||||
CorrectorExcused: Entschuldigt
|
||||
SheetCorrectorState: Status
|
||||
SheetCorrectorProportion: Anteil
|
||||
CorrectorStateTip: Abwesende Korrektoren bekommen bei späteren Übungsblättern mehr Korrekturen zum Ausgleich zugewiesen. Entschuldigte Korrektoren müssen nicht nacharbeiten.
|
||||
|
||||
DayIsAHoliday tid@TermId name@Text date@Text: "#{name}" (#{date}) ist ein Feiertag
|
||||
@ -777,8 +699,6 @@ BothSubmissions: Abgabe direkt in Uni2work & extern mit Pseudonym
|
||||
|
||||
BothSubmissionsTip: Abgabe kann, nach Wahl des Teilnehmers, entweder direkt in Uni2work oder extern mit Pseudonym erfolgen
|
||||
|
||||
SheetCorrectorSubmissionsTip: Abgabe erfolgt über ein Uni2work-externes Verfahren (zumeist in Papierform durch Einwurf) unter Angabe eines persönlichen Pseudonyms. Korrektoren können mithilfe des Pseudonyms später Korrekturergebnisse in Uni2work eintragen, damit Sie sie einsehen können.
|
||||
|
||||
SubmissionNoUploadExpected: Es ist keine Abgabe von Dateien vorgesehen.
|
||||
SubmissionReplace: Abgabe ersetzen
|
||||
SubmissionCreated: Abgabe erfolgreich angelegt
|
||||
@ -940,9 +860,6 @@ InvitationFromTip displayName@Text: Sie erhalten diese Einladung, weil #{display
|
||||
InvitationFromTipAnonymous: Sie erhalten diese Einladung, weil ein nicht eingeloggter Benutzer ihren Versand in Uni2work ausgelöst hat.
|
||||
InvitationUniWorXTip: Uni2work ist ein webbasiertes Lehrverwaltungssystem der LMU München.
|
||||
|
||||
|
||||
MailSubjectCorrectorInvitation tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: [#{tid}-#{ssh}-#{csh}] Einladung zum Korrektor für #{shn}
|
||||
|
||||
MailSubjectTutorInvitation tid@TermId ssh@SchoolId csh@CourseShorthand tutn@TutorialName: [#{tid}-#{ssh}-#{csh}] Einladung zum Tutor für #{tutn}
|
||||
|
||||
MailSubjectSubmissionUserInvitation tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: [#{tid}-#{ssh}-#{csh}] Einladung zu einer Abgabe für #{shn}
|
||||
@ -974,7 +891,6 @@ SheetTypeInfoBonus: Bonus Blätter zählen normal, erhöhen aber nicht die maxim
|
||||
SheetTypeInfoInformational: Blätter ohne Anrechnung werden nirgends angerechnet, die Bewertung durch den Korrektor dient lediglich zur Information der Teilnehmer.
|
||||
SheetGradingBonusIncluded: Erzielte Bonuspunkte wurden hier bereits zu den erreichten normalen Punkten hinzugezählt.
|
||||
SummaryTitle: Zusammenfassung über
|
||||
SheetGradingSummaryTitle intgr@Integer: #{intgr} #{pluralDE intgr "Blatt" "Blätter"}
|
||||
SubmissionGradingSummaryTitle intgr@Integer: #{intgr} #{pluralDE intgr "Abgabe" "Abgaben"}
|
||||
SheetTypeExamPartPointsWeightNegative: Gewichtung darf nicht negativ sein
|
||||
SheetTypeExamPartPointsWeight: Gewichtung
|
||||
@ -995,16 +911,6 @@ SheetGroupRegisteredGroups: Registrierte Gruppen
|
||||
SheetGroupNoGroups: Keine Gruppenabgabe
|
||||
SheetGroupMaxGroupsize: Maximale Gruppengröße
|
||||
|
||||
SheetFiles: Übungsblatt-Dateien
|
||||
SheetFileTypeHeader: Zugehörigkeit
|
||||
|
||||
SheetArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}
|
||||
SheetTypeArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName renderedSft@Text: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-#{foldCase renderedSft}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CorrCreate: Abgaben registrieren
|
||||
UnknownPseudonymWord pseudonymWord@Text: Unbekanntes Pseudonym-Wort "#{pseudonymWord}"
|
||||
InvalidPseudonym pseudonym@Text: Invalides Pseudonym "#{pseudonym}"
|
||||
@ -1175,10 +1081,8 @@ MultiUserFieldInvitationExplanationAlways: Es wird an alle Adressen, die Sie hie
|
||||
LecturerInvitationAccepted lType@Text csh@CourseShorthand: Sie wurden als #{lType} für #{csh} eingetragen
|
||||
LecturerInvitationDeclined csh@CourseShorthand: Sie haben die Einladung, Kursverwalter für #{csh} zu werden, abgelehnt
|
||||
|
||||
CorrectorInvitationAccepted shn@SheetName: Sie wurden als Korrektor für #{shn} eingetragen
|
||||
TutorCorrectorInvitationAccepted shn@SheetName: Sie wurden als Korrektor für #{shn} eingetragen
|
||||
CorrectorInvitationDeclined shn@SheetName: Sie haben die Einladung, Korrektor für #{shn} zu werden, abgelehnt
|
||||
SheetCorrInviteHeading shn@SheetName: Einladung zum Korrektor für #{shn}
|
||||
SheetCorrInviteExplanation: Sie wurden eingeladen, Korrektor für ein Übungsblatt zu sein.
|
||||
|
||||
TutorInvitationAccepted tutn@TutorialName: Sie wurden als Tutor für #{tutn} eingetragen
|
||||
TutorInvitationDeclined tutn@TutorialName: Sie haben die Einladung, Tutor für #{tutn} zu werden, abgelehnt
|
||||
@ -1810,30 +1714,10 @@ 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.
|
||||
|
||||
SheetPersonalisedFiles: Personalisierte Dateien
|
||||
SheetPersonalisedFilesTip: Sollen zusätzlich zu den oben angegebenen Dateien noch pro Kursteilnehmer personalisierte Dateien hinterlegt werden? Nur die jeweiligen Kursteilnehmer können ihre jeweiligen personalisierten Dateien einsehen.
|
||||
SheetPersonalisedFilesUpload: Personalisierte Dateien
|
||||
SheetPersonalisedFilesUploadTip: Laden Sie das Vorlage-Archiv herunter, sortieren Sie darin die personalisierten Dateien in die jeweiligen Verzeichnisse der Kursteilnehmer ein und laden sie das Archiv dann hier wieder hoch. Wenn es eine personalisierte und eine nicht-personalisierte Datei mit dem gleichen Namen gibt, so ersetzt die personalisierte Datei aus Sicht des jeweiligen Teilnehmers die nicht-personalisierte Datei.
|
||||
SheetPersonalisedFilesKeepExisting: Bestehende Dateien behalten
|
||||
SheetPersonalisedFilesKeepExistingTip: Sollen die hier neu hochgeladenen zu den bestehenden personalisierten Dateien (sofern vorhanden) hinzugefügt werden? Ansonsten ersetzt das neu hochgeladene Archiv vollständig die bestehenden Dateien.
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmission: Nicht-personalisierte Abgabe erlauben
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmissionTip: Sollen auch Kursteilnehmer abgeben dürfen, für die keine personalisierten Dateien hinterlegt wurden?
|
||||
SheetPersonalisedFilesDownloadTemplateHere: Sie können hier ein Vorlage-Archiv für die vom System erwartete Verzeichnisstruktur für personalisierte Übungsblatt-Dateien herunterladen:
|
||||
PersonalisedSheetFilesDownloadAnonymous: Anonymisiert
|
||||
PersonalisedSheetFilesDownloadSurnames: Mit Nachnamen
|
||||
PersonalisedSheetFilesDownloadMatriculations: Mit Matrikelnummern
|
||||
PersonalisedSheetFilesDownloadGroups: Mit festen Abgabegruppen
|
||||
CoursePersonalisedSheetFilesArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalisierte_dateien
|
||||
PersonalisedSheetFilesArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-personalisierte_dateien
|
||||
PersonalisedSheetFilesMetaFilename uid@CryptoFileNameUser: meta-informationen_#{toPathPiece uid}.yaml
|
||||
PersonalisedSheetFilesDownloadAnonymousField: Anonymisierung
|
||||
PersonalisedSheetFilesDownloadAnonymousFieldTip: Sollen Verzeichnisnamen innerhalb des Archivs von personalisierten Dateien anonymisiert werden (sie enthalten dann keinerlei unmittelbar identifizierende Informationen zu den Kursteilnehmern), oder sollen die Verzeichnisnamen mit einem Merkmal versehen werden und die Metainformations-Dateien zusätzlich persönliche Daten enthalten?
|
||||
PersonalisedSheetFilesIgnored count@Int64: Es #{pluralDE count "wurde" "wurden"} #{count} hochgeladene #{pluralDE count "Datei" "Dateien"} ignoriert, da sie keinem Übungsblattdatei-Typ oder keinem Kursteilnehmer zugeordnet werden #{pluralDE count "konnte" "konnten"}.
|
||||
PersonalisedSheetFilesIgnoredIntro: Es wurden die folgenden Dateien ignoriert:
|
||||
SheetPersonalisedFilesUsersList: Liste von Teilnehmern mit personalisierten Übungsblatt-Dateien
|
||||
PersonalisedSheetFilesDownloadRestrictByExamNone: Keine Einschränkung
|
||||
PersonalisedSheetFilesDownloadRestrictByExam: Nur Prüfungsteilnehmer
|
||||
PersonalisedSheetFilesDownloadRestrictByExamTip: Sollen nur personalisierte Übungsblatt-Dateien exportiert werden, für jene Kursteilnehmer, die auch Teilnehmer einer bestimmten Prüfung sind?
|
||||
|
||||
AdminCrontabNotGenerated: (Noch) keine Crontab generiert
|
||||
CronMatchAsap: ASAP
|
||||
|
||||
@ -73,6 +73,15 @@ TableExamName: Name
|
||||
TableExamTime: Time
|
||||
TableExamRegistration: Exam registration
|
||||
TableExamResult: Exam result
|
||||
TableSheet: Sheet
|
||||
TableLastEdit: Latest edit
|
||||
TableSubmission: Submission-number
|
||||
TableRating: Marking
|
||||
TableFileTitle: Filename
|
||||
TableFileModified: Last changed
|
||||
TableCorState: State
|
||||
TableCorProportion: Proportion
|
||||
TableCorrector: Corrector
|
||||
|
||||
#headings
|
||||
HeadingLegal: Legal
|
||||
@ -83,7 +92,6 @@ HeadingProfileData: Personal information
|
||||
HeadingSchoolList: Departments
|
||||
HeadingAdminCrontab: Crontab
|
||||
HeadingAdminTokens: Issue tokens
|
||||
SheetPersonalisedFilesDownload: Download personalised sheet files
|
||||
HeadingCorrectionsAssign: Assign corrections
|
||||
HeadingUserAdd: Add user
|
||||
CorrectorsChange: Adjust correctors
|
||||
@ -97,7 +105,7 @@ CourseNew: Create new course
|
||||
#general warnings
|
||||
EmailInvitationWarning: This address could not be matched to any Uni2work user. An invitation will be sent via email.
|
||||
|
||||
|
||||
Corrector: Corrector
|
||||
FormFieldWorkflowDatasetTip: At least one of the marked fields must be filled
|
||||
|
||||
|
||||
@ -161,7 +169,6 @@ ExamOccurrenceNoCapacity: Occurrence/Room has reached maximum capacity
|
||||
CourseNotEmpty: There are currently no participants enrolled for this course.
|
||||
|
||||
CourseApply: Apply for course
|
||||
FFSheetName: Name
|
||||
TermCourseListHeading tid: Courses #{tid}
|
||||
TermSchoolCourseListHeading tid school: Courses #{tid}, #{school}
|
||||
|
||||
@ -185,88 +192,25 @@ TutorialUsersDeregistered count: Successfully deregistered #{show count} partici
|
||||
|
||||
CourseRegistrationDeleteToEdit: You need to deregister and reregister to edit your registration.
|
||||
|
||||
Sheet: Sheet
|
||||
SheetList tid ssh csh : #{tid}-#{ssh}-#{csh} Sheet Overview
|
||||
SheetNewHeading tid ssh csh : #{tid}-#{ssh}-#{csh} New Exercise Sheet
|
||||
SheetNewOk tid ssh csh sheetName: Successfully created sheet #{sheetName} in course #{tid}-#{ssh}-#{csh}.
|
||||
SheetTitle tid ssh csh sheetName: #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
SheetTitleNew tid ssh csh : #{tid}-#{ssh}-#{csh}: New Exercise Sheet
|
||||
SheetTitleHead tid ssh csh sheetName: #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
SheetEditHead tid ssh csh sheetName: #{tid}-#{ssh}-#{csh} Edit #{sheetName}
|
||||
SheetEditOk tid ssh csh sheetName: Successfully saved exercise sheet #{sheetName} in course #{tid}-#{ssh}-#{csh}
|
||||
SheetNameDup tid ssh csh sheetName: There already is an exercise sheet #{sheetName} in course #{tid}-#{ssh}-#{csh}
|
||||
SheetDelHead tid ssh csh sheetName: Do you really want to delete sheet #{sheetName} from course #{tid}-#{ssh}-#{csh}? Any associated submissions and corrections will be lost!
|
||||
SheetDelOk tid ssh csh sheetName: #{tid}-#{ssh}-#{csh}: #{sheetName} has been deleted.
|
||||
SheetDelHasSubmissions objs: Incl. #{objs} #{pluralEN objs "submission" "submissions"}
|
||||
|
||||
SheetDeleteQuestion: Do you really want to delete the below-mentioned exercise sheet and all associated submissions?
|
||||
SheetDeleted: Successfully deleted exercise sheet
|
||||
|
||||
SheetUploadMode: Submission of files
|
||||
SheetSubmissionMode: Submission mode
|
||||
SheetExercise: Assignment
|
||||
SheetHint: Hint
|
||||
SheetHintFrom: Hint from
|
||||
SheetHintFromPlaceholder: Date, correctors only otherwise
|
||||
SheetSolutionFromPlaceholder: Date, correctors only otherwise
|
||||
SheetSolution: Solution
|
||||
SheetSolutionFrom: Solution from
|
||||
SheetMarking: Marking hints for correctors
|
||||
SheetMarkingFiles: Correction
|
||||
SheetType: Marking
|
||||
SheetInvisible: This exercise sheet is currently invisible for participants!
|
||||
SheetName: Name
|
||||
SheetDescription: Description
|
||||
SheetGroup: Group submission
|
||||
SheetVisibleFrom: Visible from (for participants)
|
||||
SheetVisibleFromTip: Always invisible for participants and no submission possible if left empty; only leave this field empty for temporary/unfinished sheets
|
||||
SheetActiveFrom: Active from/Submission period start
|
||||
SheetActiveFromParticipant: Submission period start
|
||||
SheetActiveFromParticipantNoSubmit: Assignment published
|
||||
SheetActiveFromTip: The exercise sheet's assignment will only be available for download and submission starting at this time. If left empty no submission or download of assignment is ever allowed
|
||||
SheetActiveFromUnset: Never
|
||||
SheetActiveTo: Active to/Submission period end
|
||||
SheetActiveToParticipant: Submission period end
|
||||
SheetActiveToTip: Submission will only be possible until this time. If left empty submissions are allowed forever (if at all possible)
|
||||
SheetActiveToUnset: Never
|
||||
SheetHintFromTip: Always invisible for participants if left empty; correctors can always download hints
|
||||
SheetSolutionFromTip: Always invisible for participants if left empty; correctors can always download solutions
|
||||
SheetMarkingTip: Instructions for correction, visible only to correctors
|
||||
SheetPseudonym: Personal pseudonym
|
||||
SheetGeneratePseudonym: Generate
|
||||
SheetAnonymousCorrection: Anonymized correction
|
||||
SheetAnonymousCorrectionTip: If correction is anonymized, correctors cannot see which students are involved in submissions that are assigned to them (names, matriculation numbers, and registered submission groups are hidden)
|
||||
SheetRequireExam: Require registration for an exam?
|
||||
SheetRequireExamTip: If registration for an exam is required, only course participants that are registered for that exam at the time of submission will be allowed to create submission. Download of sheet files will also be restricted to course participants registered for the exam.
|
||||
SheetRequiredExam: Exam
|
||||
SheetShowRequiredExam: Required exam registration
|
||||
SheetSubmissionExamRegistrationRequired: Registration for the specified exam is required to download files associated with this exercise sheet and to submit.
|
||||
SheetFilesExamRegistrationRequired: To download files for this exercise sheet or to submit you must first register for the exam mentioned above.
|
||||
SheetFilesMissingPersonalisedFiles: To submit a course administrator has to first assign you some personalised exercise sheet files.
|
||||
UtilSheetSubmissionMode: Submission mode
|
||||
UtilSheetType: Marking
|
||||
|
||||
SheetArchiveFileTypeDirectoryExercise: exercise
|
||||
SheetArchiveFileTypeDirectoryHint: hint
|
||||
SheetArchiveFileTypeDirectorySolution: solution
|
||||
SheetArchiveFileTypeDirectoryMarking: marking
|
||||
|
||||
SheetFormType: Valuation & submission
|
||||
SheetFormTimes: Times
|
||||
SheetFormFiles: Files
|
||||
|
||||
SheetErrVisibility: "Submission period start" must be after "Visible from"
|
||||
SheetErrDeadlineEarly: "Submission period end" must be after "Submission period start"
|
||||
SheetErrHintEarly: "Hint from" must be after "Submission period start"
|
||||
SheetErrSolutionEarly: "Solution from" must be after "Submission period end"
|
||||
SheetErrVisibleWithoutActive: If “Visible from (for participants)” is specified “Active from/Submission period start” must also be specified
|
||||
SheetWarnNoActiveTo: “Active to/Submission period end” should always be specified
|
||||
SheetNoCurrent: There is no currently active exercise sheet
|
||||
SheetNoOldUnassigned: All submissions for inactive sheets are already assigned to correctors.
|
||||
SheetsUnassignable name: Submission for #{name} may not currently be assigned to correctors.
|
||||
SheetSubmissionModeNoneWithoutNotGraded: The sheet was configured to be "No submission" but not "Not marked". Course participants will not be able to submit.
|
||||
|
||||
Deadline: Deadline
|
||||
Done: Submitted
|
||||
|
||||
Submission: Submission-number
|
||||
SubmissionsCourse tid ssh csh: All submissions for Course #{tid}-#{ssh}-#{csh}
|
||||
SubmissionsSheet sheetName: Submissions for #{sheetName}
|
||||
SubmissionWrongSheet: Submission does not belong to the given sheet.
|
||||
@ -444,16 +388,6 @@ NotAParticipant email tid csh: #{email} is not a participant of #{tid}-#{csh}.
|
||||
TooManyParticipants: You have specified more than the allowed number of submittors.
|
||||
|
||||
AddCorrector: Additional corrector
|
||||
CorrectorExists: User already is a corrector
|
||||
SheetCorrectorsTitle tid ssh csh sheetName: Correctors for #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
CountTutProp: Tutorials count against proportion
|
||||
CountTutPropTip: If submissions are assigned by tutorial, do those assignments count with regard to the set proportion?
|
||||
AutoAssignCorrs: Automatically assign corrections after expiration of the submission period
|
||||
Corrector: Corrector
|
||||
Correctors: Correctors
|
||||
CorState: State
|
||||
CorByTut: Assign by tutorial
|
||||
CorProportion: Proportion
|
||||
CorDeficitProportion: Deficit (proportion)
|
||||
CorByProportionOnly proportion: #{rationalToFixed3 proportion} parts
|
||||
CorByProportionIncludingTutorial proportion: #{rationalToFixed3 proportion} parts - tutorials
|
||||
@ -461,7 +395,6 @@ CorByProportionExcludingTutorial proportion: #{rationalToFixed3 proportion} part
|
||||
|
||||
RowCount count: #{count} matching #{pluralEN count "entry" "entries"}
|
||||
DeleteRow: Delete
|
||||
ProportionNegative: Proportions may not be negative
|
||||
CorrectorUpdated: Successfully updated corrector
|
||||
CorrectorsUpdated: Successfully updated correctors
|
||||
CorrectorsPlaceholder: Correctors...
|
||||
@ -587,13 +520,9 @@ NotPassed: Failed
|
||||
RatingTime: Marked
|
||||
RatingComment: Comment
|
||||
SubmissionUsers: Submittors
|
||||
Rating: Marking
|
||||
IsRated: Marked
|
||||
SheetTypeIsExam: Rating „as an exam part“
|
||||
RatingPoints: Points
|
||||
RatingDone: Rating finished
|
||||
RatingDoneTip: The rating is only visible to the submittors and considered for any exam bonuses if it is finished.
|
||||
RatingPercent: Achieved
|
||||
RatingFiles: Marked files
|
||||
RatingFilesTip: Files uploaded here completely replace any existing corrected versions (i.e. files not uploaded again are deleted). The original version as submitted will remain untouched.
|
||||
PointsNotPositive: Points may not be negative
|
||||
@ -603,9 +532,6 @@ RatingPointsDone: Correction counts as marked iff “Points” is set
|
||||
ColumnRatingPoints: Points
|
||||
Pseudonyms: Pseudonyms
|
||||
|
||||
Files: Files
|
||||
FileTitle: Filename
|
||||
FileModified: Last changed
|
||||
VisibleFrom: Published
|
||||
AccessibleSince: Accessible since
|
||||
|
||||
@ -701,7 +627,6 @@ IllDefinedUTCTime: The given timestamp cannot be converted to UTC
|
||||
|
||||
LastEdits: Latest edits
|
||||
EditedBy name time: #{time} by #{name}
|
||||
LastEdit: Latest edit
|
||||
LastEditByUser: Your last edit
|
||||
NoEditByUser: Not edited by you
|
||||
|
||||
@ -729,8 +654,6 @@ CampusUserInvalidSex: Could not determine sex during campus login
|
||||
CorrectorNormal: Normal
|
||||
CorrectorMissing: Missing
|
||||
CorrectorExcused: Excused
|
||||
SheetCorrectorState: State
|
||||
SheetCorrectorProportion: Proportion
|
||||
CorrectorStateTip: Missing correctors are assigned additional corrections during later sheets. Excused correctors are not assigned any additional deficit.
|
||||
|
||||
DayIsAHoliday tid name date: “#{name}” (#{date}) is a legal holiday
|
||||
@ -778,8 +701,6 @@ BothSubmissions: Submission either directly in Uni2work or externally via pseudo
|
||||
|
||||
BothSubmissionsTip: Participants may choose to submit either directly in Uni2work or externally via a pseudonym
|
||||
|
||||
SheetCorrectorSubmissionsTip: Submissions are expected to be handed in through some Uni2work-external procedure (usually on paper) marked with your personal pseudonym. Correctors can, using the pseudonym, register the marking in Uni2work for you to review.
|
||||
|
||||
SubmissionNoUploadExpected: No upload of files expected.
|
||||
SubmissionReplace: Replace submission
|
||||
SubmissionCreated: Successfully created submission
|
||||
@ -942,9 +863,6 @@ InvitationFromTip displayName: You are receiving this invitation because #{displ
|
||||
InvitationFromTipAnonymous: You are receiving this invitiation because an user who didn't log in has caused it to be send from within Uni2work.
|
||||
InvitationUniWorXTip: Uni2work is a web based teaching management system at LMU Munich.
|
||||
|
||||
|
||||
MailSubjectCorrectorInvitation tid ssh csh shn: [#{tid}-#{ssh}-#{csh}] Invitation to be a corrector for #{shn}
|
||||
|
||||
MailSubjectTutorInvitation tid ssh csh tutn: [#{tid}-#{ssh}-#{csh}] Invitation to be a tutor for #{tutn}
|
||||
|
||||
MailSubjectSubmissionUserInvitation tid ssh csh shn: [#{tid}-#{ssh}-#{csh}] Invitation to participate in a submission for #{shn}
|
||||
@ -976,7 +894,6 @@ SheetTypeInfoBonus: Sheets marked "bonus" count normally but do not increase eit
|
||||
SheetTypeInfoInformational: Sheets marked "informational" do not counted anywhere. They are marked only as feedback for participants.
|
||||
SheetGradingBonusIncluded: Achieved bonus points are already counted among the achieved normal Their marking points.
|
||||
SummaryTitle: Summary of
|
||||
SheetGradingSummaryTitle intgr: #{intgr} #{pluralEN intgr "sheet" "sheets"}
|
||||
SubmissionGradingSummaryTitle intgr: #{intgr} #{pluralEN intgr "submission" "submissions"}
|
||||
SheetTypeExamPartPointsWeightNegative: Weight may not be negative
|
||||
SheetTypeExamPartPointsWeight: Weight
|
||||
@ -997,16 +914,6 @@ SheetGroupRegisteredGroups: Registered groups
|
||||
SheetGroupNoGroups: No group submission
|
||||
SheetGroupMaxGroupsize: Maximum group size
|
||||
|
||||
SheetFiles: Exercise sheet files
|
||||
SheetFileTypeHeader: Belongs to
|
||||
|
||||
SheetArchiveName tid ssh csh shn: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}
|
||||
SheetTypeArchiveName tid ssh csh shn renderedSft: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-#{foldCase renderedSft}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CorrCreate: Register submissions
|
||||
UnknownPseudonymWord pseudonymWord: Invalid pseudonym-word “#{pseudonymWord}”
|
||||
InvalidPseudonym pseudonym: Invalid pseudonym “#{pseudonym}”
|
||||
@ -1170,10 +1077,8 @@ MultiUserFieldInvitationExplanationAlways: An invitation will be sent via email
|
||||
LecturerInvitationAccepted lType csh: You were registered as #{lType} for #{csh}
|
||||
LecturerInvitationDeclined csh: You have declined the invitation to become course administrator for #{csh}
|
||||
|
||||
CorrectorInvitationAccepted shn: You are now a corrector for #{shn}
|
||||
TutorCorrectorInvitationAccepted shn: You are now a corrector for #{shn}
|
||||
CorrectorInvitationDeclined shn: You have declined the invitation to be a corrector for #{shn}
|
||||
SheetCorrInviteHeading shn: Invitation to be a corrector for #{shn}
|
||||
SheetCorrInviteExplanation: You were invited to be a sheet corrector.
|
||||
|
||||
TutorInvitationAccepted tutn: You are now tutor for #{tutn}
|
||||
TutorInvitationDeclined tutn: You have declined the invitation to be a tutor for #{tutn}
|
||||
@ -1803,31 +1708,10 @@ 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.
|
||||
|
||||
SheetPersonalisedFiles: Personalised sheet files
|
||||
SheetPersonalisedFilesTip: Should course participants be assigned personalised sheet files in addition to the files configured above? Only the user to which a file has been assigned may view it.
|
||||
SheetPersonalisedFilesUpload: Personalised sheet files
|
||||
SheetPersonalisedFilesUploadTip: Download the template for a ZIP-archive of personalised sheet files, move files into the directories corresponding to the desired users and upload the archive again. If the name of a personalised file matches the name of an unpersonalised file, the personalised file replaces the unpersonalised one from the respective participants' point of view.
|
||||
SheetPersonalisedFilesKeepExisting: Keep existing files
|
||||
SheetPersonalisedFilesKeepExistingTip: Should the personalised files you upload be added to the already existing ones, if applicable? Otherwise the files you upload will completely replace any existing files.
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmission: Allow non-personalised submission
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmissionTip: Should course participants with no assigned personalised files be allowed to submit anyway?
|
||||
SheetPersonalisedFilesDownloadTemplateHere: You can download a template for a ZIP-archive of personalised sheet files with the structure that Uni2work expects here:
|
||||
PersonalisedSheetFilesDownloadAnonymous: Anonymised
|
||||
PersonalisedSheetFilesDownloadSurnames: With surnames
|
||||
PersonalisedSheetFilesDownloadMatriculations: With matriculation numbers
|
||||
PersonalisedSheetFilesDownloadGroups: With registered submission groups
|
||||
CoursePersonalisedSheetFilesArchiveName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalised_files
|
||||
PersonalisedSheetFilesArchiveName tid ssh csh shn: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-personalised_files
|
||||
|
||||
PersonalisedSheetFilesMetaFilename uid: meta-information_#{toPathPiece uid}.yaml
|
||||
PersonalisedSheetFilesDownloadAnonymousField: Anonymisation
|
||||
PersonalisedSheetFilesDownloadAnonymousFieldTip: Should the ZIP-archive of personalised files be anonymised (it would then contain no immediately identifiable information regard the course participants) or should directory names be decorated with an identifiable feature of the user and the files of meta information contain additional personal data?
|
||||
PersonalisedSheetFilesIgnored count: #{count} uploaded #{pluralEN count "file was" "files were"} ignored because #{pluralEN count "it" "they"} could not be associated with both a sheet file type and a course participant.
|
||||
PersonalisedSheetFilesIgnoredIntro: The following files were ignored:
|
||||
SheetPersonalisedFilesUsersList: List of course participants who have personalised sheet files
|
||||
PersonalisedSheetFilesDownloadRestrictByExamNone: No restriction
|
||||
PersonalisedSheetFilesDownloadRestrictByExam: Restrict to exam participants
|
||||
PersonalisedSheetFilesDownloadRestrictByExamTip: Only download personalised sheet files for participants also registered to a certain exam?
|
||||
|
||||
AdminCrontabNotGenerated: Crontab not (yet) generated
|
||||
CronMatchAsap: ASAP
|
||||
@ -1837,8 +1721,6 @@ SystemExamOffice: Exam office
|
||||
SystemFaculty: Faculty member
|
||||
SystemStudent: Student
|
||||
|
||||
|
||||
|
||||
ChangelogItemFeature: Feature
|
||||
ChangelogItemBugfix: Bugfix
|
||||
|
||||
|
||||
@ -256,4 +256,6 @@ CourseApplicationsTableCsvSetRating: Rating hinzufügen
|
||||
CourseApplicationsTableCsvSetComment: Kommentar hinzufügen
|
||||
CourseApplicationsTableCsvExceptionNoMatchingUser: Kein:e passende:r Benutzer:in
|
||||
CourseApplicationsTableCsvExceptionNoMatchingAllocation: Keine passende Bewerbung
|
||||
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: Kein passendes Studienfach
|
||||
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: Kein passendes Studienfach
|
||||
|
||||
CoursePersonalisedSheetFilesArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalisierte_dateien
|
||||
|
||||
@ -255,4 +255,6 @@ CourseApplicationsTableCsvSetRating: Set rating
|
||||
CourseApplicationsTableCsvSetComment: Set comment
|
||||
CourseApplicationsTableCsvExceptionNoMatchingUser: No matching user
|
||||
CourseApplicationsTableCsvExceptionNoMatchingAllocation: No matching allocation
|
||||
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: no matching study features
|
||||
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: no matching study features
|
||||
|
||||
CoursePersonalisedSheetFilesArchiveName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalised_files
|
||||
|
||||
109
messages/uniworx/uniworx_new/sheet/de-de-formal.msg
Normal file
109
messages/uniworx/uniworx_new/sheet/de-de-formal.msg
Normal file
@ -0,0 +1,109 @@
|
||||
MailSubjectCorrectorInvitation tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: [#{tid}-#{ssh}-#{csh}] Einladung zum Korrektor/zur Korrektorin für #{shn}
|
||||
SheetCorrInviteHeading shn@SheetName: Einladung zum Korrektor/zur Korrektorin für #{shn}
|
||||
SheetCorrInviteExplanation: Sie wurden eingeladen, Korrektor:in für ein Übungsblatt zu sein.
|
||||
CorrectorInvitationAccepted shn@SheetName: Sie wurden als Korrektor:in für #{shn} eingetragen
|
||||
SheetNoCurrent: Es gibt momentan kein aktives Übungsblatt.
|
||||
SheetNoOldUnassigned: Alle Abgaben inaktiver Blätter sind bereits einem Korrektor/einer Korrektorin zugeteilt.
|
||||
SheetDelHasSubmissions objs@Int: Inkl. #{objs} #{pluralDE objs "Abgabe" "Abgaben"}!
|
||||
SheetDeleteQuestion: Wollen Sie das unten aufgeführte Übungsblatt und alle zugehörigen Abgaben wirklich löschen?
|
||||
SheetDeleted: Übungsblatt gelöscht
|
||||
SheetArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}
|
||||
SheetTypeArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName renderedSft@Text: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-#{foldCase renderedSft}
|
||||
SheetEditOk tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: Übungsblatt #{sheetName} wurde gespeichert in Kurs #{tid}-#{ssh}-#{csh}
|
||||
SheetNameDup tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: Es gibt bereits ein Übungsblatt #{sheetName} in diesem Kurs #{tid}-#{ssh}-#{csh}
|
||||
SheetVisibleFrom: Sichtbar für Teilnehmer:innen ab
|
||||
SheetVisibleFromTip: Ohne Datum nie sichtbar und keine Abgabe möglich; nur für unfertige Blätter leer lassen, deren Bewertung/Fristen sich noch ändern können
|
||||
SheetActiveFrom: Aktiv ab/Beginn Abgabezeitraum
|
||||
SheetActiveTo: Aktiv bis/Ende Abgabezeitraum
|
||||
SheetSolutionFrom: Lösung ab
|
||||
SheetSolutionFromTip: Ohne Datum nie für Teilnehmer:innen sichtbar, Korrektor:innen können diese Dateien immer herunterladen
|
||||
SheetTitle tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
SheetTitleNew tid@TermId ssh@SchoolId csh@CourseShorthand : #{tid}-#{ssh}-#{csh}: Neues Übungsblatt
|
||||
SheetName: Name
|
||||
SheetDescription: Hinweise für Teilnehmer:innen
|
||||
SheetRequireExam: Anmeldung zu einer Prüfung voraussetzen?
|
||||
SheetRequireExamTip: Wenn die Anmeldung zu einer Prüfung vorausgesetzt wird, können nur Kursteilnehmer:innen abgeben, die zum Zeitpunkt der Abgabe auch zur gewählten Prüfung angemeldet sind. Auch der Download von Übungsblatt-Dateien wird nur zur Prüfung angemeldeten Kursteilnehmer:innen erlaubt.
|
||||
SheetRequiredExam: Prüfung
|
||||
SheetFormType: Wertung & Abgabe
|
||||
SheetFormTimes: Zeiten
|
||||
SheetFormFiles: Dateien
|
||||
SheetExercise: Aufgabenstellung
|
||||
SheetHint: Hinweis
|
||||
SheetSolutionFromPlaceholder: Datum, sonst nur für Korrektor:innen
|
||||
SheetSolution: Lösung
|
||||
SheetMarkingFiles: Korrektur
|
||||
SheetMarkingTip: Hinweise zur Korrektur, sichtbar nur für Korrektor:innen
|
||||
SheetPersonalisedFilesDownload: Personalisierte Dateien herunterladen
|
||||
SheetPersonalisedFiles: Personalisierte Dateien
|
||||
SheetPersonalisedFilesTip: Sollen zusätzlich zu den oben angegebenen Dateien noch pro Kursteilnehmer:in personalisierte Dateien hinterlegt werden? Nur die jeweiligen Kursteilnehmer können ihre jeweiligen personalisierten Dateien einsehen.
|
||||
SheetPersonalisedFilesUpload: Personalisierte Dateien
|
||||
SheetPersonalisedFilesUploadTip: Laden Sie das Vorlage-Archiv herunter, sortieren Sie darin die personalisierten Dateien in die jeweiligen Verzeichnisse der Kursteilnehmer:innen ein und laden sie das Archiv dann hier wieder hoch. Wenn es eine personalisierte und eine nicht-personalisierte Datei mit dem gleichen Namen gibt, so ersetzt die personalisierte Datei aus Sicht des jeweiligen Teilnehmers/der jeweiligen Teilnehmerin die nicht-personalisierte Datei.
|
||||
SheetPersonalisedFilesKeepExisting: Bestehende Dateien behalten
|
||||
SheetPersonalisedFilesKeepExistingTip: Sollen die hier neu hochgeladenen zu den bestehenden personalisierten Dateien (sofern vorhanden) hinzugefügt werden? Ansonsten ersetzt das neu hochgeladene Archiv vollständig die bestehenden Dateien.
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmission: Nicht-personalisierte Abgabe erlauben
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmissionTip: Sollen auch Kursteilnehmer:innen abgeben dürfen, für die keine personalisierten Dateien hinterlegt wurden?
|
||||
SheetPersonalisedFilesDownloadTemplateHere: Sie können hier ein Vorlage-Archiv für die vom System erwartete Verzeichnisstruktur für personalisierte Übungsblatt-Dateien herunterladen:
|
||||
SheetPersonalisedFilesUsersList: Liste von Teilnehmern mit personalisierten Übungsblatt-Dateien
|
||||
SheetActiveFromTip: Download der Aufgabenstellung und Abgabe erst ab diesem Datum möglich. Ohne Datum keine Abgabe und keine Herausgabe der Aufgabenstellung
|
||||
SheetActiveToTip: Abgabe nur bis zu diesem Datum möglich. Ohne Datum unbeschränkte Abgabe möglich (soweit gefordert).
|
||||
SheetHintFrom: Hinweis ab
|
||||
SheetHintFromPlaceholder: Datum, sonst nur für Korrektor:innen
|
||||
SheetHintFromTip: Ohne Datum nie für Teilnehmer:innen sichtbar, Korrektor:innen können diese Dateien immer herunterladen
|
||||
SheetGroup: Gruppenabgabe
|
||||
AutoAssignCorrs: Korrekturen nach Ablauf des Abgabezeitraums automatisch zuteilen
|
||||
SheetMarking: Hinweise für Korrektor:innen
|
||||
SheetAnonymousCorrection: Anonymisierte Korrektur
|
||||
SheetAnonymousCorrectionTip: Wenn die Korrektur anonymisiert erfolgt, können Korrektor:innen die ihnen zugeteilten Abgaben nicht bestimmten Studierenden zuordnen (Name, Matrikelnummer und feste Abgabegruppe der Abgebenden werden versteckt)
|
||||
SheetErrVisibility: "Aktiv ab/Beginn Abgabezeitraum" muss nach "Sichbar für Teilnehmer:in ab" liegen
|
||||
SheetErrDeadlineEarly: "Aktiv bis/Ende Abgabezeitraum" muss nach "Aktiv ab/Beginn Abzeitraum" liegen
|
||||
SheetErrHintEarly: Hinweise dürfen erst nach Beginn des Abgabezeitraums herausgegeben werden
|
||||
SheetErrSolutionEarly: Lösungen dürfen erst nach Ende der Abgabezeitraums herausgegeben werden
|
||||
SheetErrVisibleWithoutActive: Wird "Sichtbar für Teilnehmer:in ab" angegeben, muss auch "Aktiv ab/Beginn Abgabezeitraum" angegeben werden
|
||||
SheetSubmissionModeNoneWithoutNotGraded: Es wurde "Keine Abgabe" eingestellt, jedoch nicht "Keine Bewertung". Kursteilnehmer:innen werden nicht abgeben können.
|
||||
SheetWarnNoActiveTo: "Aktiv bis/Ende Abgabezeitraum" sollte stets angegeben werden
|
||||
CountTutProp: Tutorien zählen gegen Proportion
|
||||
CountTutPropTip: Wenn Abgaben nach Tutorium zugeteilt werden, zählen diese Zuteilungen in Bezug auf den jeweiligen Anteil?
|
||||
SheetCorrector: Korrektor
|
||||
CorrectorExists: Nutzer:in ist bereits als Korrektor:in eingetragen
|
||||
SheetCorrectorState: Status
|
||||
ProportionNegative: Anteile dürfen nicht negativ sein
|
||||
SheetCorrectorProportion: Anteil
|
||||
Correctors: Korrektor:innen
|
||||
SheetAccessibleSince: Verfügbar seit
|
||||
Files: Dateien
|
||||
SheetSheetType: Wertung
|
||||
RatingPercent: Erreicht
|
||||
IsRated: Korrigiert
|
||||
SheetTypeIsExam: Anrechnung „als Prüfungsaufgabe“
|
||||
SheetGradingSummaryTitle intgr@Integer: #{intgr} #{pluralDE intgr "Blatt" "Blätter"}
|
||||
PersonalisedSheetFilesIgnored count@Int64: Es #{pluralDE count "wurde" "wurden"} #{count} hochgeladene #{pluralDE count "Datei" "Dateien"} ignoriert, da sie keinem Übungsblattdatei-Typ oder keinem Kursteilnehmer/keiner Kursteilnehmerin zugeordnet werden #{pluralDE count "konnte" "konnten"}.
|
||||
PersonalisedSheetFilesIgnoredIntro: Es wurden die folgenden Dateien ignoriert:
|
||||
PersonalisedSheetFilesDownloadRestrictByExamNone: Keine Einschränkung
|
||||
PersonalisedSheetFilesDownloadRestrictByExam: Nur Prüfungsteilnehmer:innen
|
||||
PersonalisedSheetFilesDownloadRestrictByExamTip: Sollen nur personalisierte Übungsblatt-Dateien exportiert werden, für jene Kursteilnehmer:innen, die auch Teilnehmer:innen einer bestimmten Prüfung sind?
|
||||
PersonalisedSheetFilesDownloadAnonymousField: Anonymisierung
|
||||
PersonalisedSheetFilesDownloadAnonymousFieldTip: Sollen Verzeichnisnamen innerhalb des Archivs von personalisierten Dateien anonymisiert werden (sie enthalten dann keinerlei unmittelbar identifizierende Informationen zu den Kursteilnehmer:innen), oder sollen die Verzeichnisnamen mit einem Merkmal versehen werden und die Metainformations-Dateien zusätzlich persönliche Daten enthalten?
|
||||
PersonalisedSheetFilesMetaFilename uid@CryptoFileNameUser: meta-informationen_#{toPathPiece uid}.yaml
|
||||
PersonalisedSheetFilesArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-personalisierte_dateien
|
||||
SheetGeneratePseudonym: Generieren
|
||||
SheetFileTypeHeader: Zugehörigkeit
|
||||
SheetCorrectorSubmissionsTip: Abgabe erfolgt über ein Uni2work-externes Verfahren (zumeist in Papierform durch Einwurf) unter Angabe eines persönlichen Pseudonyms. Korrektor:innen können mithilfe des Pseudonyms später Korrekturergebnisse in Uni2work eintragen, damit Sie sie einsehen können.
|
||||
CorByTut: Zuteilung nach Tutorium
|
||||
RatingAchievedOf achieved@Points possible@Points: #{achieved} von #{possible}
|
||||
RatingPassed: Bestanden
|
||||
RatingNotPassed: Nicht bestanden
|
||||
SheetInvisible: Dieses Übungsblatt ist für Teilnehmer:innen momentan unsichtbar!
|
||||
SheetActiveFromParticipant: Beginn Abgabezeitraum
|
||||
SheetActiveFromParticipantNoSubmit: Herausgabe der Aufgabestellung
|
||||
SheetActiveFromUnset: Nie
|
||||
SheetActiveToParticipant: Ende Abgabezeitraum
|
||||
SheetActiveToUnset: Nie
|
||||
SheetShowRequiredExam: Vorausgesetze Prüfungsanmeldung
|
||||
SheetSubmissionExamRegistrationRequired: Um die Angabe für dieses Übungsblatt herunterzuladen oder Abzugeben ist eine Anmeldung zur genannten Prüfung erforderlich.
|
||||
SheetFilesExamRegistrationRequired: Um die Dateien dieses Übungsblattes herunterzuladen oder Abzugeben ist eine Anmeldung zu der oben genannten Prüfung erforderlich.
|
||||
SheetFilesMissingPersonalisedFiles: Um abzugeben muss zunächst ein Kursverwalter/eine Kursverwalterin personalisierte Übungsblatt-Dateien für Sie hinterlegen.
|
||||
SheetSubmissionMode: Abgabe-Modus
|
||||
SheetType: Wertung
|
||||
SheetPseudonym: Persönliches Abgabe-Pseudonym
|
||||
SheetFiles: Übungsblatt-Dateien
|
||||
SheetPersonalisedSheetFilesArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalisierte_dateien
|
||||
110
messages/uniworx/uniworx_new/sheet/en-eu.msg
Normal file
110
messages/uniworx/uniworx_new/sheet/en-eu.msg
Normal file
@ -0,0 +1,110 @@
|
||||
MailSubjectCorrectorInvitation tid ssh csh shn: [#{tid}-#{ssh}-#{csh}] Invitation to be a corrector for #{shn}
|
||||
SheetCorrInviteHeading shn: Invitation to be a corrector for #{shn}
|
||||
SheetCorrInviteExplanation: You were invited to be a sheet corrector.
|
||||
CorrectorInvitationAccepted shn: You are now a corrector for #{shn}
|
||||
SheetNoCurrent: There is no currently active exercise sheet
|
||||
SheetNoOldUnassigned: All submissions for inactive sheets are already assigned to correctors.
|
||||
SheetDelHasSubmissions objs: Incl. #{objs} #{pluralEN objs "submission" "submissions"}
|
||||
SheetDeleteQuestion: Do you really want to delete the below-mentioned exercise sheet and all associated submissions?
|
||||
SheetDeleted: Successfully deleted exercise sheet
|
||||
SheetArchiveName tid ssh csh shn: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}
|
||||
SheetTypeArchiveName tid ssh csh shn renderedSft: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-#{foldCase renderedSft}
|
||||
SheetEditOk tid ssh csh sheetName: Successfully saved exercise sheet #{sheetName} in course #{tid}-#{ssh}-#{csh}
|
||||
SheetNameDup tid ssh csh sheetName: There already is an exercise sheet #{sheetName} in course #{tid}-#{ssh}-#{csh}
|
||||
SheetVisibleFrom: Visible from (for participants)
|
||||
SheetVisibleFromTip: Always invisible for participants and no submission possible if left empty; only leave this field empty for temporary/unfinished sheets
|
||||
SheetActiveFrom: Active from/Submission period start
|
||||
SheetActiveTo: Active to/Submission period end
|
||||
SheetSolutionFrom: Solution from
|
||||
SheetSolutionFromTip: Always invisible for participants if left empty; correctors can always download solutions
|
||||
SheetName: Name
|
||||
SheetDescription: Description
|
||||
SheetRequireExam: Require registration for an exam?
|
||||
SheetRequireExamTip: If registration for an exam is required, only course participants that are registered for that exam at the time of submission will be allowed to create submission. Download of sheet files will also be restricted to course participants registered for the exam.
|
||||
SheetRequiredExam: Exam
|
||||
SheetFormType: Valuation & submission
|
||||
SheetFormTimes: Times
|
||||
SheetFormFiles: Files
|
||||
SheetExercise: Assignment
|
||||
SheetHint: Hint
|
||||
SheetSolutionFromPlaceholder: Date, correctors only otherwise
|
||||
SheetSolution: Solution
|
||||
SheetMarkingFiles: Correction
|
||||
SheetMarkingTip: Instructions for correction, visible only to correctors
|
||||
SheetPersonalisedFilesDownload: Download personalised sheet files
|
||||
SheetPersonalisedFiles: Personalised sheet files
|
||||
SheetPersonalisedFilesTip: Should course participants be assigned personalised sheet files in addition to the files configured above? Only the user to which a file has been assigned may view it.
|
||||
SheetPersonalisedFilesUpload: Personalised sheet files
|
||||
SheetPersonalisedFilesUploadTip: Download the template for a ZIP-archive of personalised sheet files, move files into the directories corresponding to the desired users and upload the archive again. If the name of a personalised file matches the name of an unpersonalised file, the personalised file replaces the unpersonalised one from the respective participants' point of view.
|
||||
SheetPersonalisedFilesKeepExisting: Keep existing files
|
||||
SheetPersonalisedFilesKeepExistingTip: Should the personalised files you upload be added to the already existing ones, if applicable? Otherwise the files you upload will completely replace any existing files.
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmission: Allow non-personalised submission
|
||||
SheetPersonalisedFilesAllowNonPersonalisedSubmissionTip: Should course participants with no assigned personalised files be allowed to submit anyway?
|
||||
SheetPersonalisedFilesDownloadTemplateHere: You can download a template for a ZIP-archive of personalised sheet files with the structure that Uni2work expects here:
|
||||
SheetPersonalisedFilesUsersList: List of course participants who have personalised sheet files
|
||||
SheetActiveFromTip: The exercise sheet's assignment will only be available for download and submission starting at this time. If left empty no submission or download of assignment is ever allowed
|
||||
SheetActiveToTip: Submission will only be possible until this time. If left empty submissions are allowed forever (if at all possible)
|
||||
SheetHintFrom: Hint from
|
||||
SheetHintFromPlaceholder: Date, correctors only otherwise
|
||||
SheetHintFromTip: Always invisible for participants if left empty; correctors can always download hints
|
||||
SheetGroup: Group submission
|
||||
AutoAssignCorrs: Automatically assign corrections after expiration of the submission period
|
||||
SheetMarking: Marking hints for correctors
|
||||
SheetAnonymousCorrection: Anonymized correction
|
||||
SheetAnonymousCorrectionTip: If correction is anonymized, correctors cannot see which students are involved in submissions that are assigned to them (names, matriculation numbers, and registered submission groups are hidden)
|
||||
SheetErrVisibility: "Submission period start" must be after "Visible from"
|
||||
SheetErrDeadlineEarly: "Submission period end" must be after "Submission period start"
|
||||
SheetErrHintEarly: "Hint from" must be after "Submission period start"
|
||||
SheetErrSolutionEarly: "Solution from" must be after "Submission period end"
|
||||
SheetErrVisibleWithoutActive: If “Visible from (for participants)” is specified “Active from/Submission period start” must also be specified
|
||||
SheetSubmissionModeNoneWithoutNotGraded: The sheet was configured to be "No submission" but not "Not marked". Course participants will not be able to submit.
|
||||
SheetWarnNoActiveTo: “Active to/Submission period end” should always be specified
|
||||
CountTutProp: Tutorials count against proportion
|
||||
CountTutPropTip: If submissions are assigned by tutorial, do those assignments count with regard to the set proportion?
|
||||
SheetCorrector: Corrector
|
||||
CorrectorExists: User already is a corrector
|
||||
SheetCorrectorState: State
|
||||
ProportionNegative: Proportions may not be negative
|
||||
SheetCorrectorProportion: Proportion
|
||||
Correctors: Correctors
|
||||
SheetAccessibleSince: Accessible since
|
||||
Files: Files
|
||||
SheetSheetType: Marking
|
||||
RatingPercent: Achieved
|
||||
IsRated: Marked
|
||||
SheetTypeIsExam: Rating „as an exam part“
|
||||
SheetGradingSummaryTitle intgr: #{intgr} #{pluralEN intgr "sheet" "sheets"}
|
||||
PersonalisedSheetFilesIgnored count: #{count} uploaded #{pluralEN count "file was" "files were"} ignored because #{pluralEN count "it" "they"} could not be associated with both a sheet file type and a course participant.
|
||||
PersonalisedSheetFilesIgnoredIntro: The following files were ignored:
|
||||
PersonalisedSheetFilesDownloadRestrictByExamNone: No restriction
|
||||
PersonalisedSheetFilesDownloadRestrictByExam: Restrict to exam participants
|
||||
PersonalisedSheetFilesDownloadRestrictByExamTip: Only download personalised sheet files for participants also registered to a certain exam?
|
||||
PersonalisedSheetFilesDownloadAnonymousField: Anonymisation
|
||||
PersonalisedSheetFilesDownloadAnonymousFieldTip: Should the ZIP-archive of personalised files be anonymised (it would then contain no immediately identifiable information regard the course participants) or should directory names be decorated with an identifiable feature of the user and the files of meta information contain additional personal data?
|
||||
PersonalisedSheetFilesMetaFilename uid: meta-information_#{toPathPiece uid}.yaml
|
||||
PersonalisedSheetFilesArchiveName tid ssh csh shn: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-personalised_files
|
||||
SheetGeneratePseudonym: Generate
|
||||
SheetFileTypeHeader: Belongs to
|
||||
SheetCorrectorSubmissionsTip: Submissions are expected to be handed in through some Uni2work-external procedure (usually on paper) marked with your personal pseudonym. Correctors can, using the pseudonym, register the marking in Uni2work for you to review.
|
||||
CorByTut: Assign by tutorial
|
||||
RatingAchievedOf achieved possible: #{achieved} of #{possible}
|
||||
RatingPassed: Passed
|
||||
RatingNotPassed: Failed
|
||||
SheetInvisible: This exercise sheet is currently invisible for participants!
|
||||
SheetActiveFromParticipant: Submission period start
|
||||
SheetActiveFromParticipantNoSubmit: Assignment published
|
||||
SheetActiveFromUnset: Never
|
||||
SheetActiveToParticipant: Submission period end
|
||||
SheetActiveToUnset: Never
|
||||
SheetShowRequiredExam: Required exam registration
|
||||
SheetSubmissionExamRegistrationRequired: Registration for the specified exam is required to download files associated with this exercise sheet and to submit.
|
||||
SheetFilesExamRegistrationRequired: To download files for this exercise sheet or to submit you must first register for the exam mentioned above.
|
||||
SheetFilesMissingPersonalisedFiles: To submit a course administrator has to first assign you some personalised exercise sheet files.
|
||||
SheetSubmissionMode: Submission mode
|
||||
SheetType: Marking
|
||||
SheetPseudonym: Personal pseudonym
|
||||
SheetFiles: Exercise sheet files
|
||||
SheetTitle tid@TermId ssh@SchoolId csh@CourseShorthand sheetName@SheetName: #{tid}-#{ssh}-#{csh} #{sheetName}
|
||||
SheetTitleNew tid@TermId ssh@SchoolId csh@CourseShorthand : #{tid}-#{ssh}-#{csh}: New sheet
|
||||
SheetPersonalisedSheetFilesArchiveName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalised_files
|
||||
|
||||
@ -6,6 +6,7 @@ module Foundation.I18n
|
||||
, UniWorXMessage(..), UniWorXTestMessage(..), UniWorXSettingsMessage(..)
|
||||
, UniWorXHelpMessage(..), UniWorXNavigationMessage(..), UniWorXWorkflowMessage(..)
|
||||
, UniWorXCourseMessage(..), UniWorXAllocationMessage(..), UniWorXExamMessage(..)
|
||||
, UniWorXSheetMessage(..)
|
||||
, ShortTermIdentifier(..)
|
||||
, MsgLanguage(..)
|
||||
, ShortSex(..)
|
||||
@ -142,6 +143,7 @@ mkMessageAddition ''UniWorX "Workflow" "messages/uniworx/uniworx_new/workflows"
|
||||
mkMessageAddition ''UniWorX "Course" "messages/uniworx/uniworx_new/courses" "de-de-formal"
|
||||
mkMessageAddition ''UniWorX "Allocation" "messages/uniworx/uniworx_new/allocation" "de-de-formal"
|
||||
mkMessageAddition ''UniWorX "Exam" "messages/uniworx/uniworx_new/exam" "de-de-formal"
|
||||
mkMessageAddition ''UniWorX "Sheet" "messages/uniworx/uniworx_new/sheet" "de-de-formal"
|
||||
mkMessageVariant ''UniWorX ''CampusMessage "messages/auth/campus" "de"
|
||||
mkMessageVariant ''UniWorX ''DummyMessage "messages/auth/dummy" "de"
|
||||
mkMessageVariant ''UniWorX ''PWHashMessage "messages/auth/pw-hash" "de"
|
||||
|
||||
@ -546,7 +546,7 @@ pageHeading (CourseR tid ssh csh SheetListR)
|
||||
pageHeading (CourseR tid ssh csh SheetNewR)
|
||||
= Just $ i18n $ MsgSheetNewHeading tid ssh csh
|
||||
pageHeading (CSheetR tid ssh csh shn SShowR)
|
||||
= Just $ i18n $ MsgSheetTitle tid ssh csh shn
|
||||
= Just $ i18n $ MsgSheetTitleHead tid ssh csh shn
|
||||
-- = Just $ i18n $ prependCourseTitle tid ssh csh $ SomeMessage shn -- TODO: for consistency use prependCourseTitle throughout ERROR: circularity
|
||||
pageHeading (CSheetR tid ssh csh shn SEditR)
|
||||
= Just $ i18n $ MsgSheetEditHead tid ssh csh shn
|
||||
|
||||
@ -259,11 +259,11 @@ courseUserSubmissionsSection (Entity cid Course{..}) (Entity uid _) = do
|
||||
[ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseCourseMembers)
|
||||
, prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgTableMatrikelNr)
|
||||
-- "pseudonym" TODO DB only stores Word24
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt textField (fslI MsgSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgCorrector)
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt textField (fslI MsgTableSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgTableCorrector)
|
||||
, prismAForm (singletonFilter "isassigned" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgHasCorrector)
|
||||
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgSubmission)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgTableSubmission)
|
||||
]
|
||||
psValidator = def & defaultPagesize PagesizeAll -- Assisstant always want to see them all at once anyway
|
||||
(cWdgt, statistics) <- lift . correctionsR' whereClause colonnade filterUI psValidator $ Map.fromList
|
||||
|
||||
@ -126,7 +126,7 @@ getMaterialListR tid ssh csh = do
|
||||
| otherwise -> anchorCell (filesLink materialName) iconFileDownload
|
||||
, sortable (Just "visible-from") (i18nCell MsgAccessibleSince)
|
||||
$ foldMap (dateTimeCellVisible now) . materialVisibleFrom . row2material
|
||||
, sortable (Just "last-edit") (i18nCell MsgFileModified)
|
||||
, sortable (Just "last-edit") (i18nCell MsgTableFileModified)
|
||||
$ if seeAllModificationTimestamps
|
||||
then dateTimeCell . materialLastEdit . row2material
|
||||
else materialModDateCell . row2material
|
||||
@ -220,7 +220,7 @@ getMShowR tid ssh csh mnm = do
|
||||
return matFile
|
||||
, dbtRowKey = (E.^. MaterialFileId)
|
||||
, dbtColonnade = widgetColonnade $ mconcat
|
||||
[ fmap (<> indicatorCell) . sortable (Just "path") (i18nCell MsgFileTitle) $ \(dbrOutput -> Entity mfId MaterialFile{..})
|
||||
[ fmap (<> indicatorCell) . sortable (Just "path") (i18nCell MsgTableFileTitle) $ \(dbrOutput -> Entity mfId MaterialFile{..})
|
||||
-> let matLink
|
||||
| isVideo
|
||||
= CourseR tid ssh csh . MaterialR mnm . MVideoR <$> encrypt mfId
|
||||
|
||||
@ -142,7 +142,7 @@ newsUpcomingSheets uid = do
|
||||
textCell $ toMessage ssh
|
||||
, sortable (Just "course") (i18nCell MsgTableCourse) $ \DBRow{ dbrOutput=(E.Value tid, E.Value ssh, E.Value csh, _, _, _) } ->
|
||||
anchorCell (CourseR tid ssh csh CShowR) csh
|
||||
, sortable (Just "sheet") (i18nCell MsgSheet) $ \DBRow{ dbrOutput=(E.Value tid, E.Value ssh, E.Value csh, E.Value shn, _, _) } ->
|
||||
, sortable (Just "sheet") (i18nCell MsgTableSheet) $ \DBRow{ dbrOutput=(E.Value tid, E.Value ssh, E.Value csh, E.Value shn, _, _) } ->
|
||||
anchorCell (CSheetR tid ssh csh shn SShowR) shn
|
||||
, sortable (Just "deadline") (i18nCell MsgDeadline) $ \DBRow{ dbrOutput=(_, _, _, _, E.Value mDeadline, _) } ->
|
||||
maybe mempty (cell . formatTimeW SelFormatDateTime) mDeadline
|
||||
|
||||
@ -633,10 +633,10 @@ mkSubmissionTable =
|
||||
<*> view _2
|
||||
, sortable (Just "course") (i18nCell MsgTableCourse) $
|
||||
courseCellCL <$> view (_dbrOutput . _1)
|
||||
, sortable (Just "sheet") (i18nCell MsgSheet) . magnify _dbrOutput $
|
||||
, sortable (Just "sheet") (i18nCell MsgTableSheet) . magnify _dbrOutput $
|
||||
sheetCell <$> view _1
|
||||
<*> view _2
|
||||
, sortable (toNothingS "submission") (i18nCell MsgSubmission) . magnify _dbrOutput $
|
||||
, sortable (toNothingS "submission") (i18nCell MsgTableSubmission) . magnify _dbrOutput $
|
||||
submissionCell <$> view _1
|
||||
<*> view _2
|
||||
<*> view (_3 . _entityKey)
|
||||
@ -775,15 +775,15 @@ mkCorrectionsTable =
|
||||
schoolCellCL <$> view (_dbrOutput . _1)
|
||||
, sortable (Just "course") (i18nCell MsgTableCourse) $
|
||||
courseCellCL <$> view (_dbrOutput . _1)
|
||||
, sortable (Just "sheet") (i18nCell MsgSheet) . magnify _dbrOutput $
|
||||
, sortable (Just "sheet") (i18nCell MsgTableSheet) . magnify _dbrOutput $
|
||||
sheetCell <$> view _1 <*> view _2
|
||||
, sortable (Just "cstate") (i18nCell MsgCorState) $
|
||||
, sortable (Just "cstate") (i18nCell MsgTableCorState) $
|
||||
correctorStateCell <$> view (_dbrOutput . _3 . _entityVal)
|
||||
, sortable (toNothing "cload") (i18nCell MsgCorProportion) $
|
||||
, sortable (toNothing "cload") (i18nCell MsgTableCorProportion) $
|
||||
correctorLoadCell <$> view (_dbrOutput . _3 . _entityVal)
|
||||
, sortable (toNothing "assigned") (i18nCell MsgCorProportion) $
|
||||
, sortable (toNothing "assigned") (i18nCell MsgTableCorProportion) $
|
||||
int64Cell <$> view (_dbrOutput . _4 . _1 . _Value)
|
||||
, sortable (toNothing "corrected") (i18nCell MsgCorProportion) $
|
||||
, sortable (toNothing "corrected") (i18nCell MsgTableCorProportion) $
|
||||
int64Cell <$> view (_dbrOutput . _4 . _2 . _Value)
|
||||
]
|
||||
|
||||
|
||||
@ -93,7 +93,7 @@ makeSheetForm cId msId template = identifyForm FIDsheet . validateForm validateS
|
||||
<* aformSection MsgSheetFormType
|
||||
<*> submissionModeForm ((sfSubmissionMode <$> template) <|> pure (SubmissionMode False . Just $ UploadAny True defaultExtensionRestriction False))
|
||||
<*> sheetGroupAFormReq (fslI MsgSheetGroup) ((sfGrouping <$> template) <|> pure NoGroups)
|
||||
<*> sheetTypeAFormReq cId (fslI MsgSheetType) (sfType <$> template)
|
||||
<*> sheetTypeAFormReq cId (fslI MsgSheetSheetType) (sfType <$> template)
|
||||
<*> apopt checkBoxField (fslI MsgAutoAssignCorrs) (sfAutoDistribute <$> template)
|
||||
<*> aopt htmlField (fslI MsgSheetMarking) (sfMarkingText <$> template)
|
||||
<*> apopt checkBoxField (fslI MsgSheetAnonymousCorrection & setTooltip MsgSheetAnonymousCorrectionTip) (sfAnonymousCorrection <$> template)
|
||||
@ -186,7 +186,7 @@ correctorForm loads' = wFormToAForm $ do
|
||||
-> FieldView UniWorX
|
||||
-> Maybe (Form (Map ListPosition (Either UserEmail UserId) -> FormResult (Map ListPosition (Either UserEmail UserId))))
|
||||
miAdd _ _ nudge submitView = Just $ \csrf -> do
|
||||
(addRes, addView) <- mpreq (multiUserInvitationField . MUILookupAnyUser $ Just previousCorrectors) (fslpI MsgCorrector (mr MsgLdapIdentificationOrEmail) & setTooltip MsgMultiEmailFieldTip & addName (nudge "corrector")) Nothing
|
||||
(addRes, addView) <- mpreq (multiUserInvitationField . MUILookupAnyUser $ Just previousCorrectors) (fslpI MsgSheetCorrector (mr MsgLdapIdentificationOrEmail) & setTooltip MsgMultiEmailFieldTip & addName (nudge "corrector")) Nothing
|
||||
let addRes' = addRes <&> \nCorrs oldData@(maybe 0 (succ . fst) . Map.lookupMax -> kStart) -> if
|
||||
| existing <- Set.intersection nCorrs . Set.fromList $ Map.elems oldData
|
||||
, not $ null existing
|
||||
|
||||
@ -47,11 +47,11 @@ getSheetListR tid ssh csh = do
|
||||
|
||||
sheetCol = widgetColonnade . mconcat $
|
||||
[ -- dbRow ,
|
||||
sortable (Just "name") (i18nCell MsgSheet)
|
||||
sortable (Just "name") (i18nCell MsgTableSheet)
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, _)} -> anchorCell (CSheetR tid ssh csh sheetName SShowR) sheetName
|
||||
, sortable (Just "last-edit") (i18nCell MsgLastEdit)
|
||||
, sortable (Just "last-edit") (i18nCell MsgTableLastEdit)
|
||||
$ \DBRow{dbrOutput=(_, E.Value mEditTime, _, _)} -> foldMap dateTimeCell mEditTime
|
||||
, sortable (Just "visible-from") (i18nCell MsgAccessibleSince)
|
||||
, sortable (Just "visible-from") (i18nCell MsgSheetAccessibleSince)
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, _)} -> foldMap (dateTimeCellVisible now) sheetVisibleFrom
|
||||
, sortable (toNothing "downloads") (i18nCell MsgFiles)
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, existFiles)} -> listCell
|
||||
@ -68,11 +68,11 @@ getSheetListR tid ssh csh = do
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, _)} -> maybe mempty dateTimeCell sheetActiveFrom
|
||||
, sortable (Just "submission-until") (i18nCell MsgSheetActiveTo)
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, _)} -> maybe mempty dateTimeCell sheetActiveTo
|
||||
, sortable Nothing (i18nCell MsgSheetType) $ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, _)} -> cell $ do
|
||||
, sortable Nothing (i18nCell MsgSheetSheetType) $ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, _, _)} -> cell $ do
|
||||
sheetTypeDesc <- liftHandler . runDB $ sheetTypeDescription sheetCourse sheetType
|
||||
tr <- getTranslate
|
||||
toWidget $ sheetTypeDesc tr
|
||||
, sortable Nothing (i18nCell MsgSubmission)
|
||||
, sortable Nothing (i18nCell MsgTableSubmission)
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, mbSub, _)} -> case mbSub of
|
||||
Nothing -> mempty
|
||||
(Just (Entity sid Submission{})) ->
|
||||
@ -81,7 +81,7 @@ getSheetListR tid ssh csh = do
|
||||
cid' <- mkCid
|
||||
return $ CSubmissionR tid ssh csh sheetName cid' SubShowR
|
||||
in anchorCellM mkRoute (mkCid >>= \cid2 -> [whamlet|#{cid2}|])
|
||||
, sortable (Just "rating") (i18nCell MsgRating)
|
||||
, sortable (Just "rating") (i18nCell MsgTableRating)
|
||||
$ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, mbSub,_)} ->
|
||||
let stats = sheetTypeSum sheetType in -- for statistics over all shown rows
|
||||
case mbSub of
|
||||
|
||||
@ -396,7 +396,7 @@ getPersonalFilesR cId mbsid = do
|
||||
|
||||
formResult psfRes $ \PersonalisedSheetFilesForm{..} -> do
|
||||
archiveName <- fmap (flip addExtension (unpack extensionZip) . unpack) . ap getMessageRender . pure $ case mbSheet of
|
||||
Nothing -> MsgCoursePersonalisedSheetFilesArchiveName courseTerm courseSchool courseShorthand
|
||||
Nothing -> MsgSheetPersonalisedSheetFilesArchiveName courseTerm courseSchool courseShorthand
|
||||
Just Sheet{..} -> MsgPersonalisedSheetFilesArchiveName courseTerm courseSchool courseShorthand sheetName
|
||||
sendResponse <=< serveZipArchive' archiveName $ sourcePersonalisedSheetFiles cId mbsid Nothing psffAnonymous psffRestrictions
|
||||
|
||||
|
||||
@ -56,12 +56,12 @@ getSShowR tid ssh csh shn = do
|
||||
-- i18nCell ftype & cellContents %~ (\act -> act <* tell (Any True))
|
||||
|
||||
-- , colFilePath (view _1) (\row -> let fType = view _3 row in let fName = view _1 row in (CSheetR tid ssh csh shn (SFileR (E.unValue fType) (E.unValue fName))))
|
||||
, sortable (Just "path") (i18nCell MsgFileTitle) $ \(E.Value fName, _, E.Value fType, _) -> anchorCell
|
||||
, sortable (Just "path") (i18nCell MsgTableFileTitle) $ \(E.Value fName, _, E.Value fType, _) -> anchorCell
|
||||
(CSheetR tid ssh csh shn $ SFileR fType fName)
|
||||
(str2widget fName)
|
||||
, sortable (toNothing "visible") (i18nCell MsgVisibleFrom)
|
||||
, sortable (toNothing "visible") (i18nCell MsgSheetVisibleFrom)
|
||||
$ \(_, _ , E.Value ftype, _) -> sftVisible ftype
|
||||
, sortable (Just "time") (i18nCell MsgFileModified)
|
||||
, sortable (Just "time") (i18nCell MsgTableFileModified)
|
||||
$ \(_,E.Value modified, E.Value ftype, _) -> sftModification ftype modified
|
||||
-- , colFileModification (view _2)
|
||||
]
|
||||
|
||||
@ -37,7 +37,7 @@ postSubAssignR tid ssh csh shn cID = do
|
||||
$logDebugS "SubAssignR" $ tshow currentCorrector
|
||||
let correctorField = selectField $ optionsPersistCryptoId [UserId <-. sheetCorrectors] [Asc UserSurname, Asc UserDisplayName] userDisplayName
|
||||
((corrResult, corrForm'), corrEncoding) <- runFormPost . renderAForm FormStandard $
|
||||
aopt correctorField (fslI MsgCorrector) (Just currentCorrector)
|
||||
aopt correctorField (fslI MsgTableCorrector) (Just currentCorrector)
|
||||
formResult corrResult $ \(fmap entityKey -> mbUserId) -> do
|
||||
when (mbUserId /= fmap entityKey currentCorrector) . runDB $ do
|
||||
now <- liftIO getCurrentTime
|
||||
|
||||
@ -41,7 +41,7 @@ postCorrectionsGradeR = do
|
||||
[ prismAForm (singletonFilter "course" ) mPrev $ aopt (lift `hoistField` selectField courseOptions) (fslI MsgTableCourse)
|
||||
, prismAForm (singletonFilter "term" ) mPrev $ aopt (lift `hoistField` selectField termOptions) (fslI MsgTableTerm)
|
||||
, prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectField schoolOptions) (fslI MsgTableCourseSchool)
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt (lift `hoistField` textField) (fslI MsgSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt (lift `hoistField` textField) (fslI MsgTableSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
|
||||
, prismAForm (singletonFilter "rating-visible" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingDone)
|
||||
, prismAForm (singletonFilter "rating" . maybePrism _PathPiece) mPrev $ aopt (lift `hoistField` pointsField) (fslI MsgColumnRatingPoints)
|
||||
|
||||
@ -483,7 +483,7 @@ submissionHelper tid ssh csh shn mcid = do
|
||||
-- Maybe construct a table to display uploaded archive files
|
||||
let colonnadeFiles :: _ -> Colonnade Sortable _ (DBCell (HandlerFor UniWorX) ())
|
||||
colonnadeFiles cid = mconcat $ catMaybes
|
||||
[ Just . sortable (Just "path") (i18nCell MsgFileTitle) $ \(mOrig, mCorr) -> let
|
||||
[ Just . sortable (Just "path") (i18nCell MsgTableFileTitle) $ \(mOrig, mCorr) -> let
|
||||
Just fileTitle' = submissionFileTitle . entityVal <$> (mOrig <|> mCorr)
|
||||
origIsFile = fmap (isJust . submissionFileContent . entityVal) mOrig
|
||||
corrIsFile = fmap (isJust . submissionFileContent . entityVal) mCorr
|
||||
@ -491,12 +491,12 @@ submissionHelper tid ssh csh shn mcid = do
|
||||
in if
|
||||
| Just True <- origIsFile -> anchorCell (subDownloadLink cid SubmissionOriginal fileTitle') [whamlet|#{fileTitle'}|]
|
||||
| otherwise -> textCell $ bool (<> "/") id isFile fileTitle'
|
||||
, guardOn showCorrection . sortable (toNothing "state") (i18nCell MsgCorState) $ \(_, mCorr) -> case mCorr of
|
||||
, guardOn showCorrection . sortable (toNothing "state") (i18nCell MsgTableCorState) $ \(_, mCorr) -> case mCorr of
|
||||
Nothing -> cell mempty
|
||||
Just (Entity _ SubmissionFile{..})
|
||||
| isJust submissionFileContent -> anchorCell (subDownloadLink cid SubmissionCorrected submissionFileTitle) (i18n MsgFileCorrected :: Widget)
|
||||
| otherwise -> i18nCell MsgCorrected
|
||||
, Just . sortable (Just "time") (i18nCell MsgFileModified) $ \(mOrig, mCorr) -> let
|
||||
, Just . sortable (Just "time") (i18nCell MsgTableFileModified) $ \(mOrig, mCorr) -> let
|
||||
origTime = submissionFileModified . entityVal <$> mOrig
|
||||
corrTime = submissionFileModified . entityVal <$> mCorr
|
||||
Just fileTime = (max <$> origTime <*> corrTime) <|> origTime <|> corrTime
|
||||
|
||||
@ -95,7 +95,7 @@ colCourse = sortable (Just "course") (i18nCell MsgTableCourse)
|
||||
$ \DBRow{ dbrOutput=(_, _, (_,csh,tid,sid),_ , _, _, _, _) } -> courseCellCL (tid,sid,csh)
|
||||
|
||||
colSheet :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a)
|
||||
colSheet = sortable (Just "sheet") (i18nCell MsgSheet) $ \row ->
|
||||
colSheet = sortable (Just "sheet") (i18nCell MsgTableSheet) $ \row ->
|
||||
let sheet = row ^. _dbrOutput . _2
|
||||
course= row ^. _dbrOutput . _3
|
||||
tid = course ^. _3
|
||||
@ -105,12 +105,12 @@ colSheet = sortable (Just "sheet") (i18nCell MsgSheet) $ \row ->
|
||||
in anchorCell (CSheetR tid ssh csh shn SShowR) [whamlet|_{shn}|]
|
||||
|
||||
colCorrector :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a)
|
||||
colCorrector = sortable (Just "corrector") (i18nCell MsgCorrector) $ \case
|
||||
colCorrector = sortable (Just "corrector") (i18nCell MsgTableCorrector) $ \case
|
||||
DBRow{ dbrOutput = (_, _, _, Nothing , _, _, _, _) } -> cell mempty
|
||||
DBRow{ dbrOutput = (_, _, _, Just (Entity _ User{..}), _, _, _, _) } -> userCell userDisplayName userSurname
|
||||
|
||||
colSubmissionLink :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a)
|
||||
colSubmissionLink = sortable (Just "submission") (i18nCell MsgSubmission)
|
||||
colSubmissionLink = sortable (Just "submission") (i18nCell MsgTableSubmission)
|
||||
$ \DBRow{ dbrOutput=(_, sheet, course, _, _,_, cid, _) } ->
|
||||
let csh = course ^. _2
|
||||
tid = course ^. _3
|
||||
@ -151,7 +151,7 @@ colSGroups = sortable (Just "submittors-group") (i18nCell MsgTableSubmissionGrou
|
||||
-> mempty
|
||||
|
||||
colRating :: forall m a. IsDBTable m (a, SheetTypeSummary SqlBackendKey) => Colonnade Sortable CorrectionTableData (DBCell m (a, SheetTypeSummary SqlBackendKey))
|
||||
colRating = sortable (Just "rating") (i18nCell MsgRating) $ \DBRow{ dbrOutput=(Entity subId sub@Submission{..}, Entity _ Sheet{..}, course, _, _, _, _, _) } ->
|
||||
colRating = sortable (Just "rating") (i18nCell MsgTableRating) $ \DBRow{ dbrOutput=(Entity subId sub@Submission{..}, Entity _ Sheet{..}, course, _, _, _, _, _) } ->
|
||||
let csh = course ^. _2
|
||||
tid = course ^. _3
|
||||
ssh = course ^. _4
|
||||
@ -208,7 +208,7 @@ colCommentField = sortable (Just "comment") (i18nCell MsgRatingComment) $ (cellA
|
||||
(\DBRow{ dbrOutput=(Entity _ Submission{..}, _, _, _, _, _, _, _) } mkUnique -> over (_1.mapped) ((_3 .~) . assertM (not . null) . fmap (Text.strip . unTextarea)) . over _2 fvWidget <$> mopt textareaField (fsUniq mkUnique "comment") (Just $ Textarea <$> submissionRatingComment))
|
||||
|
||||
colLastEdit :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a)
|
||||
colLastEdit = sortable (Just "last-edit") (i18nCell MsgLastEdit) $
|
||||
colLastEdit = sortable (Just "last-edit") (i18nCell MsgTableLastEdit) $
|
||||
\DBRow{ dbrOutput=(_, _, _, _, mbLastEdit, _, _, _) } -> maybe mempty dateTimeCell mbLastEdit
|
||||
|
||||
|
||||
@ -620,7 +620,7 @@ assignAction selId = ( CorrSetCorrector
|
||||
|
||||
correctors' <- forM correctors $ \Entity{ entityKey, entityVal = User{..} } -> (SomeMessage userDisplayName, ) <$> encrypt entityKey
|
||||
|
||||
cId <- wopt (selectFieldList correctors' :: Field (HandlerFor UniWorX) CryptoUUIDUser) (fslI MsgCorrector & setTooltip MsgCorrSetCorrectorTooltip) Nothing
|
||||
cId <- wopt (selectFieldList correctors' :: Field (HandlerFor UniWorX) CryptoUUIDUser) (fslI MsgTableCorrector & setTooltip MsgCorrSetCorrectorTooltip) Nothing
|
||||
fmap CorrSetCorrectorData <$> (traverse.traverse) decrypt cId
|
||||
)
|
||||
|
||||
@ -654,9 +654,9 @@ postCorrectionsR = do
|
||||
[ prismAForm (singletonFilter "course" ) mPrev $ aopt (lift `hoistField` selectField courseOptions) (fslI MsgTableCourse)
|
||||
, prismAForm (singletonFilter "term" ) mPrev $ aopt (lift `hoistField` selectField termOptions) (fslI MsgTableTerm)
|
||||
, prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectField schoolOptions) (fslI MsgTableCourseSchool)
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt (lift `hoistField` textField) (fslI MsgSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt (lift `hoistField` textField) (fslI MsgTableSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgSubmission)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgTableSubmission)
|
||||
]
|
||||
courseOptions = runDB $ do
|
||||
courses <- selectList [] [Asc CourseShorthand] >>= filterM (\(Entity _ Course{..}) -> (== Authorized) <$> evalAccessCorrector courseTerm courseSchool courseShorthand)
|
||||
@ -699,12 +699,12 @@ postCCorrectionsR tid ssh csh = do
|
||||
[ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgTableCourseMembers)
|
||||
, prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgTableMatrikelNr)
|
||||
-- "pseudonym" TODO DB only stores Word24
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt textField (fslI MsgSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgCorrector)
|
||||
, Map.singleton "sheet-search" . maybeToList <$> aopt textField (fslI MsgTableSheet) (Just <$> listToMaybe =<< ((Map.lookup "sheet-search" =<< mPrev) <|> (Map.lookup "sheet" =<< mPrev)))
|
||||
, prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgTableCorrector)
|
||||
, prismAForm (singletonFilter "isassigned" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgHasCorrector)
|
||||
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
|
||||
, prismAForm (singletonFilter "submission-group") mPrev $ aopt textField (fslI MsgTableSubmissionGroup)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgSubmission)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgTableSubmission)
|
||||
]
|
||||
psValidator = def & defaultPagesize PagesizeAll -- Assisstant always want to see them all at once anyway
|
||||
correctionsR whereClause colonnade filterUI psValidator $ Map.fromList
|
||||
@ -732,11 +732,11 @@ postSSubsR tid ssh csh shn = do
|
||||
filterUI = Just $ \mPrev -> mconcat
|
||||
[ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgTableCourseMembers)
|
||||
, prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgTableMatrikelNr)
|
||||
, prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgCorrector)
|
||||
, prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgTableCorrector)
|
||||
, prismAForm (singletonFilter "isassigned" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgHasCorrector)
|
||||
, prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
|
||||
, prismAForm (singletonFilter "submission-group") mPrev $ aopt textField (fslI MsgTableSubmissionGroup)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgSubmission)
|
||||
, prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgTableSubmission)
|
||||
-- "pseudonym" TODO DB only stores Word24
|
||||
]
|
||||
psValidator = def & defaultPagesize PagesizeAll -- Assisstant always want to see them all at once anyway
|
||||
|
||||
@ -70,7 +70,7 @@ tutorInvitationConfig = InvitationConfig{..}
|
||||
invitationRestriction _ _ = return Authorized
|
||||
invitationForm _ _ _ = pure (JunctionTutor, ())
|
||||
invitationInsertHook _ _ _ _ _ = id
|
||||
invitationSuccessMsg (Entity _ Tutorial{..}) _ = return . SomeMessage $ MsgCorrectorInvitationAccepted tutorialName
|
||||
invitationSuccessMsg (Entity _ Tutorial{..}) _ = return . SomeMessage $ MsgTutorCorrectorInvitationAccepted tutorialName
|
||||
invitationUltDest (Entity _ Tutorial{..}) _ = do
|
||||
Course{..} <- get404 tutorialCourse
|
||||
return . SomeRoute $ CourseR courseTerm courseSchool courseShorthand CTutorialListR
|
||||
|
||||
@ -673,7 +673,7 @@ uploadModeForm fs prev = multiActionA actions fs (classifyUploadMode <$> prev)
|
||||
|
||||
|
||||
submissionModeForm :: Maybe SubmissionMode -> AForm Handler SubmissionMode
|
||||
submissionModeForm prev = explainedMultiActionA actions opts (fslI MsgSheetSubmissionMode) $ classifySubmissionMode <$> prev
|
||||
submissionModeForm prev = explainedMultiActionA actions opts (fslI MsgUtilSheetSubmissionMode) $ classifySubmissionMode <$> prev
|
||||
where
|
||||
actions :: Map SubmissionModeDescr (AForm Handler SubmissionMode)
|
||||
actions = Map.fromList
|
||||
|
||||
@ -393,7 +393,7 @@ fltrApplicationFilesUI mPrev = prismAForm (singletonFilter "has-files" . maybePr
|
||||
|
||||
-- | Generic column for links to FilePaths, where the link depends on the entire table row
|
||||
colFilePath :: (IsDBTable m c) => (t -> E.Value FilePath) -> (t -> Route UniWorX) -> Colonnade Sortable t (DBCell m c)
|
||||
colFilePath row2path row2link = sortable (Just "path") (i18nCell MsgFileTitle) makeCell
|
||||
colFilePath row2path row2link = sortable (Just "path") (i18nCell MsgTableFileTitle) makeCell
|
||||
where
|
||||
makeCell row =
|
||||
let filePath = E.unValue $ row2path row
|
||||
@ -402,7 +402,7 @@ colFilePath row2path row2link = sortable (Just "path") (i18nCell MsgFileTitle) m
|
||||
|
||||
-- | Generic column for links to FilePaths, where the link only depends on the FilePath itself
|
||||
colFilePathSimple :: (IsDBTable m c) => (t -> E.Value FilePath) -> (FilePath -> Route UniWorX) -> Colonnade Sortable t (DBCell m c)
|
||||
colFilePathSimple row2path row2link = sortable (Just "path") (i18nCell MsgFileTitle) makeCell
|
||||
colFilePathSimple row2path row2link = sortable (Just "path") (i18nCell MsgTableFileTitle) makeCell
|
||||
where
|
||||
makeCell row =
|
||||
let filePath = E.unValue $ row2path row
|
||||
@ -411,10 +411,10 @@ colFilePathSimple row2path row2link = sortable (Just "path") (i18nCell MsgFileTi
|
||||
|
||||
-- | Generic column for File Modification
|
||||
colFileModification :: (IsDBTable m c) => (t -> E.Value UTCTime) -> Colonnade Sortable t (DBCell m c)
|
||||
colFileModification row2time = sortable (Just "time") (i18nCell MsgFileModified) (dateTimeCell . E.unValue . row2time)
|
||||
colFileModification row2time = sortable (Just "time") (i18nCell MsgTableFileModified) (dateTimeCell . E.unValue . row2time)
|
||||
|
||||
colFileModificationWhen :: (IsDBTable m c) => (UTCTime -> Bool) -> (t -> E.Value UTCTime) -> Colonnade Sortable t (DBCell m c)
|
||||
colFileModificationWhen condition row2time = sortable (Just "time") (i18nCell MsgFileModified) (conDTCell . E.unValue . row2time)
|
||||
colFileModificationWhen condition row2time = sortable (Just "time") (i18nCell MsgTableFileModified) (conDTCell . E.unValue . row2time)
|
||||
where conDTCell = ifCell condition dateTimeCell $ const mempty
|
||||
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<div .scrolltable>
|
||||
<table .table .table--striped .table--vertical>
|
||||
<tr .table__row>
|
||||
<th .table__th>_{MsgSubmission}
|
||||
<th .table__th>_{MsgTableSubmission}
|
||||
<td .table__td>#{cid}
|
||||
$maybe Entity _ User{userDisplayName, userSurname, userEmail} <- corrector
|
||||
<tr .table__row>
|
||||
|
||||
@ -11,7 +11,7 @@ $else
|
||||
<table .table .table--striped>
|
||||
<tr .table__row .table__row--head>
|
||||
<th .table__th>
|
||||
_{MsgSheet}
|
||||
_{MsgTableSheet}
|
||||
<th .table__th>
|
||||
_{MsgNrSubmissionsTotal}
|
||||
<th .table__th>
|
||||
|
||||
@ -8,7 +8,7 @@ $newline never
|
||||
<div .scrolltable .scrolltable--bordered .corrections-overview__section>
|
||||
<table .table .table--striped .table--hover>
|
||||
<tr .table__row .table__row--head>
|
||||
<th .table__th rowspan=2>_{MsgSheet}
|
||||
<th .table__th rowspan=2>_{MsgTableSheet}
|
||||
$if groupsPossible
|
||||
<th .table__th rowspan=2>_{MsgNrSubmittorsTotal}
|
||||
<th .table__th rowspan=2>_{MsgNrSubmissionsTotal}
|
||||
@ -53,7 +53,7 @@ $newline never
|
||||
<div .scrolltable .scrolltable--bordered>
|
||||
<table .table .table--striped .table--hover>
|
||||
<tr .table__row .table__row--head>
|
||||
<th .table__th rowspan=2>_{MsgCorrector}
|
||||
<th .table__th rowspan=2>_{MsgTableCorrector}
|
||||
<th .table__th colspan=2>_{MsgGenericAll}
|
||||
<th .table__th rowspan=2>_{MsgCorDeficitProportion}
|
||||
<th .table__th colspan=3>_{MsgCorrectionTime}
|
||||
@ -70,7 +70,7 @@ $newline never
|
||||
<th .table__th>_{MsgGenericMax}
|
||||
$# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table
|
||||
$forall _shn <- orderedSheetNames
|
||||
<th .table__th>_{MsgCorProportion}
|
||||
<th .table__th>_{MsgTableCorProportion}
|
||||
<th .table__th>_{MsgNrSubmissionsTotalShort}
|
||||
<th .table__th>_{MsgGenericNumChange}
|
||||
<th .table__th>_{MsgNrSubmissionsNotCorrectedShort}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
$newline never
|
||||
<dt .sec>
|
||||
_{MsgCorProportion}
|
||||
_{MsgTableCorProportion}
|
||||
<dt .sec>
|
||||
_{MsgCorState}
|
||||
_{MsgTableCorState}
|
||||
<dd>
|
||||
Nutzer, die von einem Kursverwalter beauftragt wurden bei der Korrektur von #
|
||||
einzelnen Übungsblättern oder Prüfungen mitzuwirken.<br />
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
$newline never
|
||||
<dt .sec>
|
||||
_{MsgCorProportion}
|
||||
_{MsgTableCorProportion}
|
||||
<dt .sec>
|
||||
_{MsgCorState}
|
||||
_{MsgTableCorState}
|
||||
<dd>
|
||||
Users that are authorised by a course administrator to collaborate in #
|
||||
the correction of single exercise sheets or exams.<br />
|
||||
|
||||
@ -19,7 +19,7 @@ $newline never
|
||||
_{SomeMessage (MsgMailSubmissionRatedIntro (CI.original courseName) termDesc)}
|
||||
<dl>
|
||||
<dt>
|
||||
_{SomeMessage MsgSubmission}
|
||||
_{SomeMessage MsgTableSubmission}
|
||||
<dd>
|
||||
<a href=@{CSubmissionR tid ssh csh shn csid SubShowR}>
|
||||
#{csid}
|
||||
|
||||
@ -13,7 +13,7 @@ $maybe descr <- materialDescription
|
||||
$maybe matVisibleFromWgt <- matVisibleFromMB
|
||||
<dt .deflist__dt>_{MsgVisibleFrom}
|
||||
<dd .deflist__dd>^{matVisibleFromWgt}
|
||||
<dt .deflist__dt>_{MsgFileModified}
|
||||
<dt .deflist__dt>_{MsgTableFileModified}
|
||||
<dd .deflist__dd>^{matLastEdit}
|
||||
|
||||
$if hasFiles
|
||||
|
||||
@ -138,7 +138,7 @@ $newline never
|
||||
_{MsgProfileGroupSubmissionDates}
|
||||
|
||||
<div .container>
|
||||
<h2> _{MsgCorrector}
|
||||
<h2> _{MsgTableCorrector}
|
||||
<div .container>
|
||||
^{correctionsTable}
|
||||
|
||||
|
||||
@ -2,10 +2,10 @@ $newline never
|
||||
<table .table .table--striped .table--hover>
|
||||
<thead>
|
||||
<tr .table__row .table__row--head>
|
||||
<th .table__th colspan="2">_{MsgCorrector}
|
||||
<th .table__th>_{MsgCorState}
|
||||
<th .table__th colspan="2">_{MsgTableCorrector}
|
||||
<th .table__th>_{MsgTableCorState}
|
||||
<th .table__th>_{MsgCorByTut}
|
||||
<th .table__th>_{MsgCorProportion}
|
||||
<th .table__th>_{MsgTableCorProportion}
|
||||
<td>
|
||||
<tbody>
|
||||
$forall coord <- review liveCoords lLength
|
||||
|
||||
@ -10,7 +10,7 @@ $maybe descr <- sheetDescription sheet
|
||||
|
||||
<section>
|
||||
<dl .deflist>
|
||||
<dt .deflist__dt>_{MsgAccessibleSince}
|
||||
<dt .deflist__dt>_{MsgSheetAccessibleSince}
|
||||
<dd .deflist__dd>
|
||||
$maybe invisible <- visibleFrom
|
||||
^{invisible}
|
||||
|
||||
@ -2,7 +2,7 @@ $newline never
|
||||
$maybe _ <- mcid
|
||||
$maybe wdgt <- correctionWdgt
|
||||
<section>
|
||||
<h2>_{MsgRating}
|
||||
<h2>_{MsgTableRating}
|
||||
^{wdgt}
|
||||
|
||||
<section>
|
||||
@ -32,7 +32,7 @@ $maybe _ <- mcid
|
||||
^{fileTable}
|
||||
|
||||
$if maySubmit && not (null lastEdits)
|
||||
<h3>_{MsgLastEdits}
|
||||
<h3>_{MsgTableLastEdit}
|
||||
<ul>
|
||||
$forall (mbName,time) <- lastEdits
|
||||
$maybe name <- mbName
|
||||
|
||||
@ -7,17 +7,17 @@ $if submissionRatingDone sub
|
||||
$maybe (grading, points) <- mTuple (preview _grading sheetType) submissionRatingPoints
|
||||
$case grading
|
||||
$of Points{..}
|
||||
_{MsgAchievedOf points maxPoints}
|
||||
_{MsgRatingAchievedOf points maxPoints}
|
||||
$of PassPoints{maxPoints}
|
||||
$if fromMaybe False (gradingPassed grading points)
|
||||
_{MsgPassed}, _{MsgAchievedOf points maxPoints}
|
||||
_{MsgRatingPassed}, _{MsgRatingAchievedOf points maxPoints}
|
||||
$else
|
||||
_{MsgNotPassed}, _{MsgAchievedOf points maxPoints}
|
||||
_{MsgRatingNotPassed}, _{MsgRatingAchievedOf points maxPoints}
|
||||
$of PassBinary
|
||||
$if fromMaybe False (gradingPassed grading points)
|
||||
_{MsgPassed}
|
||||
_{MsgRatingPassed}
|
||||
$else
|
||||
_{MsgNotPassed}
|
||||
_{MsgRatingNotPassed}
|
||||
$of PassAlways
|
||||
#{hasTickmark True}
|
||||
$nothing
|
||||
|
||||
Loading…
Reference in New Issue
Block a user