refactor(messages): course finished, templates-msgs added

This commit is contained in:
Winnie Ros 2021-03-25 13:07:43 +01:00
parent 580c62067a
commit ee7f32f5cc
14 changed files with 157 additions and 160 deletions

View File

@ -38,6 +38,9 @@ BtnSystemMessageUnhide: Nicht mehr verstecken
BtnCommunicationSend: Senden BtnCommunicationSend: Senden
BtnCommunicationTest: Test-Nachricht verschicken BtnCommunicationTest: Test-Nachricht verschicken
BtnAcceptApplications: Bewerbungen akzeptieren
BtnAcceptApplicationsTip: Mit dem untigen Knopf können Sie den Kurs (höchstens bis zur angegeben Maximalkapazität, falls eingestellt) mit Bewerbern auffüllen. Die Bewertungen der Bewerbungen werden dabei berücksichtigt (Unbewertet wird behandelt wie eine Note zwischen 2.3 und 2.7). Bewerber mit Veto oder 5.0 werden nicht angemeldet.
AcceptApplicationsDirect: Direkt anmelden AcceptApplicationsDirect: Direkt anmelden
AcceptApplicationsInvite: Einladungen verschicken AcceptApplicationsInvite: Einladungen verschicken
@ -55,7 +58,10 @@ TableStudyFeatureUpdate: Abgeglichen
TableHeadingFilter: Filter TableHeadingFilter: Filter
TableTerm: Semester TableTerm: Semester
TableCourseSchool: Institut TableCourseSchool: Institut
TableSubmissionGroup: Feste Abgabegruppe
TableNoSubmissionGroup: Keine feste Abgabegruppe
TableMatrikelNr: Matrikelnummer
TableSex: Geschlecht
#headings #headings
HeadingLegal: Rechtliche Informationen HeadingLegal: Rechtliche Informationen
@ -83,12 +89,10 @@ HeadingCorrectionsAssign: Zuteilung der Korrekturen
HeadingUserAdd: Benutzer:in anlegen HeadingUserAdd: Benutzer:in anlegen
CorrectorsChange: Korrektoren ändern CorrectorsChange: Korrektoren ändern
MaterialList: Material MaterialList: Material
SheetListCourse: Übungsblätter
HeadingDataProt: Datenschutzerklärung HeadingDataProt: Datenschutzerklärung
HeadingTermsUse: Nutzungsbedingungen HeadingTermsUse: Nutzungsbedingungen
HeadingCopyright: Urheberrecht HeadingCopyright: Urheberrecht
HeadingImprint: Impressum HeadingImprint: Impressum
CourseApplications: Bewerbungen
CourseNew: Neuen Kurs anlegen CourseNew: Neuen Kurs anlegen
EmailInvitationWarning: Diese Adresse konnte keinem Uni2work-Benutzer zugeordnet werden. Es wird eine Einladung per E-Mail versandt. EmailInvitationWarning: Diese Adresse konnte keinem Uni2work-Benutzer zugeordnet werden. Es wird eine Einladung per E-Mail versandt.
@ -99,18 +103,10 @@ FormFieldWorkflowDatasetTip: Mindestens ein gekennzeichnetes Feld pro Datensatz
Aborted: Abgebrochen Aborted: Abgebrochen
Remarks: Hinweise Remarks: Hinweise
NotRegistered: Sie sind zu diesem Kurs nicht angemeldet.
RegisterFrom: Anmeldungen von RegisterFrom: Anmeldungen von
RegisterTo: Anmeldungen bis RegisterTo: Anmeldungen bis
TutorialDeRegUntil: Abmeldungen bis TutorialDeRegUntil: Abmeldungen bis
CourseRegistrationInterval: Anmeldung
CourseDirectRegistrationInterval: Direkte Anmeldung
CourseDeregisterUntil time@Text: Abmeldung nur bis #{time}
GenericKey: Schlüssel GenericKey: Schlüssel
GenericShort: Kürzel GenericShort: Kürzel
GenericIsNew: Neu GenericIsNew: Neu
@ -164,13 +160,8 @@ CourseNoCapacity: In diesem Kurs sind keine Plätze mehr frei.
TutorialNoCapacity: In dieser Übung sind keine Plätze mehr frei. TutorialNoCapacity: In dieser Übung sind keine Plätze mehr frei.
ExamOccurrenceNoCapacity: Zu diesem Termin/Raum sind keine Plätze mehr frei. ExamOccurrenceNoCapacity: Zu diesem Termin/Raum sind keine Plätze mehr frei.
CourseNotEmpty: In diesem Kurs sind momentan Teilnehmer angemeldet. CourseNotEmpty: In diesem Kurs sind momentan Teilnehmer angemeldet.
CourseVisibility: Sichtbarkeit
CourseInvisible: Dieser Kurs ist momentan nur für Dozenten, Assistenten, Tutoren, Korrektoren, angemeldete Teilnehmer und Bewerber sichtbar.
CourseInvisibleOverridenByAllocation: Da die Zentralanmeldung, an welcher der Kurs teilnimmt aktuell offen für Bewerbungen ist, wird die Kurssichtbarkeit während der Bewerbungsphase forciert. Außerhalb der Bewerbungsphase ist der Kurs nur für Dozenten, Assistenten, Tutoren, Korrektoren, angemeldete Teilnehmer und Bewerber sichtbar.
CourseRegistration: Kursanmeldung
CourseApply: Zum Kurs bewerben CourseApply: Zum Kurs bewerben
CourseDeregisterLecturerTip: Wenn Sie den Teilnehmer vom Kurs abmelden kann es sein, dass sie Zugriff auf diese Daten verlieren
CourseStudyFeature: Assoziiertes Studienfach CourseStudyFeature: Assoziiertes Studienfach
CourseStudyFeatureTip: Dient ausschließlich der Information der Kursverwalter CourseStudyFeatureTip: Dient ausschließlich der Information der Kursverwalter
CourseStudyFeatureUpdated: Assoziiertes Studienfach geändert CourseStudyFeatureUpdated: Assoziiertes Studienfach geändert
@ -186,16 +177,12 @@ CourseEditHeading tid@TermId ssh@SchoolId csh@CourseShorthand: Kurs #{tid}-#{ssh
CourseMembers: Teilnehmer CourseMembers: Teilnehmer
CourseMembersCount n@Int: #{n} CourseMembersCount n@Int: #{n}
CourseMembersCountLimited n@Int max@Int: #{n}/#{max} CourseMembersCountLimited n@Int max@Int: #{n}/#{max}
CourseMembersCountOf n@Int mbNum@(Maybe Int): #{n} Kursanmeldungen #{maybeToMessage " von " mbNum " möglichen"}
TutorialDeregisterUntilTip: Abmeldung ist ab "Anmeldungen von" bis zu diesem Zeitpunkt erlaubt. Die Abmeldung darf auch unbegrenzt erlaubt bleiben. TutorialDeregisterUntilTip: Abmeldung ist ab "Anmeldungen von" bis zu diesem Zeitpunkt erlaubt. Die Abmeldung darf auch unbegrenzt erlaubt bleiben.
CourseFilterNone: — CourseFilterNone: —
BoolIrrelevant: — BoolIrrelevant: —
CourseDeleteQuestion: Wollen Sie den unten aufgeführten Kurs wirklich löschen? CourseDeleteQuestion: Wollen Sie den unten aufgeführten Kurs wirklich löschen?
CourseDeleted: Kurs gelöscht CourseDeleted: Kurs gelöscht
CourseSingleUserExams: Prüfungen
CourseSingleUserTutorials: Tutorien
CourseUserCorrections: Abgaben
CourseUserRegister: Zum Kurs anmelden CourseUserRegister: Zum Kurs anmelden
CourseUserDeregister: Vom Kurs abmelden CourseUserDeregister: Vom Kurs abmelden
CourseUserRegisterTutorial: Zu einem Tutorium anmelden CourseUserRegisterTutorial: Zu einem Tutorium anmelden
@ -209,10 +196,8 @@ TutorialUsersDeregistered count@Int64: #{show count} Tutorium-Teilnehmer abgemel
CourseAllocationCourseAcceptsSubstitutesUntil: Akzeptiert Nachrücker bis CourseAllocationCourseAcceptsSubstitutesUntil: Akzeptiert Nachrücker bis
CourseAllocationCourseAcceptsSubstitutesNever: Akzeptiert keine Nachrücker CourseAllocationCourseAcceptsSubstitutesNever: Akzeptiert keine Nachrücker
CourseAllocationCourseParticipants: Teilnehmer CourseAllocationCourseParticipants: Teilnehmer
CourseApplicationInstructionsApplication: Anweisungen zur Bewerbung CourseAllocationApplicationInstructionsApplication: Anweisungen zur Bewerbung
CourseApplicationInstructionsRegistration: Anweisungen zur Anmeldung CourseAllocationApplicationTemplateApplication: Bewerbungsvorlage(n)
CourseApplicationTemplateApplication: Bewerbungsvorlage(n)
CourseApplicationTemplateRegistration: Anmeldungsvorlage(n)
CourseApplication: Bewerbung CourseApplication: Bewerbung
CourseApplicationExists: Sie haben sich bereits für diesen Kurs beworben CourseApplicationExists: Sie haben sich bereits für diesen Kurs beworben
@ -224,7 +209,6 @@ CourseApplicationRated: Bewertung erfolgreich angepasst
CourseApplicationRatingDeleted: Bewertung erfolgreich entfernt CourseApplicationRatingDeleted: Bewertung erfolgreich entfernt
CourseApplicationDeleted csh@CourseShorthand: Bewerbung zu #{csh} erfolgreich zurückgezogen CourseApplicationDeleted csh@CourseShorthand: Bewerbung zu #{csh} erfolgreich zurückgezogen
CourseApplicationDeleteToEdit: Um Ihre Bewerbung zu editieren müssen Sie sie zunächst zurückziehen und sich erneut bewerben.
CourseRegistrationDeleteToEdit: Um Ihre Anmeldungsdaten zu editieren müssen Sie sich zunächst ab- und dann erneut anmelden. CourseRegistrationDeleteToEdit: Um Ihre Anmeldungsdaten zu editieren müssen Sie sich zunächst ab- und dann erneut anmelden.
CourseLoginToApply: Um sich zum Kurz zu bewerben müssen Sie sich zunächst in Uni2work anmelden CourseLoginToApply: Um sich zum Kurz zu bewerben müssen Sie sich zunächst in Uni2work anmelden
@ -553,17 +537,11 @@ NumCourses num@Int64: #{num} #{pluralDE num "Kurs" "Kurse"}
CloseAlert: Schliessen CloseAlert: Schliessen
Name: Name Name: Name
MatrikelNr: Matrikelnummer
Surname: Nachname(n)
FirstName: Vorname(n)
Title: Titel
LdapSynced: LDAP-Synchronisiert LdapSynced: LDAP-Synchronisiert
LdapSyncedBefore: Letzte LDAP-Synchronisation vor LdapSyncedBefore: Letzte LDAP-Synchronisation vor
NoMatrikelKnown: Keine Matrikelnummer
Plugin: Plugin Plugin: Plugin
Settings: Individuelle Benutzereinstellungen Settings: Individuelle Benutzereinstellungen
SettingsUpdate: Einstellungen erfolgreich gespeichert SettingsUpdate: Einstellungen erfolgreich gespeichert
NotificationSettingsUpdate: Benachrichtigungs-Einstellungen erfolgreich gespeichert NotificationSettingsUpdate: Benachrichtigungs-Einstellungen erfolgreich gespeichert
@ -728,12 +706,6 @@ AdminUserRightsHeading: Benutzerrechte
AdminUserAuthHeading: Benutzer-Authentifizierung AdminUserAuthHeading: Benutzer-Authentifizierung
AdminUserHeadingFor: Benutzerprofil für AdminUserHeadingFor: Benutzerprofil für
AdminFor: Administrator AdminFor: Administrator
LecturerFor: Dozent
LecturersFor: Dozenten
AssistantFor: Assistent
AssistantsFor: Assistenten
TutorsFor n@Int: #{pluralDE n "Tutor" "Tutoren"}
CorrectorsFor n@Int: #{pluralDE n "Korrektor" "Korrektoren"}
UserListTitle: Komprehensive Benutzerliste UserListTitle: Komprehensive Benutzerliste
AccessRightsSaved: Berechtigungen erfolgreich verändert AccessRightsSaved: Berechtigungen erfolgreich verändert
AccessRightsNotChanged: Berechtigungen wurden nicht verändert AccessRightsNotChanged: Berechtigungen wurden nicht verändert
@ -860,9 +832,7 @@ SubmissionUpdated: Abgabe erfolgreich ersetzt
ColumnStudyFeatures: Studiendaten ColumnStudyFeatures: Studiendaten
AdminFeaturesHeading: Studiengänge AdminFeaturesHeading: Studiengänge
StudyTerms: Studiengänge
NoStudyTermsKnown: Keine Studiengänge bekannt
StudyFeaturesDegrees: Abschlüsse StudyFeaturesDegrees: Abschlüsse
StudyFeaturesTerms: Studiengänge StudyFeaturesTerms: Studiengänge
StudyFeaturesNameCandidates: Namens-Kandidaten StudyFeaturesNameCandidates: Namens-Kandidaten
@ -1373,9 +1343,6 @@ TutorialDelete: Löschen
TutorialTutorControlled: Tutoren dürfen Tutorium editieren TutorialTutorControlled: Tutoren dürfen Tutorium editieren
TutorialTutorControlledTip: Sollen Tutoren beliebige Aspekte dieses Tutoriums (Name, Registrierungs-Gruppe, Raum, Zeit, andere Tutoren, ...) beliebig editieren dürfen? TutorialTutorControlledTip: Sollen Tutoren beliebige Aspekte dieses Tutoriums (Name, Registrierungs-Gruppe, Raum, Zeit, andere Tutoren, ...) beliebig editieren dürfen?
CourseExams: Prüfungen
CourseTutorials: Tutorien
ParticipantsN n@Int: #{n} Teilnehmer ParticipantsN n@Int: #{n} Teilnehmer
TutorialDeleteQuestion: Wollen Sie das unten aufgeführte Tutorium wirklich löschen? TutorialDeleteQuestion: Wollen Sie das unten aufgeführte Tutorium wirklich löschen?
TutorialDeleted: Tutorium gelöscht TutorialDeleted: Tutorium gelöscht
@ -1418,9 +1385,7 @@ HealthSMTPConnect: SMTP-Server kann erreicht werden
HealthWidgetMemcached: Memcached-Server liefert Widgets korrekt aus HealthWidgetMemcached: Memcached-Server liefert Widgets korrekt aus
HealthActiveJobExecutors: Anteil der job-workers, die neue Befehle annehmen HealthActiveJobExecutors: Anteil der job-workers, die neue Befehle annehmen
CourseParticipantsHeading: Kursteilnehmer
CourseParticipantsCount n@Int: #{n}
CourseParticipantsCountOf n@Int m@Int: #{n} von #{m}
CourseParticipants n@Int: Derzeit #{n} angemeldete Kursteilnehmer CourseParticipants n@Int: Derzeit #{n} angemeldete Kursteilnehmer
CourseParticipantsRegisteredWithoutField n@Int: #{n} Teilnehmer #{pluralDE n "wurde ohne assoziiertes Studienfach" "wurden ohne assoziierte Studienfächer"} angemeldet, da #{pluralDE n "kein eindeutiges Hauptfach bestimmt werden konnte" "keine eindeutigen Hauptfächer bestimmt werden konnten"} CourseParticipantsRegisteredWithoutField n@Int: #{n} Teilnehmer #{pluralDE n "wurde ohne assoziiertes Studienfach" "wurden ohne assoziierte Studienfächer"} angemeldet, da #{pluralDE n "kein eindeutiges Hauptfach bestimmt werden konnte" "keine eindeutigen Hauptfächer bestimmt werden konnten"}
ExamRegistrationAndCourseParticipantsRegistered n@Int: #{n} Teilnehmer #{pluralDE n "wurde" "wurden"} sowohl zum Kurs, als auch zur Prüfung angemeldet ExamRegistrationAndCourseParticipantsRegistered n@Int: #{n} Teilnehmer #{pluralDE n "wurde" "wurden"} sowohl zum Kurs, als auch zur Prüfung angemeldet
@ -1672,9 +1637,6 @@ ExamUsersResultSet count@Int64: Prüfungsergebnis für #{show count} Teilnehmer
ExamUsersExamDataRequiresRegistration: Wenn Prüfungsbezogene Daten (Teil-/Ergebnis, Termin/Raum, Bonus) gesetzt bzw. angepasst werden sollen, muss der jeweilige Teilnehmer zur Prüfung angemeldet sein bzw. werden. ExamUsersExamDataRequiresRegistration: Wenn Prüfungsbezogene Daten (Teil-/Ergebnis, Termin/Raum, Bonus) gesetzt bzw. angepasst werden sollen, muss der jeweilige Teilnehmer zur Prüfung angemeldet sein bzw. werden.
CourseUserSetSubmissionGroup: Feste Abgabegruppe setzen/entfernen CourseUserSetSubmissionGroup: Feste Abgabegruppe setzen/entfernen
SubmissionGroup: Feste Abgabegruppe
NoSubmissionGroup: Keine feste Abgabegruppe
ExamUserSynchronised: Synchronisiert ExamUserSynchronised: Synchronisiert
ExamUserSyncOfficeName: Name ExamUserSyncOfficeName: Name
ExamUserSyncTime: Zeitpunkt ExamUserSyncTime: Zeitpunkt
@ -2062,11 +2024,6 @@ AuthKindPWHash: Uni2work-Kennung
UserAdded: Benutzer erfolgreich angelegt UserAdded: Benutzer erfolgreich angelegt
UserCollision: Benutzer konnte wegen Eindeutigkeit nicht angelegt werden UserCollision: Benutzer konnte wegen Eindeutigkeit nicht angelegt werden
CourseAllocationsBounds n@Int: Voraussichtliche Zuteilungen durch #{pluralDE n "Zentralanmeldung" "Zentralanmeldungen"}
CourseAllocationsBoundCoincide numFirstChoice@Int: Vstl. #{numFirstChoice} Teilnehmer
CourseAllocationsBound numApps@Int numFirstChoice@Int: Vstl. zwischen #{numFirstChoice} und #{numApps} Teilnehmer
CourseAllocationsBoundCapped: Die obige Anzeige wurde durch die aktuell angegebene Kurskapazität reduziert.
CourseAllocationsBoundWarningOpen: Diese Informationen entsprechen nur dem aktuellen Stand der Bewerbungen und können sich noch ändern.
BtnSetDisplayEmail: E-Mail-Adresse setzen BtnSetDisplayEmail: E-Mail-Adresse setzen
UserDisplayEmailChanged: Öffentliche E-Mail-Adresse erfolgreich gesetzt UserDisplayEmailChanged: Öffentliche E-Mail-Adresse erfolgreich gesetzt
@ -2092,19 +2049,6 @@ LecturerInfoTooltipProblem: Feature mit bekannten Problemen
LecturerInfoTooltipPlanned: Geplantes Feature LecturerInfoTooltipPlanned: Geplantes Feature
LecturerInfoTooltipNewU2W: Unterschied zu UniWorX LecturerInfoTooltipNewU2W: Unterschied zu UniWorX
BtnAcceptApplications: Bewerbungen akzeptieren
BtnAcceptApplicationsTip: Mit dem untigen Knopf können Sie den Kurs (höchstens bis zur angegeben Maximalkapazität, falls eingestellt) mit Bewerbern auffüllen. Die Bewertungen der Bewerbungen werden dabei berücksichtigt (Unbewertet wird behandelt wie eine Note zwischen 2.3 und 2.7). Bewerber mit Veto oder 5.0 werden nicht angemeldet.
CourseMaterial: Material
CourseMaterialNotFree: Das Kursmaterial ist nur für Mitglieder des Kurses einsehbar, also z.B. für Teilnehmer, Tutoren, Korrektoren und Verwalter.
CourseSheetsFoundHere: Die Übungsblatter zum Kurs finden Sie hier
CourseSheetsNoneVisible: Aktuell gibt es zu diesem Kurs keine Übungsblätter, oder nur Übungsblätter auf die Sie keinen Zugriff haben (z.B. aufgrund von Fristen bzgl. der Sichtbarkeit).
CourseMaterialsFoundHere: Material zum Kurs finden Sie hier
CourseMaterialsNoneVisible: Aktuell gibt es zu diesem Kurs kein Material, oder nur Material auf das Sie keinen Zugriff haben (z.B. aufgrund von Fristen bzgl. der Sichtbarkeit).
MailSubjectAllocationResults allocation@AllocationName: Plätze für Zentralanmeldung „#{allocation}“ wurden verteilt MailSubjectAllocationResults allocation@AllocationName: Plätze für Zentralanmeldung „#{allocation}“ wurden verteilt
AllocationResultsLecturer: Im Rahmen der oben genannten Zentralanmeldung wurden Plätze zugewiesen, wie folgt: AllocationResultsLecturer: Im Rahmen der oben genannten Zentralanmeldung wurden Plätze zugewiesen, wie folgt:
AllocationResultLecturer csh@CourseShorthand count@Int64 count2@Int64: #{count} Teilnehmer (von insgesamt #{count2}) für #{csh} AllocationResultLecturer csh@CourseShorthand count@Int64 count2@Int64: #{count} Teilnehmer (von insgesamt #{count2}) für #{csh}
@ -2131,7 +2075,6 @@ FavouritesUnavailableTip: Das Schnellzugriffsmenü für diesen Kurs ist aktuell
UserSimplifiedFeaturesOfStudyCsv: Vereinfachte Studiengangsdaten UserSimplifiedFeaturesOfStudyCsv: Vereinfachte Studiengangsdaten
UserSimplifiedFeaturesOfStudyCsvTip: Sollen Abschluss, Studiengang und Semester zur einfacheren Verarbeitung als separate Spalten exportiert werden? Es wird dann nur jeweils das Fach exportiert, dass der Student bei der Anmeldung ausgewählt hat. UserSimplifiedFeaturesOfStudyCsvTip: Sollen Abschluss, Studiengang und Semester zur einfacheren Verarbeitung als separate Spalten exportiert werden? Es wird dann nur jeweils das Fach exportiert, dass der Student bei der Anmeldung ausgewählt hat.
Sex: Geschlecht
SexNotKnown: Unbekannt SexNotKnown: Unbekannt
SexMale: Männlich SexMale: Männlich
SexFemale: Weiblich SexFemale: Weiblich

