diff --git a/messages/uniworx/misc/de-de-formal.msg b/messages/uniworx/misc/de-de-formal.msg index 4f66c0a35..e7a07c567 100644 --- a/messages/uniworx/misc/de-de-formal.msg +++ b/messages/uniworx/misc/de-de-formal.msg @@ -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 diff --git a/messages/uniworx/misc/en-eu.msg b/messages/uniworx/misc/en-eu.msg index 2818e9497..535d04452 100644 --- a/messages/uniworx/misc/en-eu.msg +++ b/messages/uniworx/misc/en-eu.msg @@ -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 diff --git a/messages/uniworx/uniworx_new/courses/de-de-formal.msg b/messages/uniworx/uniworx_new/courses/de-de-formal.msg index 85c3ba4cb..b3340d1d0 100644 --- a/messages/uniworx/uniworx_new/courses/de-de-formal.msg +++ b/messages/uniworx/uniworx_new/courses/de-de-formal.msg @@ -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 \ No newline at end of file +CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: Kein passendes Studienfach + +CoursePersonalisedSheetFilesArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalisierte_dateien diff --git a/messages/uniworx/uniworx_new/courses/en-eu.msg b/messages/uniworx/uniworx_new/courses/en-eu.msg index ad60a4a97..b14c8cc55 100644 --- a/messages/uniworx/uniworx_new/courses/en-eu.msg +++ b/messages/uniworx/uniworx_new/courses/en-eu.msg @@ -255,4 +255,6 @@ CourseApplicationsTableCsvSetRating: Set rating CourseApplicationsTableCsvSetComment: Set comment CourseApplicationsTableCsvExceptionNoMatchingUser: No matching user CourseApplicationsTableCsvExceptionNoMatchingAllocation: No matching allocation -CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: no matching study features \ No newline at end of file +CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: no matching study features + +CoursePersonalisedSheetFilesArchiveName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-personalised_files diff --git a/messages/uniworx/uniworx_new/sheet/de-de-formal.msg b/messages/uniworx/uniworx_new/sheet/de-de-formal.msg new file mode 100644 index 000000000..da8ff32bf --- /dev/null +++ b/messages/uniworx/uniworx_new/sheet/de-de-formal.msg @@ -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 diff --git a/messages/uniworx/uniworx_new/sheet/en-eu.msg b/messages/uniworx/uniworx_new/sheet/en-eu.msg new file mode 100644 index 000000000..b2335a498 --- /dev/null +++ b/messages/uniworx/uniworx_new/sheet/en-eu.msg @@ -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 + diff --git a/src/Foundation/I18n.hs b/src/Foundation/I18n.hs index 226285947..d3b017374 100644 --- a/src/Foundation/I18n.hs +++ b/src/Foundation/I18n.hs @@ -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" diff --git a/src/Foundation/SiteLayout.hs b/src/Foundation/SiteLayout.hs index 0ee2c57cf..3ba3ef155 100644 --- a/src/Foundation/SiteLayout.hs +++ b/src/Foundation/SiteLayout.hs @@ -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 diff --git a/src/Handler/Course/User.hs b/src/Handler/Course/User.hs index d2176fee6..cefed9e76 100644 --- a/src/Handler/Course/User.hs +++ b/src/Handler/Course/User.hs @@ -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 diff --git a/src/Handler/Material.hs b/src/Handler/Material.hs index 46c313830..c5255744f 100644 --- a/src/Handler/Material.hs +++ b/src/Handler/Material.hs @@ -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 diff --git a/src/Handler/News.hs b/src/Handler/News.hs index 78bee586d..e45c18986 100644 --- a/src/Handler/News.hs +++ b/src/Handler/News.hs @@ -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 diff --git a/src/Handler/Profile.hs b/src/Handler/Profile.hs index b423b283c..f269c7c1d 100644 --- a/src/Handler/Profile.hs +++ b/src/Handler/Profile.hs @@ -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) ] diff --git a/src/Handler/Sheet/Form.hs b/src/Handler/Sheet/Form.hs index c6a1befa7..98ed7b9e6 100644 --- a/src/Handler/Sheet/Form.hs +++ b/src/Handler/Sheet/Form.hs @@ -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 diff --git a/src/Handler/Sheet/List.hs b/src/Handler/Sheet/List.hs index c46419064..6981439d4 100644 --- a/src/Handler/Sheet/List.hs +++ b/src/Handler/Sheet/List.hs @@ -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 diff --git a/src/Handler/Sheet/PersonalisedFiles.hs b/src/Handler/Sheet/PersonalisedFiles.hs index c406f083d..c69b954ef 100644 --- a/src/Handler/Sheet/PersonalisedFiles.hs +++ b/src/Handler/Sheet/PersonalisedFiles.hs @@ -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 diff --git a/src/Handler/Sheet/Show.hs b/src/Handler/Sheet/Show.hs index 462337399..a438bfd42 100644 --- a/src/Handler/Sheet/Show.hs +++ b/src/Handler/Sheet/Show.hs @@ -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) ] diff --git a/src/Handler/Submission/Assign.hs b/src/Handler/Submission/Assign.hs index 3b5e42a30..e39c3445f 100644 --- a/src/Handler/Submission/Assign.hs +++ b/src/Handler/Submission/Assign.hs @@ -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 diff --git a/src/Handler/Submission/Grade.hs b/src/Handler/Submission/Grade.hs index e78e8fc92..4e6c179b8 100644 --- a/src/Handler/Submission/Grade.hs +++ b/src/Handler/Submission/Grade.hs @@ -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) diff --git a/src/Handler/Submission/Helper.hs b/src/Handler/Submission/Helper.hs index 4067785d5..61d257628 100644 --- a/src/Handler/Submission/Helper.hs +++ b/src/Handler/Submission/Helper.hs @@ -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 diff --git a/src/Handler/Submission/List.hs b/src/Handler/Submission/List.hs index db2a8af68..cb39952d9 100644 --- a/src/Handler/Submission/List.hs +++ b/src/Handler/Submission/List.hs @@ -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 diff --git a/src/Handler/Tutorial/TutorInvite.hs b/src/Handler/Tutorial/TutorInvite.hs index 541a3e793..39bb9272a 100644 --- a/src/Handler/Tutorial/TutorInvite.hs +++ b/src/Handler/Tutorial/TutorInvite.hs @@ -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 diff --git a/src/Handler/Utils/Form.hs b/src/Handler/Utils/Form.hs index f2ffb0479..e299d3a4b 100644 --- a/src/Handler/Utils/Form.hs +++ b/src/Handler/Utils/Form.hs @@ -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 diff --git a/src/Handler/Utils/Table/Columns.hs b/src/Handler/Utils/Table/Columns.hs index 0148202df..82f72d2ed 100644 --- a/src/Handler/Utils/Table/Columns.hs +++ b/src/Handler/Utils/Table/Columns.hs @@ -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 diff --git a/templates/correction-user.hamlet b/templates/correction-user.hamlet index 6d96d7fea..35187914e 100644 --- a/templates/correction-user.hamlet +++ b/templates/correction-user.hamlet @@ -1,7 +1,7 @@
- diff --git a/templates/corrections-assign.hamlet b/templates/corrections-assign.hamlet index 56bbbeeb5..6aeb23c41 100644 --- a/templates/corrections-assign.hamlet +++ b/templates/corrections-assign.hamlet @@ -11,7 +11,7 @@ $else
_{MsgSubmission} + _{MsgTableSubmission} #{cid} $maybe Entity _ User{userDisplayName, userSurname, userEmail} <- corrector
- _{MsgSheet} + _{MsgTableSheet} _{MsgNrSubmissionsTotal} diff --git a/templates/corrections-overview.hamlet b/templates/corrections-overview.hamlet index 52aaf7f22..8c614d985 100644 --- a/templates/corrections-overview.hamlet +++ b/templates/corrections-overview.hamlet @@ -8,7 +8,7 @@ $newline never
-
_{MsgSheet} + _{MsgTableSheet} $if groupsPossible _{MsgNrSubmittorsTotal} _{MsgNrSubmissionsTotal} @@ -53,7 +53,7 @@ $newline never
-
_{MsgCorrector} + _{MsgTableCorrector} _{MsgGenericAll} _{MsgCorDeficitProportion} _{MsgCorrectionTime} @@ -70,7 +70,7 @@ $newline never _{MsgGenericMax} $# Always iterate over orderedSheetNames for consistent sorting! Newest first, except in this table $forall _shn <- orderedSheetNames - _{MsgCorProportion} + _{MsgTableCorProportion} _{MsgNrSubmissionsTotalShort} _{MsgGenericNumChange} _{MsgNrSubmissionsNotCorrectedShort} diff --git a/templates/i18n/glossary/corrector.de-de-formal.hamlet b/templates/i18n/glossary/corrector.de-de-formal.hamlet index 6435cfed6..5d706ea27 100644 --- a/templates/i18n/glossary/corrector.de-de-formal.hamlet +++ b/templates/i18n/glossary/corrector.de-de-formal.hamlet @@ -1,8 +1,8 @@ $newline never
- _{MsgCorProportion} + _{MsgTableCorProportion}
- _{MsgCorState} + _{MsgTableCorState}
Nutzer, die von einem Kursverwalter beauftragt wurden bei der Korrektur von # einzelnen Übungsblättern oder Prüfungen mitzuwirken.
diff --git a/templates/i18n/glossary/corrector.en-eu.hamlet b/templates/i18n/glossary/corrector.en-eu.hamlet index 1f2ac33a2..50927fac0 100644 --- a/templates/i18n/glossary/corrector.en-eu.hamlet +++ b/templates/i18n/glossary/corrector.en-eu.hamlet @@ -1,8 +1,8 @@ $newline never
- _{MsgCorProportion} + _{MsgTableCorProportion}
- _{MsgCorState} + _{MsgTableCorState}
Users that are authorised by a course administrator to collaborate in # the correction of single exercise sheets or exams.
diff --git a/templates/mail/submissionRated.hamlet b/templates/mail/submissionRated.hamlet index 224fcd06f..2874ce938 100644 --- a/templates/mail/submissionRated.hamlet +++ b/templates/mail/submissionRated.hamlet @@ -19,7 +19,7 @@ $newline never _{SomeMessage (MsgMailSubmissionRatedIntro (CI.original courseName) termDesc)}
- _{SomeMessage MsgSubmission} + _{SomeMessage MsgTableSubmission}
#{csid} diff --git a/templates/material-show.hamlet b/templates/material-show.hamlet index e31b5c9c0..f618ef998 100644 --- a/templates/material-show.hamlet +++ b/templates/material-show.hamlet @@ -13,7 +13,7 @@ $maybe descr <- materialDescription $maybe matVisibleFromWgt <- matVisibleFromMB
_{MsgVisibleFrom}
^{matVisibleFromWgt} -
_{MsgFileModified} +
_{MsgTableFileModified}
^{matLastEdit} $if hasFiles diff --git a/templates/profileData.hamlet b/templates/profileData.hamlet index 4c69988c3..1d9a67ce2 100644 --- a/templates/profileData.hamlet +++ b/templates/profileData.hamlet @@ -138,7 +138,7 @@ $newline never _{MsgProfileGroupSubmissionDates}
-

