diff --git a/messages/uniworx/misc/de-de-formal.msg b/messages/uniworx/misc/de-de-formal.msg index 62ac5af4c..06f567b7c 100644 --- a/messages/uniworx/misc/de-de-formal.msg +++ b/messages/uniworx/misc/de-de-formal.msg @@ -39,6 +39,12 @@ BtnSystemMessageUnhide: Nicht mehr verstecken BtnCommunicationSend: Senden BtnCommunicationTest: Test-Nachricht verschicken +AcceptApplicationsDirect: Direkt anmelden +AcceptApplicationsInvite: Einladungen verschicken +AcceptApplicationsSecondaryRandom: Zufällig +AcceptApplicationsSecondaryTime: Nach Zeitpunkt der Bewerbung + + TableEmail: Email TableStudyTerm: Studiengang TableStudyFeatureAge: Fachsemester @@ -47,6 +53,9 @@ TableStudyFeatureType: TableStudyFeatureValid: Aktiv TableStudyFeatureUpdate: Abgeglichen TableHeadingFilter: Filter +TableTerm: Semester +TableCourseSchool: Institut +CourseLecturer: Dozent:in HeadingLegal: Rechtliche Informationen SubmissionNew: Abgabe anlegen @@ -86,10 +95,10 @@ FormFieldWorkflowDatasetTip: Mindestens ein gekennzeichnetes Feld pro Datensatz Aborted: Abgebrochen Remarks: Hinweise -Registered: Angemeldet + RegisteredSince: Angemeldet seit NotRegistered: Sie sind zu diesem Kurs nicht angemeldet. -Registration: Anmeldung + RegisterFrom: Anmeldungen von RegisterTo: Anmeldungen bis DeRegUntil: Abmeldungen bis @@ -103,8 +112,7 @@ CourseDirectRegistrationInterval: Direkte Anmeldung CourseDeregisterUntil time@Text: Abmeldung nur bis #{time} CourseNewsNew: Neue Kursnachricht CourseNewsEdit: Kursnachricht bearbeiten -CourseEventNew: Neuer Kurstermin -CourseEventEdit: Kurstermin bearbeiten + GenericKey: Schlüssel GenericShort: Kürzel @@ -154,7 +162,7 @@ SchoolHeading school@SchoolName: Übersicht #{school} LectureStart: Beginn Vorlesungen Course: Kurs -CourseShort: Kürzel + CourseCapacity: Kapazität CourseCapacityTip: Anzahl erlaubter Kursanmeldungen, leer lassen für unbeschränkte Kurskapazität CourseNoCapacity: In diesem Kurs sind keine Plätze mehr frei. @@ -165,7 +173,7 @@ 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 -CourseRegisterOpen: Anmeldung möglich + CourseRegisterOk: Erfolgreich zum Kurs angemeldet CourseDeregisterOk: Erfolgreich vom Kurs abgemeldet CourseApply: Zum Kurs bewerben @@ -198,14 +206,14 @@ CourseMembersCount n@Int: #{n} CourseMembersCountLimited n@Int max@Int: #{n}/#{max} CourseMembersCountOf n@Int mbNum@(Maybe Int): #{n} Kursanmeldungen #{maybeToMessage " von " mbNum " möglichen"} CourseName: Kurstitel -CourseDescription: Beschreibung + CourseHomepageExternal: Externe Homepage CourseShorthand: Kürzel CourseShorthandUnique: Muss nur innerhalb Institut und Semester eindeutig sein. Wird verbatim in die Url der Kursseite übernommen. CourseSemesterMultipleTip: Es stehen für Sie aktuell mehrere Semester zur Auswahl. Stellen Sie bitte sicher, dass Sie das für den Kurs korrekte Semester wählen. CourseSemester: Semester CourseSchool: Institut -CourseSchoolShort: Institut + CourseSchoolMultipleTip: Es stehen für Sie mehrere Institute zur Auswahl. Stellen Sie bitte sicher, dass Sie das für den Kurs korrekte Institut wählen. CourseSecretTip: Anmeldung zum Kurs erfordert Eingabe des Passworts, sofern gesetzt CourseSecretFormat: beliebige Zeichenkette @@ -214,8 +222,7 @@ CourseVisibleToTip: Der Kurs ist ab "Sichtbar ab" bis zu diesem Zeitpunkt für a CourseRegisterFromTip: Ohne Datum ist keine eigenständige Anmeldung von Studierenden erlaubt. CourseRegisterToTip: Darf auch unbegrenzt offen bleiben CourseDeregisterUntilTip: Abmeldung ist ab "Anmeldungen von" bis zu diesem Zeitpunkt erlaubt. Die Abmeldung darf auch unbegrenzt erlaubt bleiben. -CourseFilterSearch: Volltext-Suche -CourseFilterRegistered: Registriert + CourseFilterNone: — BoolIrrelevant: — CourseDeleteQuestion: Wollen Sie den unten aufgeführten Kurs wirklich löschen? @@ -270,7 +277,7 @@ CourseApplicationTemplateApplication: Bewerbungsvorlage(n) CourseApplicationTemplateRegistration: Anmeldungsvorlage(n) CourseApplicationTemplateArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-bewerbungsvorlagen CourseApplication: Bewerbung -CourseApplicationIsParticipant: Kursteilnehmer + CourseApplicationInstructionsRecommended: Studierende können bei ihrer Anmeldung/Bewerbung nach aktuellen Einstellungen Texte bzw. Dateien abgeben. Es wurden jedoch keine Anweisungen zur Bewerbung oder Vorlage-Dateien hinterlegt. Sie sollten entweder keine Texte bzw. Dateien verlangen oder über Anweisungen bzw. Vorlagen klarstellen, was Sie von den Studierenden erwarten. @@ -283,7 +290,7 @@ CourseApplicationRated: Bewertung erfolgreich angepasst CourseApplicationRatingDeleted: Bewertung erfolgreich entfernt CourseApplicationDeleted csh@CourseShorthand: Bewerbung zu #{csh} erfolgreich zurückgezogen -CourseApplicationTitle displayName@Text csh@CourseShorthand: Bewerbung für #{csh}: #{displayName} + CourseApplicationText: Text-Bewerbung CourseApplicationFollowInstructions: Beachten Sie die Anweisungen zur Bewerbung! @@ -308,10 +315,9 @@ CourseDeregistrationNoReRegistration: Wenn Sie sich jetzt vom Kurs abmelden, kö CourseLoginToApply: Um sich zum Kurz zu bewerben müssen Sie sich zunächst in Uni2work anmelden CourseLoginToRegister: Um sich zum Kurs anzumelden müssen Sie zunächst in Uni2work anmelden -CourseApplicationArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand appId@CryptoFileNameCourseApplication displayName@Text: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldCase (toPathPiece appId)}-#{foldCase displayName} CourseAllApplicationsArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-bewerbungen -CourseApplicationsAllocatedDirectory: zentral -CourseApplicationsNotAllocatedDirectory: direkt + + CourseNoAllocationsAvailable: Es sind aktuell keine Zentralanmeldungen verfügbar AllocationStaffRegisterToExpiredAllocation: Die Frist zur Eintrageng von Kursen in die Zentralanmeldung ist verstrichen. Die Teilnahme darf nicht mehr verändert werden. @@ -324,7 +330,7 @@ CourseFormSectionAdministration: Verwaltung CourseLecturers: Kursverwalter CourseLecturerEmail: E-Mail -CourseLecturer: Dozent + CourseAssistant: Assistent CourseLecturerAlreadyAdded: Dieser Nutzer ist bereits als Kursverwalter eingetragen CourseVisibilityEndMustBeAfterStart: Ende des Sichtbarkeitszeitraums muss nach dem Anfang liegen @@ -1862,7 +1868,6 @@ ProportionNoRatio c@Text of'@Text: #{c}/#{of'} CourseUserCsvName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-teilnehmer ExamUserCsvName tid@TermId ssh@SchoolId csh@CourseShorthand examn@ExamName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase examn}-teilnehmer ExternalExamUserCsvName tid@TermId ssh@SchoolId coursen@CourseName examn@ExamName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase coursen}-#{foldedCase examn}-teilnehmer -CourseApplicationsTableCsvName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-bewerbungen ParticipantsCsvName tid@TermId ssh@SchoolId: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-kursteilnehmer CourseUserCsvIncludeSheets: Übungsblätter @@ -1903,24 +1908,9 @@ CsvColumnUserSubmissionGroup: Registrierte Abgabegruppe CsvColumnExamOfficeExamUserOccurrenceStart: Prüfungstermin (ISO 8601) -CsvColumnApplicationsAllocation: Zentralanmeldung über die die Bewerbung eingegangen ist -CsvColumnApplicationsApplication: Eindeutige Nummer der Bewerbung (zur Zuordnung im ZIP-Archiv aller Bewerbungsdateien) -CsvColumnApplicationsName: Voller Name des Bewerbers -CsvColumnApplicationsMatriculation: Matrikelnummer des Bewerbers -CsvColumnApplicationsEmail: E-Mail-Adresse des Bewerbers -CsvColumnApplicationsField: Studienfach, mit dem der Bewerber seine Bewerbung assoziiert hat -CsvColumnApplicationsDegree: Abschluss, den der Bewerber im assoziierten Studienfach anstrebt -CsvColumnApplicationsSemester: Fachsemester des Bewerbes im assoziierten Studienfach -CsvColumnApplicationsText: Text-Bewerbung -CsvColumnApplicationsHasFiles: Hat der Bewerber Dateien zu seiner Bewerbung eingereicht (siehe ZIP-Archiv aller Bewerbungsdateien)? -CsvColumnApplicationsVeto: Bewerber mit Veto werden garantiert nicht dem Kurs zugeteilt; "veto" oder leer -CsvColumnApplicationsRating: Bewertung der Bewerbung; "1.0", "1.3", "1.7", ..., "4.0", "5.0" (Leer wird behandelt wie eine Note zwischen 2.3 und 2.7) -CsvColumnApplicationsComment: Kommentar zur Bewerbung; je nach Kurs-Einstellungen entweder nur als Notiz für die Kursverwalter oder Feedback für den Bewerber -ApplicationGeneratedColumns: Stammdaten -ApplicationGeneratedColumnsTip: Stammdaten eines Bewerbers sind Daten, welche dem System zu diesem Benutzer bekannt sind und welche der Benutzer im Zuge der Bewerbung nicht beeinflussen kann. -ApplicationUserColumns: Bewerbung -ApplicationRatingColumns: Bewertung + + Action: Aktion ActionNoUsersSelected: Keine Benutzer ausgewählt @@ -2098,13 +2088,10 @@ AllocationRegisterTo: Anmeldungen bis AllocationListTitle: Zentralanmeldungen -CourseApplicationsListTitle: Bewerbungen + CourseApplicationId: Bewerbungsnummer CourseApplicationRatingPoints: Bewertung -CourseApplicationVeto: Veto -CourseApplicationNoVeto: Kein Veto -CourseApplicationNoRatingPoints: Keine Bewertung -CourseApplicationNoRatingComment: Kein Kommentar + UserMatriculation: Matrikelnummer @@ -2258,14 +2245,6 @@ 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. -AcceptApplicationsMode: Bewerbungen akzeptieren -AcceptApplicationsModeTip: Sollen akzeptierte Bewerber direkt als Teilnehmer im Kurs eingetragen werden oder sollen Einladungen per E-Mail verschickt werden? -AcceptApplicationsDirect: Direkt anmelden -AcceptApplicationsInvite: Einladungen verschicken -AcceptApplicationsSecondary: Gleichstände auflösen -AcceptApplicationsSecondaryTip: Wenn es im Laufe des Verfahrens mehrere Bewerber mit der selben Bewertung für den selben Platz gibt, wie soll der Gleichstand aufgelöst werden? -AcceptApplicationsSecondaryRandom: Zufällig -AcceptApplicationsSecondaryTime: Nach Zeitpunkt der Bewerbung CourseNews: Aktuelles @@ -2332,24 +2311,7 @@ FavouriteCurrent: Aktueller Kurs FavouritesUnavailableTip: Das Schnellzugriffsmenü für diesen Kurs ist aktuell nicht verfügbar. -CourseEvents: Termine -CourseEventType: Art -CourseEventTypePlaceholder: Vorlesung, Zentralübung, ... -CourseEventTime: Zeit -CourseEventRoom: Regulärer Raum -CourseEventRoomHidden: Raum nur für Teilnehmer -CourseEventRoomHiddenTip: Soll der Raum nur angemeldeten Kursteilnehmern angezeigt werden? -CourseEventRoomIsUnset: — -CourseEventRoomIsHidden: Raum wird nur Kurs-assoziierten Personen (Teilnehmer, Tutoren, Korrektoren, etc.) angezeigt -CourseEventNote: Notiz -CourseEventActions: Aktionen -CourseEventsActionEdit: Bearbeiten -CourseEventsActionDelete: Löschen -CourseEventsActionCreate: Neuer Termin -CourseEventCreated: Kurstermin erfolgreich angelegt -CourseEventEdited: Kurstermin erfolgreich editiert -CourseEventDeleteQuestion: Wollen Sie den unten aufgeführten Termin wirklich löschen? -CourseEventDeleted: Kurstermin erfolgreich gelöscht + 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. diff --git a/messages/uniworx/misc/en-eu.msg b/messages/uniworx/misc/en-eu.msg index 99aba688b..140b1a015 100644 --- a/messages/uniworx/misc/en-eu.msg +++ b/messages/uniworx/misc/en-eu.msg @@ -39,6 +39,12 @@ BtnSystemMessageUnhide: Unhide BtnCommunicationSend: Send BtnCommunicationTest: Send test message +AcceptApplicationsDirect: Enroll directly +AcceptApplicationsInvite: Send invitations +AcceptApplicationsSecondaryRandom: Randomly +AcceptApplicationsSecondaryTime: By time of application + + TableEmail: Email TableStudyFeatureType: TableStudyFeatureValid: Valid @@ -47,6 +53,9 @@ TableStudyFeatureAge: Semester TableStudyFeatureDegree: Degree TableStudyTerm: Field of study TableHeadingFilter: Filter +TableTerm: Semester +TableCourseSchool: Department +CourseLecturer: Lecturer HeadingLegal: Legal SubmissionNew: Create submission @@ -86,10 +95,10 @@ FormFieldWorkflowDatasetTip: At least one of the marked fields must be filled Aborted: Aborted Remarks: Remarks -Registered: Enrolled + RegisteredSince: Enrolled since NotRegistered: Note enrolled for this course -Registration: Enrolment + RegisterFrom: Enrolment starts RegisterTo: Enrolment ends DeRegUntil: Deregistration until @@ -102,9 +111,8 @@ CourseRegistrationInterval: Enrolment CourseDirectRegistrationInterval: Direct enrolment CourseDeregisterUntil time: Deregistration only until #{time} CourseNewsNew: Add course news -CourseEventNew: New course occurrence + CourseNewsEdit: Edit item of course news -CourseEventEdit: Edit course occurrence GenericKey: Key GenericShort: Shorthand @@ -154,7 +162,7 @@ SchoolHeading school: #{school} LectureStart: Lectures start Course: Course -CourseShort: Shorthand + CourseCapacity: Capacity CourseCapacityTip: Maximum permissable number of enrolments for this course; leave empty for unlimited capacity CourseNoCapacity: Course has reached maximum capacity @@ -165,7 +173,7 @@ 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 -CourseRegisterOpen: Enrolment is allowed + CourseRegisterOk: Successfully enrolled for course CourseDeregisterOk: Successfully left course CourseApply: Apply for course @@ -199,14 +207,14 @@ CourseMembersCount n: #{n} CourseMembersCountLimited n max: #{n}/#{max} CourseMembersCountOf n mbNum: #{n} #{maybeToMessage "of " mbNum " "}participants CourseName: Title -CourseDescription: Description + CourseHomepageExternal: External homepage CourseShorthand: Shorthand CourseShorthandUnique: Needs to be unique within school and semester. Will be used verbatim within the url of the course page. CourseSemesterMultipleTip: You are currently allowed to select from among multiple semesters. Please ensure that you select the appropriate semester for your course. CourseSemester: Semester CourseSchool: Department -CourseSchoolShort: Department + CourseSchoolMultipleTip: You may select from among multiple departments. Please ensure that you select the appropriate department for your course. CourseSecretTip: Enrollment for this course will require the password, if set CourseSecretFormat: Arbitrary string @@ -215,8 +223,7 @@ CourseVisibleToTip: Other users will be able to see the course from "Visible Fro CourseRegisterFromTip: When left empty students will not be able to enrol themselves CourseRegisterToTip: May be left empty to allow enrolment indefinitely CourseDeregisterUntilTip: Participants may deregister from immediately after registration starts up to this time. May be left empty to allow deregistration indefinitely. -CourseFilterSearch: Text search -CourseFilterRegistered: Registered + CourseFilterNone: — BoolIrrelevant: — CourseDeleteQuestion: Are you sure you want to delete the below-mentioned course? @@ -271,7 +278,7 @@ CourseApplicationTemplateApplication: Application template(s) CourseApplicationTemplateRegistration: Registration template(s) CourseApplicationTemplateArchiveName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-application-templates CourseApplication: Application -CourseApplicationIsParticipant: Course participant + CourseApplicationInstructionsRecommended: Students can, as per the current course settings, submit files and/or texts with their applications/registrations. There are, however, no instructions for application or template files. You should either not require files/texts or clarify through instructions or templates what is expected of the students. @@ -284,7 +291,7 @@ CourseApplicationRated: Successfully edited rating CourseApplicationRatingDeleted: Successfully deleted rating CourseApplicationDeleted csh: Successfully withdrew application for #{csh} -CourseApplicationTitle displayName csh: Application for #{csh}: #{displayName} + CourseApplicationText: Application text CourseApplicationFollowInstructions: Please follow the instructions for applications! @@ -309,10 +316,9 @@ CourseDeregistrationNoReRegistration: If you deregister from the course now, you CourseLoginToApply: You need to login to Uni2work before you can apply for this course. CourseLoginToRegister: Your need to login to Uni2work before you can register for this course. -CourseApplicationArchiveName tid ssh csh appId displayName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldCase (toPathPiece appId)}-#{foldCase displayName} CourseAllApplicationsArchiveName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-applications -CourseApplicationsAllocatedDirectory: central -CourseApplicationsNotAllocatedDirectory: direct + + CourseNoAllocationsAvailable: There are no ongoing central allocations AllocationStaffRegisterToExpiredAllocation: The course registration period for the central allocation is over. Participation may not be changed. @@ -323,7 +329,7 @@ CourseFormSectionAdministration: Administration CourseLecturers: Course administrators CourseLecturerEmail: Email -CourseLecturer: Lecturer + CourseAssistant: Assistant CourseLecturerAlreadyAdded: This user is already configured as a course administrator CourseVisibilityEndMustBeAfterStart: The end of the visibility period must be after its start @@ -1856,7 +1862,6 @@ ProportionNoRatio c of': #{c}/#{of'} CourseUserCsvName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-participants ExamUserCsvName tid ssh csh examn: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase examn}-participants ExternalExamUserCsvName tid@TermId ssh@SchoolId coursen@CourseName examn@ExamName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase coursen}-#{foldedCase examn}-participants -CourseApplicationsTableCsvName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-applications ParticipantsCsvName tid ssh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-participants CourseUserCsvIncludeSheets: Exercise sheets @@ -1897,24 +1902,9 @@ CsvColumnUserSubmissionGroup: Registered submission group CsvColumnExamOfficeExamUserOccurrenceStart: Exam occurrence (ISO 8601) -CsvColumnApplicationsAllocation: Central allocation for which this application was made -CsvColumnApplicationsApplication: Globally unique number of application (for matching with the ZIP archive of all application files) -CsvColumnApplicationsName: Participant's full name -CsvColumnApplicationsMatriculation: Participant's matriculation -CsvColumnApplicationsEmail: Participant's email address -CsvColumnApplicationsField: Field of study the participant specified when applying -CsvColumnApplicationsDegree: Degree the participant pursues in their associated field of study -CsvColumnApplicationsSemester: Semester the participant is in wrt. to their associated field of study -CsvColumnApplicationsText: Application text -CsvColumnApplicationsHasFiles: Did the applicant provide any additional files with their application (see ZIP archive of all application files)? -CsvColumnApplicationsVeto: Vetoed applicants are never assigned to the course; "veto" or empty -CsvColumnApplicationsRating: Application grading; Any number grade ("1.0", "1.3", "1.7", ..., "4.0", "5.0"); Empty cells will be treated as if they contained a grade between 2.3 and 2.7 -CsvColumnApplicationsComment: Application comment; depending on course settings this might purely be a note for course administrators or be feedback for the applicant -ApplicationGeneratedColumns: Master data -ApplicationGeneratedColumnsTip: An applicant's master data is data which is known to the system about this user and which the user cannot modify when applying for the course. -ApplicationUserColumns: Application -ApplicationRatingColumns: Rating + + Action: Action ActionNoUsersSelected: No users selected @@ -2093,13 +2083,9 @@ AllocationRegisterTo: Registration until AllocationListTitle: Central allocations -CourseApplicationsListTitle: Applications + CourseApplicationId: Application number CourseApplicationRatingPoints: Grading -CourseApplicationVeto: Veto -CourseApplicationNoVeto: No veto -CourseApplicationNoRatingPoints: No grading -CourseApplicationNoRatingComment: No comment UserMatriculation: Matriculation @@ -2253,15 +2239,6 @@ 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. -AcceptApplicationsMode: Accept applications -AcceptApplicationsModeTip: Should accepted applications be enrolled in the course directly or should invitations be sent via email? -AcceptApplicationsDirect: Enroll directly -AcceptApplicationsInvite: Send invitations -AcceptApplicationsSecondary: Breaking ties -AcceptApplicationsSecondaryTip: If a tie occurs during the acceptance process, how should it be broken? -AcceptApplicationsSecondaryRandom: Randomly -AcceptApplicationsSecondaryTime: By time of application - CourseNews: News @@ -2328,24 +2305,7 @@ FavouriteCurrent: Current course FavouritesUnavailableTip: Quick Actions for this course are currently not available. -CourseEvents: Occurrences -CourseEventType: Type -CourseEventTypePlaceholder: Lecture, Exercise discussion, ... -CourseEventTime: Time -CourseEventRoom: Regular room -CourseEventRoomHidden: Room only for participants -CourseEventRoomHiddenTip: Should the room only be displayde to course participants? -CourseEventRoomIsUnset: — -CourseEventRoomIsHidden: Room is only displayed to course associated persons (participants, tutor, correctors, etc.) -CourseEventNote: Note -CourseEventActions: Actions -CourseEventsActionEdit: Edit -CourseEventsActionDelete: Delete -CourseEventsActionCreate: New occurrence -CourseEventCreated: Successfully created course occurrence -CourseEventEdited: Successfully edited course occurrence -CourseEventDeleteQuestion: Are you sure you want to delete the course occurrence mentioned below? -CourseEventDeleted: Successfully deleted course occurrence + 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. diff --git a/messages/uniworx/uniworx_new/courses/application/de-de-formal.msg b/messages/uniworx/uniworx_new/courses/application/de-de-formal.msg new file mode 100644 index 000000000..c93927d32 --- /dev/null +++ b/messages/uniworx/uniworx_new/courses/application/de-de-formal.msg @@ -0,0 +1,30 @@ +CourseApplicationTitle displayName@Text csh@CourseShorthand: Bewerbung für #{csh}: #{displayName} +CourseApplicationArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand appId@CryptoFileNameCourseApplication displayName@Text: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldCase (toPathPiece appId)}-#{foldCase displayName} +CourseApplicationsAllocatedDirectory: zentral +CourseApplicationsNotAllocatedDirectory: direkt +CsvColumnApplicationsAllocation: Zentralanmeldung über die die Bewerbung eingegangen ist +CsvColumnApplicationsApplication: Eindeutige Nummer der Bewerbung (zur Zuordnung im ZIP-Archiv aller Bewerbungsdateien) +CsvColumnApplicationsName: Voller Name des Bewerbers +CsvColumnApplicationsMatriculation: Matrikelnummer des Bewerbers +CsvColumnApplicationsEmail: E-Mail-Adresse des Bewerbers +CsvColumnApplicationsText: Text-Bewerbung +CsvColumnApplicationsHasFiles: Hat der Bewerber Dateien zu seiner Bewerbung eingereicht (siehe ZIP-Archiv aller Bewerbungsdateien)? +CsvColumnApplicationsVeto: Bewerber mit Veto werden garantiert nicht dem Kurs zugeteilt; "veto" oder leer +CsvColumnApplicationsRating: Bewertung der Bewerbung; "1.0", "1.3", "1.7", ..., "4.0", "5.0" (Leer wird behandelt wie eine Note zwischen 2.3 und 2.7) +CsvColumnApplicationsComment: Kommentar zur Bewerbung; je nach Kurs-Einstellungen entweder nur als Notiz für die Kursverwalter oder Feedback für den Bewerber +CourseApplicationsTableCsvName tid@TermId ssh@SchoolId csh@CourseShorthand: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-bewerbungen +CourseApplicationIsParticipant: Kursteilnehmer +ApplicationUserColumns: Bewerbung +ApplicationRatingColumns: Bewertung +ApplicationGeneratedColumns: Stammdaten +ApplicationGeneratedColumnsTip: Stammdaten eines Bewerbers sind Daten, welche dem System zu diesem Benutzer bekannt sind und welche der Benutzer im Zuge der Bewerbung nicht beeinflussen kann. +CourseApplicationVeto: Veto +CourseApplicationNoVeto: Kein Veto +CourseApplicationNoRatingPoints: Keine Bewertung +CourseApplicationNoRatingComment: Kein Kommentar +CourseApplicationsListTitle: Bewerbungen +AcceptApplicationsMode: Bewerbungen akzeptieren +AcceptApplicationsModeTip: Sollen akzeptierte Bewerber direkt als Teilnehmer im Kurs eingetragen werden oder sollen Einladungen per E-Mail verschickt werden? +AcceptApplicationsSecondary: Gleichstände auflösen +AcceptApplicationsSecondaryTip: Wenn es im Laufe des Verfahrens mehrere Bewerber mit der selben Bewertung für den selben Platz gibt, wie soll der Gleichstand aufgelöst werden? +CsvColumnUserAppStudyFeatures: Alle relevanten Studiendaten des Teilnehmers als Semikolon (;) separierte Liste diff --git a/messages/uniworx/uniworx_new/courses/application/en-eu.msg b/messages/uniworx/uniworx_new/courses/application/en-eu.msg new file mode 100644 index 000000000..275b13669 --- /dev/null +++ b/messages/uniworx/uniworx_new/courses/application/en-eu.msg @@ -0,0 +1,30 @@ +CourseApplicationTitle displayName csh: Application for #{csh}: #{displayName} +CourseApplicationArchiveName tid ssh csh appId displayName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldCase (toPathPiece appId)}-#{foldCase displayName} +CourseApplicationsAllocatedDirectory: central +CourseApplicationsNotAllocatedDirectory: direct +CsvColumnApplicationsAllocation: Central allocation for which this application was made +CsvColumnApplicationsApplication: Globally unique number of application (for matching with the ZIP archive of all application files) +CsvColumnApplicationsName: Participant's full name +CsvColumnApplicationsMatriculation: Participant's matriculation +CsvColumnApplicationsEmail: Participant's email address +CsvColumnApplicationsText: Application text +CsvColumnApplicationsHasFiles: Did the applicant provide any additional files with their application (see ZIP archive of all application files)? +CsvColumnApplicationsVeto: Vetoed applicants are never assigned to the course; "veto" or empty +CsvColumnApplicationsRating: Application grading; Any number grade ("1.0", "1.3", "1.7", ..., "4.0", "5.0"); Empty cells will be treated as if they contained a grade between 2.3 and 2.7 +CsvColumnApplicationsComment: Application comment; depending on course settings this might purely be a note for course administrators or be feedback for the applicant +CourseApplicationsTableCsvName tid ssh csh: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-applications +CourseApplicationIsParticipant: Course participant +ApplicationUserColumns: Application +ApplicationRatingColumns: Rating +ApplicationGeneratedColumns: Master data +ApplicationGeneratedColumnsTip: An applicant's master data is data which is known to the system about this user and which the user cannot modify when applying for the course. +CourseApplicationVeto: Veto +CourseApplicationNoVeto: No veto +CourseApplicationNoRatingPoints: No grading +CourseApplicationNoRatingComment: No comment +CourseApplicationsListTitle: Applications +AcceptApplicationsMode: Accept applications +AcceptApplicationsModeTip: Should accepted applications be enrolled in the course directly or should invitations be sent via email? +AcceptApplicationsSecondary: Breaking ties +AcceptApplicationsSecondaryTip: If a tie occurs during the acceptance process, how should it be broken? +CsvColumnUserAppStudyFeatures: All relevant features of study for the participant, separated by semicolon (;) diff --git a/messages/uniworx/uniworx_new/courses/de-de-formal.msg b/messages/uniworx/uniworx_new/courses/de-de-formal.msg index 71f514117..7a191cf48 100644 --- a/messages/uniworx/uniworx_new/courses/de-de-formal.msg +++ b/messages/uniworx/uniworx_new/courses/de-de-formal.msg @@ -1 +1,12 @@ CourseListTitle: Alle Kurse +FilterCourse: Kurs +FilterCourseShort: Kürzel +FilterTerm: Semester +FilterCourseSchoolShort: Institut +FilterRegistered: Angemeldet +FilterCourseSearch: Volltext-Suche +FilterCourseRegistered: Registriert +FilterCourseRegisterOpen: Anmeldung möglich +Registered: Angemeldet +Registration: Anmeldung +CourseDescription: Beschreibung \ No newline at end of file diff --git a/messages/uniworx/uniworx_new/courses/en-eu.msg b/messages/uniworx/uniworx_new/courses/en-eu.msg index 8a7999378..e9ac1277c 100644 --- a/messages/uniworx/uniworx_new/courses/en-eu.msg +++ b/messages/uniworx/uniworx_new/courses/en-eu.msg @@ -1 +1,12 @@ CourseListTitle: All courses +FilterCourse: Course +FilterCourseShort: Shorthand +FilterTerm: Semester +FilterCourseSchoolShort: Department +FilterRegistered: Enrolled +FilterCourseSearch: Text search +FilterCourseRegistered: Registered +FilterCourseRegisterOpen: Enrolment is allowed +Registered: Enrolled +Registration: Enrolment +CourseDescription: Description \ No newline at end of file diff --git a/messages/uniworx/uniworx_new/courses/event/de-de-formal.msg b/messages/uniworx/uniworx_new/courses/event/de-de-formal.msg new file mode 100644 index 000000000..13ab16bdd --- /dev/null +++ b/messages/uniworx/uniworx_new/courses/event/de-de-formal.msg @@ -0,0 +1,20 @@ +CourseEvents: Termine +CourseEventType: Art +CourseEventTypePlaceholder: Vorlesung, Zentralübung, ... +CourseEventTime: Zeit +CourseEventRoom: Regulärer Raum +CourseEventRoomHidden: Raum nur für Teilnehmer +CourseEventRoomHiddenTip: Soll der Raum nur angemeldeten Kursteilnehmern angezeigt werden? +CourseEventRoomIsUnset: — +CourseEventRoomIsHidden: Raum wird nur Kurs-assoziierten Personen (Teilnehmer, Tutoren, Korrektoren, etc.) angezeigt +CourseEventNote: Notiz +CourseEventActions: Aktionen +CourseEventsActionEdit: Bearbeiten +CourseEventsActionDelete: Löschen +CourseEventsActionCreate: Neuer Termin +CourseEventCreated: Kurstermin erfolgreich angelegt +CourseEventEdited: Kurstermin erfolgreich editiert +CourseEventDeleteQuestion: Wollen Sie den unten aufgeführten Termin wirklich löschen? +CourseEventDeleted: Kurstermin erfolgreich gelöscht +CourseEventNew: Neuer Kurstermin +CourseEventEdit: Kurstermin bearbeiten \ No newline at end of file diff --git a/messages/uniworx/uniworx_new/courses/event/en-eu.msg b/messages/uniworx/uniworx_new/courses/event/en-eu.msg new file mode 100644 index 000000000..3906c0355 --- /dev/null +++ b/messages/uniworx/uniworx_new/courses/event/en-eu.msg @@ -0,0 +1,20 @@ +CourseEvents: Occurrences +CourseEventType: Type +CourseEventTypePlaceholder: Lecture, Exercise discussion, ... +CourseEventTime: Time +CourseEventRoom: Regular room +CourseEventRoomHidden: Room only for participants +CourseEventRoomHiddenTip: Should the room only be displayde to course participants? +CourseEventRoomIsUnset: — +CourseEventRoomIsHidden: Room is only displayed to course associated persons (participants, tutor, correctors, etc.) +CourseEventNote: Note +CourseEventActions: Actions +CourseEventsActionEdit: Edit +CourseEventsActionDelete: Delete +CourseEventsActionCreate: New occurrence +CourseEventCreated: Successfully created course occurrence +CourseEventEdited: Successfully edited course occurrence +CourseEventDeleteQuestion: Are you sure you want to delete the course occurrence mentioned below? +CourseEventDeleted: Successfully deleted course occurrence +CourseEventEdit: Edit course occurrence +CourseEventNew: New course occurrence \ No newline at end of file diff --git a/src/Handler/Course/Application/List.hs b/src/Handler/Course/Application/List.hs index d942999e5..21ef97ee0 100644 --- a/src/Handler/Course/Application/List.hs +++ b/src/Handler/Course/Application/List.hs @@ -147,7 +147,7 @@ instance CsvColumnsExplained CourseApplicationsTableCsv where , ('csvCAName , MsgCsvColumnApplicationsName ) , ('csvCAEmail , MsgCsvColumnApplicationsEmail ) , ('csvCAMatriculation, MsgCsvColumnApplicationsMatriculation) - , ('csvCAStudyFeatures, MsgCsvColumnUserStudyFeatures ) + , ('csvCAStudyFeatures, MsgCsvColumnUserAppStudyFeatures ) , ('csvCAText , MsgCsvColumnApplicationsText ) , ('csvCAHasFiles , MsgCsvColumnApplicationsHasFiles ) , ('csvCAVeto , MsgCsvColumnApplicationsVeto ) diff --git a/src/Handler/Course/List.hs b/src/Handler/Course/List.hs index 92a96ffa5..11d119f40 100644 --- a/src/Handler/Course/List.hs +++ b/src/Handler/Course/List.hs @@ -26,7 +26,7 @@ import qualified Database.Esqueleto.Utils as E type CourseTableData = DBRow (Entity Course, Int, Bool, Entity School, [Entity User], Maybe (Entity Allocation), Bool) colCourse :: IsDBTable m a => Colonnade Sortable CourseTableData (DBCell m a) -colCourse = sortable (Just "course") (i18nCell MsgCourse) +colCourse = sortable (Just "course") (i18nCell MsgFilterCourse) $ \DBRow{ dbrOutput=(Entity _ Course{..}, _, _, _, _, _, _) } -> anchorCell (CourseR courseTerm courseSchool courseShorthand CShowR) [whamlet|_{courseName}|] @@ -39,22 +39,22 @@ colDescription = sortable Nothing mempty (Just descr) -> cell $ modal (toWidget $ hasComment True) (Right $ toWidget descr) colCShort :: IsDBTable m a => Colonnade Sortable CourseTableData (DBCell m a) -colCShort = sortable (Just "cshort") (i18nCell MsgCourseShort) +colCShort = sortable (Just "cshort") (i18nCell MsgFilterCourseShort) $ \DBRow{ dbrOutput=(Entity _ Course{..}, _, _, _, _, _, _) } -> anchorCell (CourseR courseTerm courseSchool courseShorthand CShowR) [whamlet|_{courseShorthand}|] colTerm :: IsDBTable m a => Colonnade Sortable CourseTableData (DBCell m a) -colTerm = sortable (Just "term") (i18nCell MsgTerm) +colTerm = sortable (Just "term") (i18nCell MsgFilterTerm) $ \DBRow{ dbrOutput=(Entity _ Course{..}, _, _, _, _, _, _) } -> anchorCell (TermCourseListR courseTerm) [whamlet|#{courseTerm}|] colSchoolShort :: IsDBTable m a => Colonnade Sortable CourseTableData (DBCell m a) -colSchoolShort = sortable (Just "schoolshort") (i18nCell MsgCourseSchoolShort) +colSchoolShort = sortable (Just "schoolshort") (i18nCell MsgFilterCourseSchoolShort) $ \DBRow{ dbrOutput=(Entity _ Course{..}, _, _, Entity _ School{..}, _, _, _) } -> anchorCell (TermSchoolCourseListR courseTerm courseSchool) [whamlet|_{schoolShorthand}|] colRegistered :: IsDBTable m a => Colonnade Sortable CourseTableData (DBCell m a) -colRegistered = sortable (Just "registered") (i18nCell MsgRegistered) +colRegistered = sortable (Just "registered") (i18nCell MsgFilterRegistered) $ \DBRow{ dbrOutput=(_, _, registered, _, _, _, _) } -> tickmarkCell registered type CourseTableExpr = E.SqlExpr (Entity Course) `E.InnerJoin` E.SqlExpr (Entity School) @@ -176,12 +176,12 @@ makeCourseTable whereClause colChoices psValidator = do ) ] , dbtFilterUI = \mPrev -> mconcat $ catMaybes - [ Just $ prismAForm (singletonFilter "term" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift termField) (fslI MsgTerm) - , Just $ prismAForm (singletonFilter "schoolshort" . maybePrism (_PathPiece . from _SchoolId)) mPrev $ aopt (hoistField lift schoolField) (fslI MsgCourseSchool) + [ Just $ prismAForm (singletonFilter "term" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift termField) (fslI MsgTableTerm) + , Just $ prismAForm (singletonFilter "schoolshort" . maybePrism (_PathPiece . from _SchoolId)) mPrev $ aopt (hoistField lift schoolField) (fslI MsgTableCourseSchool) , Just $ prismAForm (singletonFilter "lecturer") mPrev $ aopt textField (fslI MsgCourseLecturer) - , Just $ prismAForm (singletonFilter "search") mPrev $ aopt textField (fslI MsgCourseFilterSearch) - , Just $ prismAForm (singletonFilter "openregistration" . maybePrism _PathPiece) mPrev $ fmap (\x -> if isJust x && not (fromJust x) then Nothing else x) . aopt checkBoxField (fslI MsgCourseRegisterOpen) - , muid $> prismAForm (singletonFilter "registered" . maybePrism _PathPiece) mPrev (aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgCourseFilterRegistered)) + , Just $ prismAForm (singletonFilter "search") mPrev $ aopt textField (fslI MsgFilterCourseSearch) + , Just $ prismAForm (singletonFilter "openregistration" . maybePrism _PathPiece) mPrev $ fmap (\x -> if isJust x && not (fromJust x) then Nothing else x) . aopt checkBoxField (fslI MsgFilterCourseRegisterOpen) + , muid $> prismAForm (singletonFilter "registered" . maybePrism _PathPiece) mPrev (aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgFilterCourseRegistered)) ] , dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout diff --git a/src/Handler/ExternalExam/List.hs b/src/Handler/ExternalExam/List.hs index 112a9a3ce..ac1d25932 100644 --- a/src/Handler/ExternalExam/List.hs +++ b/src/Handler/ExternalExam/List.hs @@ -48,7 +48,7 @@ getEExamListR = do dbtRowKey = queryEExam >>> (E.^. ExternalExamId) dbtProj = return dbtColonnade = widgetColonnade $ mconcat - [ sortable (Just "term") (i18nCell MsgTerm) $ \(view resultEExam -> Entity _ ExternalExam{..}) -> i18nCell . ShortTermIdentifier $ unTermKey externalExamTerm + [ sortable (Just "term") (i18nCell MsgTableTerm) $ \(view resultEExam -> Entity _ ExternalExam{..}) -> i18nCell . ShortTermIdentifier $ unTermKey externalExamTerm , sortable (Just "school") (i18nCell MsgSchool) $ \(view resultSchool -> Entity _ School{..}) -> i18nCell schoolName , sortable (Just "course") (i18nCell MsgCourse) $ \(view resultEExam -> Entity _ ExternalExam{..}) -> i18nCell externalExamCourseName , sortable (Just "name") (i18nCell MsgExamName) $ \(view resultEExam -> Entity _ ExternalExam{..}) -> anchorCell (EExamR externalExamTerm externalExamSchool externalExamCourseName externalExamExamName EEShowR) externalExamExamName diff --git a/src/Handler/News.hs b/src/Handler/News.hs index 500a81d58..9fd43612f 100644 --- a/src/Handler/News.hs +++ b/src/Handler/News.hs @@ -135,10 +135,10 @@ newsUpcomingSheets uid = do (DBCell Handler ()) colonnade = mconcat [ -- dbRow - -- TOOD: sortable (Just "term") (textCell MsgTerm) $ \DBRow{ dbrOutput=(view _1 -> E.Value tid) } -> - sortable (Just "term") (i18nCell MsgTerm) $ \DBRow{ dbrOutput=(E.Value tid,_,_,_,_,_) } -> + -- TOOD: sortable (Just "term") (textCell MsgTableTerm) $ \DBRow{ dbrOutput=(view _1 -> E.Value tid) } -> + sortable (Just "term") (i18nCell MsgTableTerm) $ \DBRow{ dbrOutput=(E.Value tid,_,_,_,_,_) } -> textCell $ toMessage tid - , sortable (Just "school") (i18nCell MsgCourseSchool) $ \DBRow{ dbrOutput=(_,E.Value ssh,_,_,_,_) } -> + , sortable (Just "school") (i18nCell MsgTableCourseSchool) $ \DBRow{ dbrOutput=(_,E.Value ssh,_,_,_,_) } -> textCell $ toMessage ssh , sortable (Just "course") (i18nCell MsgCourse) $ \DBRow{ dbrOutput=(E.Value tid, E.Value ssh, E.Value csh, _, _, _) } -> anchorCell (CourseR tid ssh csh CShowR) csh @@ -254,9 +254,9 @@ newsUpcomingExams uid = do dbtRowKey = queryExam >>> (E.^. ExamId) dbtProj = return dbtColonnade = dbColonnade $ mconcat - [ sortable (Just "term") (i18nCell MsgTerm) $ \DBRow{ dbrOutput = view lensCourse -> Entity _ Course{..} } -> + [ sortable (Just "term") (i18nCell MsgTableTerm) $ \DBRow{ dbrOutput = view lensCourse -> Entity _ Course{..} } -> msgCell courseTerm - , sortable (Just "school") (i18nCell MsgCourseSchool) $ \DBRow{ dbrOutput = view lensCourse -> Entity _ Course{..} } -> + , sortable (Just "school") (i18nCell MsgTableCourseSchool) $ \DBRow{ dbrOutput = view lensCourse -> Entity _ Course{..} } -> msgCell courseSchool , sortable (Just "course") (i18nCell MsgCourse) $ \DBRow{ dbrOutput = view lensCourse -> Entity _ Course{..} } -> anchorCell (CourseR courseTerm courseSchool courseShorthand CShowR) (toWgt courseShorthand) diff --git a/src/Handler/Profile.hs b/src/Handler/Profile.hs index 13a4369f2..96294430e 100644 --- a/src/Handler/Profile.hs +++ b/src/Handler/Profile.hs @@ -507,11 +507,11 @@ mkOwnedCoursesTable = dbtProj = return . (_dbrOutput %~ (\(E.Value tid, E.Value ssh, E.Value csh) -> (tid,ssh,csh))) dbtColonnade = mconcat - [ sortable (Just "term") (i18nCell MsgTerm & cellAttrs .~ [("priority","0")]) $ do + [ sortable (Just "term") (i18nCell MsgTableTerm & cellAttrs .~ [("priority","0")]) $ do tid <- view (_dbrOutput . _1) return $ indicatorCell -- return True if one cell is produced here `mappend` termCell tid - , sortable (Just "school") (i18nCell MsgCourseSchool) $ + , sortable (Just "school") (i18nCell MsgTableCourseSchool) $ schoolCell <$> view (_dbrOutput . _1) <*> view (_dbrOutput . _2 ) , sortable (Just "course") (i18nCell MsgCourse) $ @@ -558,9 +558,9 @@ mkEnrolledCoursesTable = , dbtRowKey = \(course `E.InnerJoin` _) -> course E.^. CourseId , dbtProj = \x -> return $ x & _dbrOutput . _2 %~ E.unValue , dbtColonnade = mconcat - [ sortable (Just "term") (i18nCell MsgTerm) $ + [ sortable (Just "term") (i18nCell MsgTableTerm) $ termCell <$> view (_dbrOutput . _1 . _entityVal . _courseTerm) - , sortable (Just "school") (i18nCell MsgCourseSchool) . magnify (_dbrOutput . _1 . _entityVal) $ + , sortable (Just "school") (i18nCell MsgTableCourseSchool) . magnify (_dbrOutput . _1 . _entityVal) $ schoolCell <$> view _courseTerm <*> view _courseSchool , sortable (Just "course") (i18nCell MsgCourse) $ @@ -626,9 +626,9 @@ mkSubmissionTable = & _dbrOutput . _4 %~ E.unValue dbtColonnade = mconcat - [ sortable (Just "term") (i18nCell MsgTerm) $ + [ sortable (Just "term") (i18nCell MsgTableTerm) $ termCell <$> view (_dbrOutput . _1 . _1) - , sortable (Just "school") (i18nCell MsgCourseSchool) . magnify (_dbrOutput . _1 ) $ + , sortable (Just "school") (i18nCell MsgTableCourseSchool) . magnify (_dbrOutput . _1 ) $ schoolCell <$> view _1 <*> view _2 , sortable (Just "course") (i18nCell MsgCourse) $ @@ -701,9 +701,9 @@ mkSubmissionGroupTable = & _dbrOutput . _1 %~ $(E.unValueN 3) dbtColonnade = mconcat - [ sortable (Just "term") (i18nCell MsgTerm) $ + [ sortable (Just "term") (i18nCell MsgTableTerm) $ termCell <$> view (_dbrOutput . _1 . _1) - , sortable (Just "school") (i18nCell MsgCourseSchool) . magnify (_dbrOutput . _1 ) $ + , sortable (Just "school") (i18nCell MsgTableCourseSchool) . magnify (_dbrOutput . _1 ) $ schoolCell <$> view _1 <*> view _2 , sortable (Just "course") (i18nCell MsgCourse) $ @@ -769,9 +769,9 @@ mkCorrectionsTable = & _dbrOutput . _2 %~ E.unValue dbtColonnade = mconcat - [ sortable (Just "term") (i18nCell MsgTerm) $ + [ sortable (Just "term") (i18nCell MsgTableTerm) $ termCellCL <$> view (_dbrOutput . _1) - , sortable (Just "school") (i18nCell MsgCourseSchool) $ + , sortable (Just "school") (i18nCell MsgTableCourseSchool) $ schoolCellCL <$> view (_dbrOutput . _1) , sortable (Just "course") (i18nCell MsgCourse) $ courseCellCL <$> view (_dbrOutput . _1) diff --git a/src/Handler/Submission/Grade.hs b/src/Handler/Submission/Grade.hs index 9ea8316d9..9b8dab1f9 100644 --- a/src/Handler/Submission/Grade.hs +++ b/src/Handler/Submission/Grade.hs @@ -39,8 +39,8 @@ postCorrectionsGradeR = do ] -- Continue here filterUI = Just $ \mPrev -> mconcat [ prismAForm (singletonFilter "course" ) mPrev $ aopt (lift `hoistField` selectField courseOptions) (fslI MsgCourse) - , prismAForm (singletonFilter "term" ) mPrev $ aopt (lift `hoistField` selectField termOptions) (fslI MsgTerm) - , prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectField schoolOptions) (fslI MsgCourseSchool) + , 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))) , 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) diff --git a/src/Handler/Submission/List.hs b/src/Handler/Submission/List.hs index 7e569f92a..8177266f6 100644 --- a/src/Handler/Submission/List.hs +++ b/src/Handler/Submission/List.hs @@ -81,12 +81,12 @@ userIs uid ((_course `E.InnerJoin` _sheet `E.InnerJoin` submission) `E.LeftOute -- Columns colTerm :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a) -colTerm = sortable (Just "term") (i18nCell MsgTerm) +colTerm = sortable (Just "term") (i18nCell MsgTableTerm) $ \DBRow{ dbrOutput } -> textCell $ termToText $ unTermKey $ dbrOutput ^. _3 . _3 -- kurze Semsterkürzel colSchool :: IsDBTable m a => Colonnade Sortable CorrectionTableData (DBCell m a) -colSchool = sortable (Just "school") (i18nCell MsgCourseSchool) +colSchool = sortable (Just "school") (i18nCell MsgTableCourseSchool) $ \DBRow{ dbrOutput } -> let course = dbrOutput ^. _3 in anchorCell (TermSchoolCourseListR (course ^. _3) (course ^. _4)) [whamlet|#{unSchoolKey (course ^. _4)}|] @@ -652,8 +652,8 @@ postCorrectionsR = do ] -- Continue here filterUI = Just $ \mPrev -> mconcat [ prismAForm (singletonFilter "course" ) mPrev $ aopt (lift `hoistField` selectField courseOptions) (fslI MsgCourse) - , prismAForm (singletonFilter "term" ) mPrev $ aopt (lift `hoistField` selectField termOptions) (fslI MsgTerm) - , prismAForm (singletonFilter "school" ) mPrev $ aopt (lift `hoistField` selectField schoolOptions) (fslI MsgCourseSchool) + , 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))) , prismAForm (singletonFilter "israted" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgRatingTime) , prismAForm (singletonFilter "submission") mPrev $ aopt (lift `hoistField` textField) (fslI MsgSubmission) diff --git a/src/Handler/Utils/Table/Columns.hs b/src/Handler/Utils/Table/Columns.hs index a3963ea54..8f9490642 100644 --- a/src/Handler/Utils/Table/Columns.hs +++ b/src/Handler/Utils/Table/Columns.hs @@ -88,7 +88,7 @@ type OpticFilterColumn t focus = OpticFilterColumn' t (Set focus) (E.SqlExpr (E. colTermShort :: OpticColonnade TermId colTermShort resultTid = Colonnade.singleton (fromSortable header) body where - header = Sortable (Just "term") (i18nCell MsgTerm) + header = Sortable (Just "term") (i18nCell MsgTableTerm) body = i18nCell . ShortTermIdentifier . unTermKey . view resultTid sortTerm :: OpticSortColumn TermId @@ -98,7 +98,7 @@ fltrTerm :: OpticFilterColumn t TermId fltrTerm queryTid = singletonMap "term" . FilterColumn $ mkExactFilter (view queryTid) fltrTermUI :: DBFilterUI -fltrTermUI mPrev = prismAForm (singletonFilter "term" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift termField) (fslI MsgTerm) +fltrTermUI mPrev = prismAForm (singletonFilter "term" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift termField) (fslI MsgTableTerm) ------------- -- Schools -- diff --git a/templates/allocation/accept.hamlet b/templates/allocation/accept.hamlet index 7a34947d5..50cc2ee65 100644 --- a/templates/allocation/accept.hamlet +++ b/templates/allocation/accept.hamlet @@ -41,7 +41,7 @@ $newline never $if showTerms - _{MsgTerm} + _{MsgTableTerm} $if showSchools _{MsgSchool} diff --git a/templates/course.hamlet b/templates/course.hamlet index 3ec360830..21750caf1 100644 --- a/templates/course.hamlet +++ b/templates/course.hamlet @@ -69,7 +69,7 @@ $# #{summary}
#{descr} -
_{MsgCourseSchool} +
_{MsgTableCourseSchool}
#{schoolName} diff --git a/templates/external-exam-show.hamlet b/templates/external-exam-show.hamlet index 9604f7be4..78ac8b780 100644 --- a/templates/external-exam-show.hamlet +++ b/templates/external-exam-show.hamlet @@ -15,10 +15,10 @@ $maybe ExternalExamResult{externalExamResultResult} <- mResult
-
_{MsgTerm} +
_{MsgTableTerm}
_{unTermKey externalExamTerm} -
_{MsgCourseSchool} +
_{MsgTableCourseSchool}
#{schoolName}
_{MsgCourseName} diff --git a/templates/participants-list.hamlet b/templates/participants-list.hamlet index b8b275b96..78a7bec67 100644 --- a/templates/participants-list.hamlet +++ b/templates/participants-list.hamlet @@ -3,7 +3,7 @@ $newline never -
_{MsgTerm} + _{MsgTableTerm} $forall school <- schools #{unSchoolKey school}