View File

@ -38,6 +38,9 @@ BtnSystemMessageUnhide: Unhide
BtnCommunicationSend: Send BtnCommunicationSend: Send
BtnCommunicationTest: Send test message BtnCommunicationTest: Send test message
BtnAcceptApplications: Accept applications
BtnAcceptApplicationsTip: By clicking the button below you may fill the course with applicants (only up to the maximum capacity if configured). Grading of applications will be considered (no grading is treated as if graded between 2.3 and 2.7). Vetoed applicants and applications graded 5.0 will not be enrolled.
AcceptApplicationsDirect: Enroll directly AcceptApplicationsDirect: Enroll directly
AcceptApplicationsInvite: Send invitations AcceptApplicationsInvite: Send invitations
@ -55,7 +58,10 @@ TableStudyTerm: Field of study
TableHeadingFilter: Filter TableHeadingFilter: Filter
TableTerm: Semester TableTerm: Semester
TableCourseSchool: Department TableCourseSchool: Department
TableSubmissionGroup: Registered submission group
TableNoSubmissionGroup: No registered submission group
TableMatrikelNr: Matriculation
TableSex: Sex
#headings #headings
HeadingLegal: Legal HeadingLegal: Legal
@ -83,12 +89,10 @@ HeadingCorrectionsAssign: Assign corrections
HeadingUserAdd: Add user HeadingUserAdd: Add user
CorrectorsChange: Adjust correctors CorrectorsChange: Adjust correctors
MaterialList: Material MaterialList: Material
SheetListCourse: Exercise sheets
HeadingDataProt: Data protection HeadingDataProt: Data protection
HeadingTermsUse: Terms of use HeadingTermsUse: Terms of use
HeadingCopyright: Copyright HeadingCopyright: Copyright
HeadingImprint: Imprint HeadingImprint: Imprint
CourseApplications: Applications
CourseNew: Create new course CourseNew: Create new course
#general warnings #general warnings
@ -101,16 +105,10 @@ FormFieldWorkflowDatasetTip: At least one of the marked fields must be filled
Aborted: Aborted Aborted: Aborted
Remarks: Remarks Remarks: Remarks
NotRegistered: Note enrolled for this course
RegisterFrom: Enrolment starts RegisterFrom: Enrolment starts
RegisterTo: Enrolment ends RegisterTo: Enrolment ends
TutorialDeRegUntil: Deregistration until TutorialDeRegUntil: Deregistration until
CourseRegistrationInterval: Enrolment
CourseDirectRegistrationInterval: Direct enrolment
CourseDeregisterUntil time: Deregistration only until #{time}
GenericKey: Key GenericKey: Key
GenericShort: Shorthand GenericShort: Shorthand
GenericIsNew: New GenericIsNew: New
@ -164,13 +162,8 @@ CourseNoCapacity: Course has reached maximum capacity
TutorialNoCapacity: Tutorial has reached maximum capacity TutorialNoCapacity: Tutorial has reached maximum capacity
ExamOccurrenceNoCapacity: Occurrence/Room has reached maximum capacity ExamOccurrenceNoCapacity: Occurrence/Room has reached maximum capacity
CourseNotEmpty: There are currently no participants enrolled for this course. CourseNotEmpty: There are currently no participants enrolled for this course.
CourseVisibility: Visibility
CourseInvisible: This course is currently only visible to lecturers, assistants, tutors, correctors, enrolled participants and applicants.
CourseInvisibleOverridenByAllocation: Because the allocation this course participates in is currently open for application, the course is forced to be visible. After the application phase, the course will only be visible to lecturers, assistants, tutors, correctors, enrolled participants and applicants.
CourseRegistration: Enrolment
CourseApply: Apply for course CourseApply: Apply for course
CourseDeregisterLecturerTip: If you deregister the participant you might loose access to this data
CourseStudyFeature: Associated subject CourseStudyFeature: Associated subject
CourseStudyFeatureTip: For information purposes only (visible to course administrators) CourseStudyFeatureTip: For information purposes only (visible to course administrators)
CourseStudyFeatureUpdated: Successfully updated associated subject CourseStudyFeatureUpdated: Successfully updated associated subject
@ -187,7 +180,6 @@ CourseEditHeading tid ssh csh: Edit course #{tid}-#{ssh}-#{csh}
CourseMembers: Participants CourseMembers: Participants
CourseMembersCount n: #{n} CourseMembersCount n: #{n}
CourseMembersCountLimited n max: #{n}/#{max} CourseMembersCountLimited n max: #{n}/#{max}
CourseMembersCountOf n mbNum: #{n} #{maybeToMessage "of " mbNum " "}participants
TutorialRegisterFromTip: When left empty students will not be able to enrol themselves TutorialRegisterFromTip: When left empty students will not be able to enrol themselves
TutorialRegisterToTip: May be left empty to allow enrolment indefinitely TutorialRegisterToTip: May be left empty to allow enrolment indefinitely
TutorialDeregisterUntilTip: Participants may deregister from immediately after registration starts up to this time. May be left empty to allow deregistration indefinitely. TutorialDeregisterUntilTip: Participants may deregister from immediately after registration starts up to this time. May be left empty to allow deregistration indefinitely.
@ -197,9 +189,6 @@ BoolIrrelevant: —
CourseDeleteQuestion: Are you sure you want to delete the below-mentioned course? CourseDeleteQuestion: Are you sure you want to delete the below-mentioned course?
CourseDeleted: Course deleted CourseDeleted: Course deleted
CourseUserRegister: Enrol for course CourseUserRegister: Enrol for course
CourseSingleUserExams: Exams
CourseSingleUserTutorials: Tutorials
CourseUserCorrections: Submissions
CourseUserDeregister: Deregister from course CourseUserDeregister: Deregister from course
CourseUserRegisterTutorial: Register for a tutorial CourseUserRegisterTutorial: Register for a tutorial
CourseUserRegisterExam: Register for an exam CourseUserRegisterExam: Register for an exam
@ -212,10 +201,8 @@ TutorialUsersDeregistered count: Successfully deregistered #{show count} partici
CourseAllocationCourseAcceptsSubstitutesUntil: Accepts substitutes until CourseAllocationCourseAcceptsSubstitutesUntil: Accepts substitutes until
CourseAllocationCourseAcceptsSubstitutesNever: Does not accept substitutes CourseAllocationCourseAcceptsSubstitutesNever: Does not accept substitutes
CourseAllocationCourseParticipants: Participants CourseAllocationCourseParticipants: Participants
CourseApplicationInstructionsApplication: Instructions for application CourseAllocationApplicationInstructionsApplication: Instructions for application
CourseApplicationInstructionsRegistration: Instructions for registration CourseAllocationApplicationTemplateApplication: Application template(s)
CourseApplicationTemplateApplication: Application template(s)
CourseApplicationTemplateRegistration: Registration template(s)
CourseApplication: Application CourseApplication: Application
CourseApplicationExists: You already applied for this course CourseApplicationExists: You already applied for this course
@ -226,7 +213,6 @@ CourseApplicationNotEdited csh: Application for #{csh} not changed
CourseApplicationRated: Successfully edited rating CourseApplicationRated: Successfully edited rating
CourseApplicationRatingDeleted: Successfully deleted rating CourseApplicationRatingDeleted: Successfully deleted rating
CourseApplicationDeleted csh: Successfully withdrew application for #{csh} CourseApplicationDeleted csh: Successfully withdrew application for #{csh}
CourseApplicationDeleteToEdit: You need to withdraw your application and reapply to edit your application.
CourseRegistrationDeleteToEdit: You need to deregister and reregister to edit your registration. CourseRegistrationDeleteToEdit: You need to deregister and reregister to edit your registration.
CourseLoginToApply: You need to login to Uni2work before you can apply for this course. CourseLoginToApply: You need to login to Uni2work before you can apply for this course.
@ -550,17 +536,11 @@ NumCourses num: #{num} #{pluralEN num "course" "courses"}
CloseAlert: Close CloseAlert: Close
Name: Name Name: Name
MatrikelNr: Matriculation
Surname: Surname(s)
FirstName: Given name(s)
Title: Title
LdapSynced: LDAP-synchronised LdapSynced: LDAP-synchronised
LdapSyncedBefore: Last LDAP-synchronisation before LdapSyncedBefore: Last LDAP-synchronisation before
NoMatrikelKnown: No matriculation
Plugin: Plugin Plugin: Plugin
Settings: Settings Settings: Settings
SettingsUpdate: Successfully updated settings SettingsUpdate: Successfully updated settings
NotificationSettingsUpdate: Successfully updated notification settings NotificationSettingsUpdate: Successfully updated notification settings
@ -724,12 +704,6 @@ AdminUserRightsHeading: User permissions
AdminUserAuthHeading: User authentication AdminUserAuthHeading: User authentication
AdminUserHeadingFor: Profile of AdminUserHeadingFor: Profile of
AdminFor: Administrator AdminFor: Administrator
LecturerFor: Lecturer
LecturersFor: Lecturers
AssistantFor: Assistant
AssistantsFor: Assistants
TutorsFor n: #{pluralEN n "Tutor" "Tutors"}
CorrectorsFor n: #{pluralEN n "Corrector" "Correctors"}
UserListTitle: Comprehensive list of users UserListTitle: Comprehensive list of users
AccessRightsSaved: Successfully updated permissions AccessRightsSaved: Successfully updated permissions
AccessRightsNotChanged: Permissions left unchanged AccessRightsNotChanged: Permissions left unchanged
@ -858,9 +832,7 @@ SubmissionUpdated: Successfully replaced submission
ColumnStudyFeatures: Features of study ColumnStudyFeatures: Features of study
AdminFeaturesHeading: Features of study AdminFeaturesHeading: Features of study
StudyTerms: Fields of study
NoStudyTermsKnown: No known features of study
StudyFeaturesDegrees: Degrees StudyFeaturesDegrees: Degrees
StudyFeaturesTerms: Terms of Study StudyFeaturesTerms: Terms of Study
StudyFeaturesNameCandidates: Name candidates StudyFeaturesNameCandidates: Name candidates
@ -1366,9 +1338,6 @@ TutorialDelete: Delete
TutorialTutorControlled: Tutors may edit tutorial TutorialTutorControlled: Tutors may edit tutorial
TutorialTutorControlledTip: Should tutors be allowed to edit arbitrary aspects of this tutorial (name, registration group, room, time, other tutors, ...) at will? TutorialTutorControlledTip: Should tutors be allowed to edit arbitrary aspects of this tutorial (name, registration group, room, time, other tutors, ...) at will?
CourseExams: Exams
CourseTutorials: Tutorials
ParticipantsN n: #{n} #{pluralEN n "participant" "participants"} ParticipantsN n: #{n} #{pluralEN n "participant" "participants"}
TutorialDeleteQuestion: Do you really want to delete the tutorial listed below? TutorialDeleteQuestion: Do you really want to delete the tutorial listed below?
TutorialDeleted: Tutorial deleted TutorialDeleted: Tutorial deleted
@ -1411,9 +1380,7 @@ HealthSMTPConnect: SMTP server is reachable
HealthWidgetMemcached: Memcached server is serving widgets correctly HealthWidgetMemcached: Memcached server is serving widgets correctly
HealthActiveJobExecutors: Proportion of job workers accepting new jobs HealthActiveJobExecutors: Proportion of job workers accepting new jobs
CourseParticipantsHeading: Course participants
CourseParticipantsCount n: #{n}
CourseParticipantsCountOf n m: #{n} of #{m}
CourseParticipants n: Currently #{n} course #{pluralEN n "participant" "participants"} CourseParticipants n: Currently #{n} course #{pluralEN n "participant" "participants"}
CourseParticipantsRegisteredWithoutField n: #{n} #{pluralEN n "participant was" "participants were"} registered without #{pluralEN n "an associated field of study" "associated fields of study"}, because #{pluralEN n "it" "they"} could not be determined uniquely. CourseParticipantsRegisteredWithoutField n: #{n} #{pluralEN n "participant was" "participants were"} registered without #{pluralEN n "an associated field of study" "associated fields of study"}, because #{pluralEN n "it" "they"} could not be determined uniquely.
ExamRegistrationAndCourseParticipantsRegistered n: Registered #{n} #{pluralEN n "participant" "participants"} for the exam as well as for the course ExamRegistrationAndCourseParticipantsRegistered n: Registered #{n} #{pluralEN n "participant" "participants"} for the exam as well as for the course
@ -1665,8 +1632,6 @@ ExamUsersResultSet count: Sucessfully modified exam result for #{show count} #{p
ExamUsersExamDataRequiresRegistration: If exam data (part-/result, occurrence/room, bonus) is to be modified/set, the relenvant participant needs to be registered for the exam. ExamUsersExamDataRequiresRegistration: If exam data (part-/result, occurrence/room, bonus) is to be modified/set, the relenvant participant needs to be registered for the exam.
CourseUserSetSubmissionGroup: Set/Unset registered submission group CourseUserSetSubmissionGroup: Set/Unset registered submission group
SubmissionGroup: Registered submission group
NoSubmissionGroup: No registered submission group
ExamUserSynchronised: Synchronised ExamUserSynchronised: Synchronised
ExamUserSyncOfficeName: Name ExamUserSyncOfficeName: Name
@ -2055,12 +2020,6 @@ AuthKindPWHash: Uni2work account
UserAdded: Successfully added user UserAdded: Successfully added user
UserCollision: Could not create user due to uniqueness constraint UserCollision: Could not create user due to uniqueness constraint
CourseAllocationsBounds n: Expected number of alloctions due to #{pluralEN n "central allocation" "central allocations"}
CourseAllocationsBoundCoincide numFirstChoice: Est. #{numFirstChoice} #{pluralEN numFirstChoice "participant" "participants"}
CourseAllocationsBound numApps numFirstChoice: Est. between #{numFirstChoice} and #{numApps} #{pluralEN numApps "participant" "participants"}
CourseAllocationsBoundCapped: The numbers listed above were modified based on the currently configured course capacity.
CourseAllocationsBoundWarningOpen: The information listed above represents only the current state of applications and is subject to change.
BtnSetDisplayEmail: Set email address BtnSetDisplayEmail: Set email address
UserDisplayEmailChanged: Successfully set display email UserDisplayEmailChanged: Successfully set display email
TitleChangeUserDisplayEmail: Set display email TitleChangeUserDisplayEmail: Set display email
@ -2085,20 +2044,6 @@ LecturerInfoTooltipProblem: Feature with known issues
LecturerInfoTooltipPlanned: Planned feature LecturerInfoTooltipPlanned: Planned feature
LecturerInfoTooltipNewU2W: Unlike UniWorX LecturerInfoTooltipNewU2W: Unlike UniWorX
BtnAcceptApplications: Accept applications
BtnAcceptApplicationsTip: By clicking the button below you may fill the course with applicants (only up to the maximum capacity if configured). Grading of applications will be considered (no grading is treated as if graded between 2.3 and 2.7). Vetoed applicants and applications graded 5.0 will not be enrolled.
CourseMaterial: Material
CourseMaterialNotFree: Course material is only accessible to members of the course, e.g. for participants, tutors, correctors or administratiors.
CourseSheetsFoundHere: Exercise sheets for this course are available here
CourseSheetsNoneVisible: Currently there are no exercise sheets for this course or only exercise sheets to which you don't have access (e.g. because of visibility settings)
CourseMaterialsFoundHere: Material for this course is available here
CourseMaterialsNoneVisible: Currently there is no material for this course or only material to which you don't have access (e.g. because of visibility settings)
MailSubjectAllocationResults allocation: Placements have been made for the central allocation “#{allocation}” MailSubjectAllocationResults allocation: Placements have been made for the central allocation “#{allocation}”
AllocationResultsLecturer: In the course of the central allocations placements have been made as follows: AllocationResultsLecturer: In the course of the central allocations placements have been made as follows:
AllocationResultLecturer csh count count2: #{count} #{pluralEN count "participant" "participants"} (of #{count2}) for #{csh} AllocationResultLecturer csh count count2: #{count} #{pluralEN count "participant" "participants"} (of #{count2}) for #{csh}
@ -2125,7 +2070,6 @@ FavouritesUnavailableTip: Quick Actions for this course are currently not availa
UserSimplifiedFeaturesOfStudyCsv: Simplified features of study UserSimplifiedFeaturesOfStudyCsv: Simplified features of study
UserSimplifiedFeaturesOfStudyCsvTip: Should field of study, degree, and semester be exported in separate columns for ease of processing? If so only the field of study associated by the user with their course registration will be exported. UserSimplifiedFeaturesOfStudyCsvTip: Should field of study, degree, and semester be exported in separate columns for ease of processing? If so only the field of study associated by the user with their course registration will be exported.
Sex: Sex
SexNotKnown: Unknown SexNotKnown: Unknown
SexMale: Male SexMale: Male
SexFemale: Female SexFemale: Female