_{MsgCorrector} +

_{MsgTableCorrector}
^{correctionsTable} diff --git a/templates/sheetCorrectors/layout.hamlet b/templates/sheetCorrectors/layout.hamlet index 4f94d0bd6..91ee9eec4 100644 --- a/templates/sheetCorrectors/layout.hamlet +++ b/templates/sheetCorrectors/layout.hamlet @@ -2,10 +2,10 @@ $newline never - $forall coord <- review liveCoords lLength diff --git a/templates/sheetShow.hamlet b/templates/sheetShow.hamlet index 6bf966f98..47a6eb047 100644 --- a/templates/sheetShow.hamlet +++ b/templates/sheetShow.hamlet @@ -10,7 +10,7 @@ $maybe descr <- sheetDescription sheet
-
_{MsgAccessibleSince} +
_{MsgSheetAccessibleSince}
$maybe invisible <- visibleFrom ^{invisible} diff --git a/templates/submission.hamlet b/templates/submission.hamlet index 3ed642882..2114cfb29 100644 --- a/templates/submission.hamlet +++ b/templates/submission.hamlet @@ -2,7 +2,7 @@ $newline never $maybe _ <- mcid $maybe wdgt <- correctionWdgt
-

_{MsgRating} +

_{MsgTableRating} ^{wdgt}
@@ -32,7 +32,7 @@ $maybe _ <- mcid ^{fileTable} $if maySubmit && not (null lastEdits) -

_{MsgLastEdits} +

_{MsgTableLastEdit}
    $forall (mbName,time) <- lastEdits $maybe name <- mbName diff --git a/templates/widgets/rating/rating.hamlet b/templates/widgets/rating/rating.hamlet index 3e568a9a3..a37905e8b 100644 --- a/templates/widgets/rating/rating.hamlet +++ b/templates/widgets/rating/rating.hamlet @@ -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

_{MsgCorrector} - _{MsgCorState} + _{MsgTableCorrector} + _{MsgTableCorState} _{MsgCorByTut} - _{MsgCorProportion} + _{MsgTableCorProportion}