View File

@ -177,4 +177,59 @@ CourseUsersExamRegistered count@Int64: #{show count} Teilnehmer:innen zur Prüfu
CourseUsersSubmissionGroupSetNew count@Int64: #{show count} Benutzer:innen der festen Abgabegruppe zugeordnet CourseUsersSubmissionGroupSetNew count@Int64: #{show count} Benutzer:innen der festen Abgabegruppe zugeordnet
CourseUsersSubmissionGroupUnset count@Int64: #{show count} Benutzer:innen aus ihren jeweiligen festen Abgabegruppen entfernt CourseUsersSubmissionGroupUnset count@Int64: #{show count} Benutzer:innen aus ihren jeweiligen festen Abgabegruppen entfernt
CourseUsersStateSet count@Int64: Zustand von #{show count} #{pluralDE count "Benutzer:in" "Benutzer:innen"} angepasst CourseUsersStateSet count@Int64: Zustand von #{show count} #{pluralDE count "Benutzer:in" "Benutzer:innen"} angepasst
HeadingCourseMembers: Kursteilnehmer:innen HeadingCourseMembers: Kursteilnehmer:innen
#templates/course.hamlet
LecturerFor: Dozent:in
LecturersFor: Dozierende
AssistantFor: Assistent:in
AssistantsFor: Assistent:innen
TutorsFor n@Int: #{pluralDE n "Tutor:in" "Tutor:innen"}
CorrectorsFor n@Int: #{pluralDE n "Korrektor:in" "Korrektor:innen"}
CourseParticipantsHeading: Kursteilnehmer:innen
CourseParticipantsCount n@Int: #{n}
CourseParticipantsCountOf n@Int m@Int: #{n} von #{m}
CourseVisibility: Sichtbarkeit
CourseInvisible: Dieser Kurs ist momentan nur für Dozierende, Assistent:innen, Tutor:innen, Korrektor:innen, angemeldete Teilnehmer:innen und Bewerber:innen sichtbar.
CourseInvisibleOverridenByAllocation: Da die Zentralanmeldung, an welcher der Kurs teilnimmt aktuell offen für Bewerbungen ist, wird die Kurssichtbarkeit während der Bewerbungsphase forciert. Außerhalb der Bewerbungsphase ist der Kurs nur für Dozierende, Assistent:innen, Tutor:innen, Korrektor:innen, angemeldete Teilnehmer:innen und Bewerber:innen sichtbar.
CourseRegistrationInterval: Anmeldung
CourseDirectRegistrationInterval: Direkte Anmeldung
CourseDeregisterUntil time@Text: Abmeldung nur bis #{time}
CourseApplicationInstructionsApplication: Anweisungen zur Bewerbung
CourseApplicationInstructionsRegistration: Anweisungen zur Anmeldung
CourseApplicationTemplateApplication: Bewerbungsvorlage(n)
CourseApplicationTemplateRegistration: Anmeldungsvorlage(n)
CourseRegistration: Kursanmeldung
NotRegistered: Sie sind zu diesem Kurs nicht angemeldet.
CourseApplicationDeleteToEdit: Um Ihre Bewerbung zu editieren müssen Sie sie zunächst zurückziehen und sich erneut bewerben.
CourseMaterial: Material
CourseMaterialNotFree: Das Kursmaterial ist nur für Mitglieder des Kurses einsehbar, also z.B. für Teilnehmer:innen, Tutor:innen, Korrektor:innen und Verwalter:innen.
CourseMaterialsFoundHere: Material zum Kurs finden Sie hier
CourseMaterialsNoneVisible: Aktuell gibt es zu diesem Kurs kein Material, oder nur Material auf das Sie keinen Zugriff haben (z.B. aufgrund von Fristen bzgl. der Sichtbarkeit).
CourseSheetsFoundHere: Die Übungsblatter zum Kurs finden Sie hier
CourseSheetsNoneVisible: Aktuell gibt es zu diesem Kurs keine Übungsblätter, oder nur Übungsblätter auf die Sie keinen Zugriff haben (z.B. aufgrund von Fristen bzgl. der Sichtbarkeit).
SheetListCourse: Übungsblätter
CourseExams: Prüfungen
CourseTutorials: Tutorien
#templates course/user
CourseUserCorrections: Abgaben
CourseSubmissionGradingSummaryTitle intgr@Integer: #{intgr} #{pluralDE intgr "Abgabe" "Abgaben"}
CourseSingleUserExams: Prüfungen
CourseSingleUserTutorials: Tutorien
Surname: Nachname(n)
FirstName: Vorname(n)
Title: Titel
NoMatrikelKnown: Keine Matrikelnummer
CourseDeregisterLecturerTip: Wenn Sie den/die Teilnehmer/Teilnehmerin vom Kurs abmelden kann es sein, dass sie Zugriff auf diese Daten verlieren
StudyTerms: Studiengänge
NoStudyTermsKnown: Keine Studiengänge bekannt
CourseMembersCountOf n@Int mbNum@(Maybe Int): #{n} Kursanmeldungen #{maybeToMessage " von " mbNum " möglichen"}
#template course/application
CourseAllocationsBounds n@Int: Voraussichtliche Zuteilungen durch #{pluralDE n "Zentralanmeldung" "Zentralanmeldungen"}
CourseAllocationsBoundCoincide numFirstChoice@Int: Vstl. #{numFirstChoice} #{pluralDE numFirstChoice "Teinehmer:in" "Teinehmer:innen"}
CourseAllocationsBound numApps@Int numFirstChoice@Int: Vstl. zwischen #{numFirstChoice} und #{numApps} #{pluralDE numApps "Teinehmer:in" "Teinehmer:innen"}
CourseAllocationsBoundCapped: Die obige Anzeige wurde durch die aktuell angegebene Kurskapazität reduziert.
CourseAllocationsBoundWarningOpen: Diese Informationen entsprechen nur dem aktuellen Stand der Bewerbungen und können sich noch ändern.
CourseApplications: Bewerbungen

View File

@ -177,4 +177,59 @@ CourseUsersExamRegistered count: Successfully registered #{show count} users for
CourseUsersSubmissionGroupSetNew count: Successfully added #{show count} #{pluralEN count "user" "users"} to submission group CourseUsersSubmissionGroupSetNew count: Successfully added #{show count} #{pluralEN count "user" "users"} to submission group
CourseUsersSubmissionGroupUnset count: Successfully removed #{show count} #{pluralEN count "user" "users"} from their #{pluralEN count "submission group" "respective submission groups"} CourseUsersSubmissionGroupUnset count: Successfully removed #{show count} #{pluralEN count "user" "users"} from their #{pluralEN count "submission group" "respective submission groups"}
CourseUsersStateSet count: Successfully changed state of #{show count} #{pluralEN count "user" "users"} CourseUsersStateSet count: Successfully changed state of #{show count} #{pluralEN count "user" "users"}
HeadingCourseMembers: Participants HeadingCourseMembers: Participants
#templates/course.hamlet
LecturerFor: Lecturer
LecturersFor: Lecturers
AssistantFor: Assistant
AssistantsFor: Assistants
TutorsFor n: #{pluralEN n "Tutor" "Tutors"}
CorrectorsFor n: #{pluralEN n "Corrector" "Correctors"}
CourseParticipantsHeading: Course participants
CourseParticipantsCount n: #{n}
CourseParticipantsCountOf n m: #{n} of #{m}
CourseVisibility: Visibility
CourseInvisible: This course is currently only visible to lecturers, assistants, tutors, correctors, enrolled participants and applicants.
CourseInvisibleOverridenByAllocation: Because the allocation this course participates in is currently open for application, the course is forced to be visible. After the application phase, the course will only be visible to lecturers, assistants, tutors, correctors, enrolled participants and applicants.
CourseRegistrationInterval: Enrolment
CourseDirectRegistrationInterval: Direct enrolment
CourseDeregisterUntil time: Deregistration only until #{time}
CourseApplicationInstructionsApplication: Instructions for application
CourseApplicationInstructionsRegistration: Instructions for registration
CourseApplicationTemplateApplication: Application template(s)
CourseApplicationTemplateRegistration: Registration template(s)
CourseRegistration: Enrolment
NotRegistered: Note enrolled for this course
CourseApplicationDeleteToEdit: You need to withdraw your application and reapply to edit your application.
CourseMaterial: Material
CourseMaterialNotFree: Course material is only accessible to members of the course, e.g. for participants, tutors, correctors or administratiors.
CourseMaterialsFoundHere: Material for this course is available here
CourseMaterialsNoneVisible: Currently there is no material for this course or only material to which you don't have access (e.g. because of visibility settings)
CourseSheetsFoundHere: Exercise sheets for this course are available here
CourseSheetsNoneVisible: Currently there are no exercise sheets for this course or only exercise sheets to which you don't have access (e.g. because of visibility settings)
SheetListCourse: Exercise sheets
CourseExams: Exams
CourseTutorials: Tutorials
#templates course/user
CourseUserCorrections: Submissions
CourseSubmissionGradingSummaryTitle intgr: #{intgr} #{pluralEN intgr "submission" "submissions"}
CourseSingleUserExams: Exams
CourseSingleUserTutorials: Tutorials
Surname: Surname(s)
FirstName: Given name(s)
Title: Title
NoMatrikelKnown: No matriculation
CourseDeregisterLecturerTip: If you deregister the participant you might loose access to this data
StudyTerms: Fields of study
NoStudyTermsKnown: No known features of study
CourseMembersCountOf n mbNum: #{n} #{maybeToMessage "of " mbNum " "}participants
#template course/application
CourseAllocationsBounds n: Expected number of alloctions due to #{pluralEN n "central allocation" "central allocations"}
CourseAllocationsBoundCoincide numFirstChoice: Est. #{numFirstChoice} #{pluralEN numFirstChoice "participant" "participants"}
CourseAllocationsBound numApps numFirstChoice: Est. between #{numFirstChoice} and #{numApps} #{pluralEN numApps "participant" "participants"}
CourseAllocationsBoundCapped: The numbers listed above were modified based on the currently configured course capacity.
CourseAllocationsBoundWarningOpen: The information listed above represents only the current state of applications and is subject to change.
CourseApplications: Applications

View File

@ -148,7 +148,7 @@ allocationApplicationsForm aId courses FieldSettings{..} fvRequired = formToAFor
\ ^{iconOK} \ ^{iconOK}
$if is _Just mApplicationTemplate || is _Just courseApplicationsInstructions $if is _Just mApplicationTemplate || is _Just courseApplicationsInstructions
<div .allocation-course__instructions-label .allocation__label> <div .allocation-course__instructions-label .allocation__label>
_{MsgCourseApplicationInstructionsApplication} _{MsgCourseAllocationApplicationInstructionsApplication}
<div .allocation-course__instructions> <div .allocation-course__instructions>
$maybe aInst <- courseApplicationsInstructions $maybe aInst <- courseApplicationsInstructions
<p> <p>
@ -156,7 +156,7 @@ allocationApplicationsForm aId courses FieldSettings{..} fvRequired = formToAFor
$maybe templateUrl <- mApplicationTemplate $maybe templateUrl <- mApplicationTemplate
<p> <p>
<a href=#{templateUrl}> <a href=#{templateUrl}>
#{iconRegisterTemplate} _{MsgCourseApplicationTemplateApplication} #{iconRegisterTemplate} _{MsgCourseAllocationApplicationTemplateApplication}
<div .allocation-course__application-label .interactive-fieldset__target .allocation__label uw-interactive-fieldset data-conditional-input=#{maybe "" fvId afvPriority} data-conditional-value="" data-conditional-negated> <div .allocation-course__application-label .interactive-fieldset__target .allocation__label uw-interactive-fieldset data-conditional-input=#{maybe "" fvId afvPriority} data-conditional-value="" data-conditional-negated>
_{MsgCourseApplication} _{MsgCourseApplication}
<div .allocation-course__application .interactive-fieldset__target uw-interactive-fieldset data-conditional-input=#{maybe "" fvId afvPriority} data-conditional-value="" data-conditional-negated> <div .allocation-course__application .interactive-fieldset__target uw-interactive-fieldset data-conditional-input=#{maybe "" fvId afvPriority} data-conditional-value="" data-conditional-negated>

View File

@ -257,7 +257,7 @@ courseUserSubmissionsSection (Entity cid Course{..}) (Entity uid _) = do
] -- Continue here ] -- Continue here
filterUI = Just $ \mPrev -> mconcat filterUI = Just $ \mPrev -> mconcat
[ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseCourseMembers) [ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseCourseMembers)
, prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgMatrikelNr) , prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgTableMatrikelNr)
-- "pseudonym" TODO DB only stores Word24 -- "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))) , 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) , prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgCorrector)

View File

@ -148,7 +148,7 @@ colUserSex' :: IsDBTable m c => Colonnade Sortable UserTableData (DBCell m c)
colUserSex' = colUserSex $ hasUser . _userSex colUserSex' = colUserSex $ hasUser . _userSex
colUserSubmissionGroup :: IsDBTable m c => Colonnade Sortable UserTableData (DBCell m c) colUserSubmissionGroup :: IsDBTable m c => Colonnade Sortable UserTableData (DBCell m c)
colUserSubmissionGroup = sortable (Just "submission-group") (i18nCell MsgSubmissionGroup) $ colUserSubmissionGroup = sortable (Just "submission-group") (i18nCell MsgTableSubmissionGroup) $
foldMap (cell . toWidget) . preview (_userSubmissionGroup . _entityVal . _submissionGroupName) foldMap (cell . toWidget) . preview (_userSubmissionGroup . _entityVal . _submissionGroupName)
colUserSheets :: forall m c. IsDBTable m c => [SheetName] -> Cornice Sortable ('Cap 'Base) UserTableData (DBCell m c) colUserSheets :: forall m c. IsDBTable m c => [SheetName] -> Cornice Sortable ('Cap 'Base) UserTableData (DBCell m c)
@ -429,7 +429,7 @@ makeCourseUserTable cid acts restrict colChoices psValidator csvColumns = do
, fltrUserMatriclenrUI mPrev , fltrUserMatriclenrUI mPrev
] ++ ] ++
[ fltrUserSexUI mPrev | showSex ] ++ [ fltrUserSexUI mPrev | showSex ] ++
[ prismAForm (singletonFilter "submission-group") mPrev $ aopt textField (fslI MsgSubmissionGroup) [ prismAForm (singletonFilter "submission-group") mPrev $ aopt textField (fslI MsgTableSubmissionGroup)
, prismAForm (singletonFilter "tutorial") mPrev $ aopt textField (fslI MsgCourseUserTutorial) , prismAForm (singletonFilter "tutorial") mPrev $ aopt textField (fslI MsgCourseUserTutorial)
, prismAForm (singletonFilter "exam") mPrev $ aopt textField (fslI MsgCourseUserExam) , prismAForm (singletonFilter "exam") mPrev $ aopt textField (fslI MsgCourseUserExam)
, fltrRelevantStudyFeaturesDegreeUI mPrev , fltrRelevantStudyFeaturesDegreeUI mPrev
@ -588,7 +588,7 @@ postCUsersR tid ssh csh = do
, pure . singletonMap CourseUserRegisterExam $ CourseUserRegisterExamData <$> , pure . singletonMap CourseUserRegisterExam $ CourseUserRegisterExamData <$>
multiActionAOpts examOccActs examActs (fslI MsgCourseExam) Nothing multiActionAOpts examOccActs examActs (fslI MsgCourseExam) Nothing
, pure . singletonMap CourseUserSetSubmissionGroup $ CourseUserSetSubmissionGroupData . assertM (not . Text.null . CI.original) , pure . singletonMap CourseUserSetSubmissionGroup $ CourseUserSetSubmissionGroupData . assertM (not . Text.null . CI.original)
<$> aopt (textField & cfStrip & cfCI & addDatalist submissionGroupOpts) (fslI MsgSubmissionGroup & setTooltip MsgSubmissionGroupEmptyIsUnsetTip) Nothing <$> aopt (textField & cfStrip & cfCI & addDatalist submissionGroupOpts) (fslI MsgTableSubmissionGroup & setTooltip MsgSubmissionGroupEmptyIsUnsetTip) Nothing
, guardOn mayRegister . singletonMap CourseUserDeregister $ courseUserDeregisterForm cid , guardOn mayRegister . singletonMap CourseUserDeregister $ courseUserDeregisterForm cid
, guardOn mayRegister . singletonMap CourseUserReRegister $ pure CourseUserReRegisterData , guardOn mayRegister . singletonMap CourseUserReRegister $ pure CourseUserReRegisterData
, guardOn (not $ null personalisedSheets) . singletonMap CourseUserDownloadPersonalisedSheetFiles $ , guardOn (not $ null personalisedSheets) . singletonMap CourseUserDownloadPersonalisedSheetFiles $

View File

@ -136,13 +136,13 @@ colSubmittors = sortable (Just "submittors") (i18nCell MsgSubmissionUsers) $ \DB
| otherwise -> mempty | otherwise -> mempty
colSMatrikel :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a) colSMatrikel :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a)
colSMatrikel = sortable (Just "submittors-matriculation") (i18nCell MsgMatrikelNr) $ \DBRow{ dbrOutput=(_, _, (_, csh, tid, ssh), _, _, users, _, hasAccess) } -> colSMatrikel = sortable (Just "submittors-matriculation") (i18nCell MsgTableMatrikelNr) $ \DBRow{ dbrOutput=(_, _, (_, csh, tid, ssh), _, _, users, _, hasAccess) } ->
let protoCell = listCell (Map.toList $ Map.mapMaybe (\x@(User{userMatrikelnummer}, _, _) -> (x,) <$> assertM (not . null) userMatrikelnummer) users) $ \(userId, (_, matr)) -> anchorCellCM $cacheIdentHere (CourseR tid ssh csh . CUserR <$> encrypt userId) matr let protoCell = listCell (Map.toList $ Map.mapMaybe (\x@(User{userMatrikelnummer}, _, _) -> (x,) <$> assertM (not . null) userMatrikelnummer) users) $ \(userId, (_, matr)) -> anchorCellCM $cacheIdentHere (CourseR tid ssh csh . CUserR <$> encrypt userId) matr
in if | hasAccess -> protoCell & cellAttrs <>~ [("class", "list--inline list--comma-separated")] in if | hasAccess -> protoCell & cellAttrs <>~ [("class", "list--inline list--comma-separated")]
| otherwise -> mempty | otherwise -> mempty
colSGroups :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a) colSGroups :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a)
colSGroups = sortable (Just "submittors-group") (i18nCell MsgSubmissionGroup) $ \DBRow{ dbrOutput=(_, Entity _ Sheet{..}, _, _, _, users, _, hasAccess) } -> colSGroups = sortable (Just "submittors-group") (i18nCell MsgTableSubmissionGroup) $ \DBRow{ dbrOutput=(_, Entity _ Sheet{..}, _, _, _, users, _, hasAccess) } ->
let protoCell = listCell (nubOn (view _2) . Map.toList $ Map.mapMaybe (view _3) users) $ \(_, sGroup) -> cell $ toWidget sGroup let protoCell = listCell (nubOn (view _2) . Map.toList $ Map.mapMaybe (view _3) users) $ \(_, sGroup) -> cell $ toWidget sGroup
in if | hasAccess in if | hasAccess
, is _RegisteredGroups sheetGrouping , is _RegisteredGroups sheetGrouping
@ -697,13 +697,13 @@ postCCorrectionsR tid ssh csh = do
] -- Continue here ] -- Continue here
filterUI = Just $ \mPrev -> mconcat filterUI = Just $ \mPrev -> mconcat
[ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseMembers) [ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseMembers)
, prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgMatrikelNr) , prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgTableMatrikelNr)
-- "pseudonym" TODO DB only stores Word24 -- "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))) , 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) , prismAForm (singletonFilter "corrector-name-email") mPrev $ aopt textField (fslI MsgCorrector)
, prismAForm (singletonFilter "isassigned" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgHasCorrector) , 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 "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
, prismAForm (singletonFilter "submission-group") mPrev $ aopt textField (fslI MsgSubmissionGroup) , 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 MsgSubmission)
] ]
psValidator = def & defaultPagesize PagesizeAll -- Assisstant always want to see them all at once anyway psValidator = def & defaultPagesize PagesizeAll -- Assisstant always want to see them all at once anyway
@ -731,11 +731,11 @@ postSSubsR tid ssh csh shn = do
] ]
filterUI = Just $ \mPrev -> mconcat filterUI = Just $ \mPrev -> mconcat
[ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseMembers) [ prismAForm (singletonFilter "user-name-email") mPrev $ aopt textField (fslI MsgCourseMembers)
, prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgMatrikelNr) , 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 MsgCorrector)
, prismAForm (singletonFilter "isassigned" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgHasCorrector) , 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 "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime)
, prismAForm (singletonFilter "submission-group") mPrev $ aopt textField (fslI MsgSubmissionGroup) , 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 MsgSubmission)
-- "pseudonym" TODO DB only stores Word24 -- "pseudonym" TODO DB only stores Word24
] ]

View File

@ -78,7 +78,7 @@ postUsersR = do
, sortable (Just "name") (i18nCell MsgName) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM , sortable (Just "name") (i18nCell MsgName) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM
(AdminUserR <$> encrypt uid) (AdminUserR <$> encrypt uid)
(nameWidget userDisplayName userSurname) (nameWidget userDisplayName userSurname)
, sortable (Just "matriculation") (i18nCell MsgMatrikelNr) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM , sortable (Just "matriculation") (i18nCell MsgTableMatrikelNr) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM
(AdminUserR <$> encrypt uid) (AdminUserR <$> encrypt uid)
(toWgt userMatrikelnummer) (toWgt userMatrikelnummer)
-- , sortable (Just "last-name") (i18nCell MsgName) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM -- , sortable (Just "last-name") (i18nCell MsgName) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM
@ -192,8 +192,8 @@ postUsersR = do
] ]
, dbtFilterUI = \mPrev -> mconcat , dbtFilterUI = \mPrev -> mconcat
[ prismAForm (singletonFilter "user-search") mPrev $ aopt textField (fslI MsgName) [ prismAForm (singletonFilter "user-search") mPrev $ aopt textField (fslI MsgName)
-- , prismAForm (singletonFilter "matriculation" ) mPrev $ aopt textField (fslI MsgMatrikelNr) -- , prismAForm (singletonFilter "matriculation" ) mPrev $ aopt textField (fslI MsgTableMatrikelNr)
, prismAForm (singletonFilter "matriculation") mPrev $ aopt matriculationField (fslI MsgMatrikelNr) , prismAForm (singletonFilter "matriculation") mPrev $ aopt matriculationField (fslI MsgTableMatrikelNr)
, prismAForm (singletonFilter "auth-ldap" . maybePrism _PathPiece) mPrev $ aopt (lift `hoistField` selectFieldList [(MsgAuthPWHash "", False), (MsgAuthLDAP, True)]) (fslI MsgAuthModeSet) , prismAForm (singletonFilter "auth-ldap" . maybePrism _PathPiece) mPrev $ aopt (lift `hoistField` selectFieldList [(MsgAuthPWHash "", False), (MsgAuthLDAP, True)]) (fslI MsgAuthModeSet)
, prismAForm (singletonFilter "school") mPrev $ aopt (lift `hoistField` selectFieldList schoolOptions) (fslI MsgCourseSchool) , prismAForm (singletonFilter "school") mPrev $ aopt (lift `hoistField` selectFieldList schoolOptions) (fslI MsgCourseSchool)
, prismAForm (singletonFilter "ldap-sync" . maybePrism _PathPiece) mPrev $ aopt utcTimeField (fslI MsgLdapSyncedBefore) , prismAForm (singletonFilter "ldap-sync" . maybePrism _PathPiece) mPrev $ aopt utcTimeField (fslI MsgLdapSyncedBefore)

View File

@ -457,7 +457,7 @@ fltrUserNameUI' mPrev = prismAForm (singletonFilter "user-name") mPrev $ aopt te
colUserSex :: OpticColonnade (Maybe Sex) colUserSex :: OpticColonnade (Maybe Sex)
colUserSex resultSex = Colonnade.singleton (fromSortable header) body colUserSex resultSex = Colonnade.singleton (fromSortable header) body
where where
header = Sortable (Just "user-sex") (i18nCell MsgSex) header = Sortable (Just "user-sex") (i18nCell MsgTableSex)
body = views resultSex $ maybe mempty i18nCell body = views resultSex $ maybe mempty i18nCell
sortUserSex :: OpticSortColumn (Maybe Sex) sortUserSex :: OpticSortColumn (Maybe Sex)
@ -467,7 +467,7 @@ fltrUserSex :: OpticFilterColumn' t (Set Sex) (E.SqlExpr (E.Value (Maybe Sex)))
fltrUserSex querySex = singletonMap "user-sex" . FilterColumn $ mkExactFilterWith Just (view querySex) fltrUserSex querySex = singletonMap "user-sex" . FilterColumn $ mkExactFilterWith Just (view querySex)
fltrUserSexUI :: DBFilterUI fltrUserSexUI :: DBFilterUI
fltrUserSexUI mPrev = prismAForm (singletonFilter "user-sex" . maybePrism _PathPiece) mPrev $ aopt (hoistField liftHandler $ selectField optionsFinite :: Field _ Sex) (fslI MsgSex) fltrUserSexUI mPrev = prismAForm (singletonFilter "user-sex" . maybePrism _PathPiece) mPrev $ aopt (hoistField liftHandler $ selectField optionsFinite :: Field _ Sex) (fslI MsgTableSex)
colUserName :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c) colUserName :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c)
@ -570,7 +570,7 @@ fltrUserMatriculationUI mPrev = prismAForm (singletonFilter "user-matriculation"
colUserMatriclenr :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c) colUserMatriclenr :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c)
colUserMatriclenr = sortable (Just "user-matriclenumber") (i18nCell MsgMatrikelNr) cellHasMatrikelnummer colUserMatriclenr = sortable (Just "user-matriclenumber") (i18nCell MsgTableMatrikelNr) cellHasMatrikelnummer
sortUserMatriclenr :: IsString d => (t -> E.SqlExpr (Entity User)) -> (d, SortColumn t r') sortUserMatriclenr :: IsString d => (t -> E.SqlExpr (Entity User)) -> (d, SortColumn t r')
sortUserMatriclenr queryUser = ("user-matriclenumber", SortColumn $ queryUser >>> (E.^. UserMatrikelnummer)) sortUserMatriclenr queryUser = ("user-matriclenumber", SortColumn $ queryUser >>> (E.^. UserMatrikelnummer))
@ -584,7 +584,7 @@ fltrUserMatriclenr queryUser = ("user-matriclenumber", FilterColumn . mkContains
fltrUserMatriclenrUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text]) fltrUserMatriclenrUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
fltrUserMatriclenrUI mPrev = fltrUserMatriclenrUI mPrev =
prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgMatrikelNr) prismAForm (singletonFilter "user-matriclenumber") mPrev $ aopt textField (fslI MsgTableMatrikelNr)
---------------- ----------------

View File

@ -203,13 +203,13 @@ $# $if NTop (Just 0) < NTop (courseCapacity course)
$maybe mGroup <- submissionGroup $maybe mGroup <- submissionGroup
<dt .deflist__dt> <dt .deflist__dt>
_{MsgSubmissionGroup} _{MsgTableSubmissionGroup}
<dd .deflist__dd> <dd .deflist__dd>
$maybe groupName <- mGroup $maybe groupName <- mGroup
#{groupName} #{groupName}
$nothing $nothing
<i> <i>
_{MsgNoSubmissionGroup} _{MsgTableNoSubmissionGroup}
$if registrationOpen || isJust registration $if registrationOpen || isJust registration
<dt .deflist__dt> <dt .deflist__dt>

View File

@ -2,4 +2,4 @@ $newline never
<section> <section>
<h2>_{MsgCourseUserCorrections} <h2>_{MsgCourseUserCorrections}
^{cWdgt} ^{cWdgt}
^{gradeSummaryWidget MsgSubmissionGradingSummaryTitle statistics} ^{gradeSummaryWidget MsgCourseSubmissionGradingSummaryTitle statistics}

View File

@ -9,14 +9,14 @@ $newline never
<dd .deflist__dd>#{userSurname} <dd .deflist__dd>#{userSurname}
<dt .deflist__dt>_{MsgFirstName} <dt .deflist__dt>_{MsgFirstName}
<dd .deflist__dd>#{userFirstName} <dd .deflist__dd>#{userFirstName}
<dt .deflist__dt>_{MsgMatrikelNr} <dt .deflist__dt>_{MsgTableMatrikelNr}
<dd .deflist__dd> <dd .deflist__dd>
$maybe matnr <- userMatrikelnummer $maybe matnr <- userMatrikelnummer
#{matnr} #{matnr}
$nothing $nothing
_{MsgNoMatrikelKnown} _{MsgNoMatrikelKnown}
$maybe sex <- guardOn showSex =<< userSex $maybe sex <- guardOn showSex =<< userSex
<dt .deflist__dt>_{MsgSex} <dt .deflist__dt>_{MsgTableSex}
<dd .deflist__dd>_{sex} <dd .deflist__dd>_{sex}
<dt .deflist__dt>_{MsgTableEmail} <dt .deflist__dt>_{MsgTableEmail}
<dd .deflist__dd>#{mailtoHtml userEmail} <dd .deflist__dd>#{mailtoHtml userEmail}

View File

@ -15,7 +15,7 @@ $newline never
^{nameWidget userDisplayName userSurname} ^{nameWidget userDisplayName userSurname}
$maybe matnr <- userMatrikelnummer $maybe matnr <- userMatrikelnummer
<dt .deflist__dt> <dt .deflist__dt>
_{MsgMatrikelNr} _{MsgTableMatrikelNr}
<dd .deflist__dd> <dd .deflist__dd>
#{matnr} #{matnr}
<dt .deflist__dt> <dt .deflist__dt>