refactor(messages): msgmenu only for navLabel, gender-neutral language navigation
This commit is contained in:
parent
c796bd5934
commit
8d9d3c613f
@ -39,13 +39,47 @@ BtnSystemMessageUnhide: Nicht mehr verstecken
|
|||||||
BtnCommunicationSend: Senden
|
BtnCommunicationSend: Senden
|
||||||
BtnCommunicationTest: Test-Nachricht verschicken
|
BtnCommunicationTest: Test-Nachricht verschicken
|
||||||
|
|
||||||
EmailTable: Email
|
TableEmail: Email
|
||||||
StudyTermTable: Studiengang
|
TableStudyTerm: Studiengang
|
||||||
StudyFeatureAgeTable: Fachsemester
|
TableStudyFeatureAge: Fachsemester
|
||||||
StudyFeatureDegreeTable: Abschluss
|
TableStudyFeatureDegree: Abschluss
|
||||||
StudyFeatureTypeTable:
|
TableStudyFeatureType:
|
||||||
StudyFeatureValidTable: Aktiv
|
TableStudyFeatureValid: Aktiv
|
||||||
StudyFeatureUpdateTable: Abgeglichen
|
TableStudyFeatureUpdate: Abgeglichen
|
||||||
|
TableHeadingFilter: Filter
|
||||||
|
|
||||||
|
HeadingLegal: Rechtliche Informationen
|
||||||
|
SubmissionNew: Abgabe anlegen
|
||||||
|
ParticipantsList: Kursteilnehmerlisten
|
||||||
|
ParticipantsIntersect: Überschneidung von Kursteilnehmer:innen
|
||||||
|
HeadingProfileData: Persönliche Daten
|
||||||
|
HeadingSchoolList: Institute
|
||||||
|
HeadingAdminCrontab: Crontab
|
||||||
|
HeadingAdminTokens: Tokens ausstellen
|
||||||
|
HeadingAllocationAccept: Platzvergabe akzeptieren
|
||||||
|
HeadingAllocationCompute: Platzvergabe berechnen
|
||||||
|
HeadingAllocationInfo: Hinweise zum Ablauf einer Zentralanmeldung
|
||||||
|
AllocationPriorities: Zentrale Dringlichkeiten
|
||||||
|
AllocationUsers: Bewerber:innen
|
||||||
|
HeadingCourseMembers: Kursteilnehmer:innen
|
||||||
|
HeadingCourseExamOffice: Prüfungsbeauftragte
|
||||||
|
HeadingExamList: Prüfungen
|
||||||
|
HeadingExamOfficeFields: Fächer
|
||||||
|
HeadingExamOfficeUsers: Benutzer:innen
|
||||||
|
HeadingExternalExamList: Externe Prüfungen
|
||||||
|
HeadingExternalExamNew: Neue externe Prüfung
|
||||||
|
SheetPersonalisedFilesDownload: Personalisierte Dateien herunterladen
|
||||||
|
HeadingCorrectionsAssign: Zuteilung der Korrekturen
|
||||||
|
HeadingUserAdd: Benutzer:in anlegen
|
||||||
|
CorrectorsChange: Korrektoren ändern
|
||||||
|
MaterialList: Material
|
||||||
|
SheetListCourse: Übungsblätter
|
||||||
|
HeadingDataProt: Datenschutzerklärung
|
||||||
|
HeadingTermsUse: Nutzungsbedingungen
|
||||||
|
HeadingCopyright: Urheberrecht
|
||||||
|
HeadingImprint: Impressum
|
||||||
|
CourseApplications: Bewerbungen
|
||||||
|
CourseNew: Neuen Kurs anlegen
|
||||||
|
|
||||||
FormFieldWorkflowDatasetTip: Mindestens ein gekennzeichnetes Feld pro Datensatz muss ausgefüllt werden
|
FormFieldWorkflowDatasetTip: Mindestens ein gekennzeichnetes Feld pro Datensatz muss ausgefüllt werden
|
||||||
|
|
||||||
@ -152,7 +186,6 @@ CourseEditDupShort tid@TermId ssh@SchoolId csh@CourseShorthand: Kurs #{tid}-#{ss
|
|||||||
FFSheetName: Name
|
FFSheetName: Name
|
||||||
TermCourseListHeading tid@TermId: Kursübersicht #{tid}
|
TermCourseListHeading tid@TermId: Kursübersicht #{tid}
|
||||||
TermSchoolCourseListHeading tid@TermId school@SchoolName: Kursübersicht #{tid} für #{school}
|
TermSchoolCourseListHeading tid@TermId school@SchoolName: Kursübersicht #{tid} für #{school}
|
||||||
CourseListTitle: Alle Kurse
|
|
||||||
TermCourseListTitle tid@TermId: Kurse #{tid}
|
TermCourseListTitle tid@TermId: Kurse #{tid}
|
||||||
TermSchoolCourseListTitle tid@TermId school@SchoolName: Kurse #{tid} für #{school}
|
TermSchoolCourseListTitle tid@TermId school@SchoolName: Kurse #{tid} für #{school}
|
||||||
CourseNewHeading: Neuen Kurs anlegen
|
CourseNewHeading: Neuen Kurs anlegen
|
||||||
@ -1935,7 +1968,7 @@ CourseApplicationsTableCsvExceptionNoMatchingUser: Bewerber konnte nicht eindeut
|
|||||||
CourseApplicationsTableCsvExceptionNoMatchingAllocation: Zentralanmeldung konnte nicht eindeutig identifiziert werden
|
CourseApplicationsTableCsvExceptionNoMatchingAllocation: Zentralanmeldung konnte nicht eindeutig identifiziert werden
|
||||||
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: Das angegebene Studienfach konnte keinem Studienfach des Kursteilnehmers zugeordnet werden
|
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: Das angegebene Studienfach konnte keinem Studienfach des Kursteilnehmers zugeordnet werden
|
||||||
|
|
||||||
TableHeadingFilter: Filter
|
|
||||||
TableHeadingCsvImport: CSV-Import
|
TableHeadingCsvImport: CSV-Import
|
||||||
TableHeadingCsvExport: CSV-Export
|
TableHeadingCsvExport: CSV-Export
|
||||||
|
|
||||||
|
|||||||
@ -39,13 +39,47 @@ BtnSystemMessageUnhide: Unhide
|
|||||||
BtnCommunicationSend: Send
|
BtnCommunicationSend: Send
|
||||||
BtnCommunicationTest: Send test message
|
BtnCommunicationTest: Send test message
|
||||||
|
|
||||||
EmailTable: Email
|
TableEmail: Email
|
||||||
StudyFeatureTypeTable:
|
TableStudyFeatureType:
|
||||||
StudyFeatureValidTable: Valid
|
TableStudyFeatureValid: Valid
|
||||||
StudyFeatureUpdateTable: Updated
|
TableStudyFeatureUpdate: Updated
|
||||||
StudyFeatureAgeTable: Semester
|
TableStudyFeatureAge: Semester
|
||||||
StudyFeatureDegreeTable: Degree
|
TableStudyFeatureDegree: Degree
|
||||||
StudyTermTable: Field of study
|
TableStudyTerm: Field of study
|
||||||
|
TableHeadingFilter: Filter
|
||||||
|
|
||||||
|
HeadingLegal: Legal
|
||||||
|
SubmissionNew: Create submission
|
||||||
|
ParticipantsList: Lists of course participants
|
||||||
|
ParticipantsIntersect: Common course participants
|
||||||
|
HeadingProfileData: Personal information
|
||||||
|
HeadingSchoolList: Departments
|
||||||
|
HeadingAdminCrontab: Crontab
|
||||||
|
HeadingAdminTokens: Issue tokens
|
||||||
|
HeadingAllocationAccept: Accept allocation
|
||||||
|
HeadingAllocationCompute: Compute allocation
|
||||||
|
HeadingAllocationInfo: Information regarding central allocations
|
||||||
|
AllocationPriorities: Central priorities
|
||||||
|
AllocationUsers: Applicants
|
||||||
|
HeadingCourseMembers: Participants
|
||||||
|
HeadingCourseExamOffice: Exam offices
|
||||||
|
HeadingExamList: Exams
|
||||||
|
HeadingExamOfficeFields: Fields of study
|
||||||
|
HeadingExamOfficeUsers: Users
|
||||||
|
HeadingExternalExamList: External exams
|
||||||
|
HeadingExternalExamNew: New external exam
|
||||||
|
SheetPersonalisedFilesDownload: Download personalised sheet files
|
||||||
|
HeadingCorrectionsAssign: Assign corrections
|
||||||
|
HeadingUserAdd: Add user
|
||||||
|
CorrectorsChange: Adjust correctors
|
||||||
|
MaterialList: Material
|
||||||
|
SheetListCourse: Exercise sheets
|
||||||
|
HeadingDataProt: Data protection
|
||||||
|
HeadingTermsUse: Terms of use
|
||||||
|
HeadingCopyright: Copyright
|
||||||
|
HeadingImprint: Imprint
|
||||||
|
CourseApplications: Applications
|
||||||
|
CourseNew: Create new course
|
||||||
|
|
||||||
FormFieldWorkflowDatasetTip: At least one of the marked fields must be filled
|
FormFieldWorkflowDatasetTip: At least one of the marked fields must be filled
|
||||||
|
|
||||||
@ -152,7 +186,7 @@ CourseEditDupShort tid ssh csh: Could not edit course #{tid}-#{ssh}-#{csh}. Anot
|
|||||||
FFSheetName: Name
|
FFSheetName: Name
|
||||||
TermCourseListHeading tid: Courses #{tid}
|
TermCourseListHeading tid: Courses #{tid}
|
||||||
TermSchoolCourseListHeading tid school: Courses #{tid}, #{school}
|
TermSchoolCourseListHeading tid school: Courses #{tid}, #{school}
|
||||||
CourseListTitle: All courses
|
|
||||||
TermCourseListTitle tid: Courses #{tid}
|
TermCourseListTitle tid: Courses #{tid}
|
||||||
TermSchoolCourseListTitle tid school: Courses #{tid}, #{school}
|
TermSchoolCourseListTitle tid school: Courses #{tid}, #{school}
|
||||||
CourseNewHeading: Create new course
|
CourseNewHeading: Create new course
|
||||||
@ -1928,7 +1962,7 @@ CourseApplicationsTableCsvExceptionNoMatchingUser: Applicant could not be identi
|
|||||||
CourseApplicationsTableCsvExceptionNoMatchingAllocation: Central allocation could not be identified uniquely
|
CourseApplicationsTableCsvExceptionNoMatchingAllocation: Central allocation could not be identified uniquely
|
||||||
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: The specified field did not match with any of the participant's fields of study
|
CourseApplicationsTableCsvExceptionNoMatchingStudyFeatures: The specified field did not match with any of the participant's fields of study
|
||||||
|
|
||||||
TableHeadingFilter: Filter
|
|
||||||
TableHeadingCsvImport: CSV import
|
TableHeadingCsvImport: CSV import
|
||||||
TableHeadingCsvExport: CSV export
|
TableHeadingCsvExport: CSV export
|
||||||
|
|
||||||
|
|||||||
1
messages/uniworx/uniworx_new/courses/de-de-formal.msg
Normal file
1
messages/uniworx/uniworx_new/courses/de-de-formal.msg
Normal file
@ -0,0 +1 @@
|
|||||||
|
CourseListTitle: Alle Kurse
|
||||||
1
messages/uniworx/uniworx_new/courses/en-eu.msg
Normal file
1
messages/uniworx/uniworx_new/courses/en-eu.msg
Normal file
@ -0,0 +1 @@
|
|||||||
|
CourseListTitle: All courses
|
||||||
@ -1,13 +1,13 @@
|
|||||||
MenuAdminHeading: Administration
|
MenuAdminHeading: Administration
|
||||||
MenuAdminFeaturesHeading: Studiengänge
|
MenuAdminFeaturesHeading: Studiengänge
|
||||||
MenuInfoLecturerTitle: Hinweise für Veranstalter
|
MenuInfoLecturerTitle: Hinweise für Veranstalter:innen
|
||||||
MenuInfoLecturerCourses: Veranstaltungen
|
MenuInfoLecturerCourses: Veranstaltungen
|
||||||
MenuInfoLecturerExercises: Übungsbetrieb
|
MenuInfoLecturerExercises: Übungsbetrieb
|
||||||
MenuInfoLecturerTutorials: Tutorien
|
MenuInfoLecturerTutorials: Tutorien
|
||||||
MenuInfoLecturerExams: Prüfungen
|
MenuInfoLecturerExams: Prüfungen
|
||||||
MenuInfoLecturerAllocations: Zentralanmeldungen
|
MenuInfoLecturerAllocations: Zentralanmeldungen
|
||||||
MenuCsvOptions: CSV-Optionen
|
MenuCsvOptions: CSV-Optionen
|
||||||
MenuCorrectorAssignTitle: Korrektor zuweisen
|
MenuCorrectorAssignTitle: Korrektor:in zuweisen
|
||||||
MenuOpenCourses: Kurse mit offener Registrierung
|
MenuOpenCourses: Kurse mit offener Registrierung
|
||||||
MenuOpenAllocations: Aktive Zentralanmeldungen
|
MenuOpenAllocations: Aktive Zentralanmeldungen
|
||||||
MenuNews: Aktuell
|
MenuNews: Aktuell
|
||||||
@ -26,15 +26,15 @@ MenuLogin: Login
|
|||||||
MenuLogout: Logout
|
MenuLogout: Logout
|
||||||
MenuAllocationList: Zentralanmeldungen
|
MenuAllocationList: Zentralanmeldungen
|
||||||
MenuCourseList: Kurse
|
MenuCourseList: Kurse
|
||||||
MenuCourseMembers: Kursteilnehmer
|
MenuCourseMembers: Kursteilnehmer:innen
|
||||||
MenuCourseAddMembers: Kursteilnehmer hinzufügen
|
MenuCourseAddMembers: KursteilnehmerInnen hinzufügen
|
||||||
MenuCourseCommunication: Kursmitteilung (E-Mail)
|
MenuCourseCommunication: Kursmitteilung (E-Mail)
|
||||||
MenuCourseApplications: Bewerbungen
|
MenuCourseApplications: Bewerbungen
|
||||||
MenuCourseExamOffice: Prüfungsbeauftragte
|
MenuCourseExamOffice: Prüfungsbeauftragte
|
||||||
MenuTermShow: Semester
|
MenuTermShow: Semester
|
||||||
MenuSubmissionDelete: Abgabe löschen
|
MenuSubmissionDelete: Abgabe löschen
|
||||||
MenuUsers: Benutzer
|
MenuUsers: Benutzer:in
|
||||||
MenuUserAdd: Benutzer anlegen
|
MenuUserAdd: Benutzer:in anlegen
|
||||||
MenuUserNotifications: Benachrichtigungs-Einstellungen
|
MenuUserNotifications: Benachrichtigungs-Einstellungen
|
||||||
MenuUserPassword: Passwort
|
MenuUserPassword: Passwort
|
||||||
MenuAdminTest: Admin-Demo
|
MenuAdminTest: Admin-Demo
|
||||||
@ -59,14 +59,13 @@ MenuTutorialList: Tutorien
|
|||||||
MenuTutorialNew: Neues Tutorium anlegen
|
MenuTutorialNew: Neues Tutorium anlegen
|
||||||
MenuSheetNew: Neues Übungsblatt anlegen
|
MenuSheetNew: Neues Übungsblatt anlegen
|
||||||
MenuSheetCurrent: Aktuelles Übungsblatt
|
MenuSheetCurrent: Aktuelles Übungsblatt
|
||||||
MenuSheetOldUnassigned: Abgaben ohne Korrektor
|
MenuSheetOldUnassigned: Abgaben ohne Korrektor:in
|
||||||
MenuCourseEdit: Kurs editieren
|
MenuCourseEdit: Kurs editieren
|
||||||
MenuCourseClone: Als neuen Kurs klonen
|
MenuCourseClone: Als neuen Kurs klonen
|
||||||
MenuCourseDelete: Kurs löschen
|
MenuCourseDelete: Kurs löschen
|
||||||
MenuSubmissionNew: Abgabe anlegen
|
MenuSubmissionNew: Abgabe anlegen
|
||||||
MenuSubmissionOwn: Abgabe
|
MenuSubmissionOwn: Abgabe
|
||||||
MenuCorrectors: Korrektoren
|
MenuCorrectors: Korrektor:innen
|
||||||
MenuCorrectorsChange: Korrektoren ändern
|
|
||||||
MenuSheetEdit: Übungsblatt editieren
|
MenuSheetEdit: Übungsblatt editieren
|
||||||
MenuSheetDelete: Übungsblatt löschen
|
MenuSheetDelete: Übungsblatt löschen
|
||||||
MenuSheetClone: Als neues Übungsblatt klonen
|
MenuSheetClone: Als neues Übungsblatt klonen
|
||||||
@ -79,35 +78,35 @@ MenuCorrectionsAssignSheet name@Text: Zuteilung der Korrekturen von #{name}
|
|||||||
MenuAuthPreds: Authorisierungseinstellungen
|
MenuAuthPreds: Authorisierungseinstellungen
|
||||||
MenuTutorialDelete: Tutorium löschen
|
MenuTutorialDelete: Tutorium löschen
|
||||||
MenuTutorialEdit: Tutorium editieren
|
MenuTutorialEdit: Tutorium editieren
|
||||||
MenuTutorialComm: Mitteilung an Teilnehmer
|
MenuTutorialComm: Mitteilung an Teilnehmer:innen
|
||||||
MenuExamList: Prüfungen
|
MenuExamList: Prüfungen
|
||||||
MenuExamNew: Neue Prüfung anlegen
|
MenuExamNew: Neue Prüfung anlegen
|
||||||
MenuExamEdit: Prüfung bearbeiten
|
MenuExamEdit: Prüfung bearbeiten
|
||||||
MenuExamUsers: Teilnehmer
|
MenuExamUsers: Teilnehmer:innen
|
||||||
MenuExamGrades: Prüfungsleistungen
|
MenuExamGrades: Prüfungsleistungen
|
||||||
MenuExamAddMembers: Prüfungsteilnehmer hinzufügen
|
MenuExamAddMembers: Prüfungsteilnehmer hinzufügen
|
||||||
MenuExamCorrect: Prüfungsergebnisse eintragen
|
MenuExamCorrect: Prüfungsergebnisse eintragen
|
||||||
MenuExamOfficeExams: Prüfungen
|
MenuExamOfficeExams: Prüfungen
|
||||||
MenuExamOfficeFields: Fächer
|
MenuExamOfficeFields: Fächer
|
||||||
MenuExamOfficeUsers: Benutzer
|
MenuExamOfficeUsers: Benutzer:innen
|
||||||
MenuLecturerInvite: Funktionäre hinzufügen
|
MenuLecturerInvite: Funktionäre hinzufügen
|
||||||
MenuAllocationInfo: Hinweise zum Ablauf einer Zentralanmeldung
|
MenuAllocationInfo: Hinweise zum Ablauf einer Zentralanmeldung
|
||||||
MenuCourseApplicationsFiles: Dateien aller Bewerbungen
|
MenuCourseApplicationsFiles: Dateien aller Bewerbungen
|
||||||
MenuSchoolList: Institute
|
MenuSchoolList: Institute
|
||||||
MenuSchoolNew: Neues Institut anlegen
|
MenuSchoolNew: Neues Institut anlegen
|
||||||
MenuExternalExamGrades: Prüfungsleistungen
|
MenuExternalExamGrades: Prüfungsleistungen
|
||||||
MenuExternalExamUsers: Teilnehmer
|
MenuExternalExamUsers: Teilnehmer:innen
|
||||||
MenuExternalExamEdit: Bearbeiten
|
MenuExternalExamEdit: Bearbeiten
|
||||||
MenuExternalExamNew: Neue externe Prüfung
|
MenuExternalExamNew: Neue externe Prüfung
|
||||||
MenuExternalExamList: Externe Prüfungen
|
MenuExternalExamList: Externe Prüfungen
|
||||||
MenuExternalExamCorrect: Prüfungsleistungen eintragen
|
MenuExternalExamCorrect: Prüfungsleistungen eintragen
|
||||||
MenuParticipantsList: Kursteilnehmerlisten
|
MenuParticipantsList: Kursteilnehmerlisten
|
||||||
MenuParticipantsIntersect: Überschneidung von Kursteilnehmern
|
MenuParticipantsIntersect: Überschneidung von Kursteilnehmer:innen
|
||||||
MenuAllocationUsers: Bewerber
|
MenuAllocationUsers: Bewerber:innen
|
||||||
MenuAllocationPriorities: Zentrale Dringlichkeiten
|
MenuAllocationPriorities: Zentrale Dringlichkeiten
|
||||||
MenuAllocationCompute: Platzvergabe berechnen
|
MenuAllocationCompute: Platzvergabe berechnen
|
||||||
MenuAllocationAccept: Platzvergabe akzeptieren
|
|
||||||
MenuAllocationAddUser: Bewerber hinzufügen
|
MenuAllocationAddUser: Bewerber:in hinzufügen
|
||||||
MenuFaq: FAQ
|
MenuFaq: FAQ
|
||||||
MenuSheetPersonalisedFiles: Personalisierte Dateien herunterladen
|
MenuSheetPersonalisedFiles: Personalisierte Dateien herunterladen
|
||||||
MenuCourseSheetPersonalisedFiles: Vorlage für personalisierte Übungsblatt-Dateien herunterladen
|
MenuCourseSheetPersonalisedFiles: Vorlage für personalisierte Übungsblatt-Dateien herunterladen
|
||||||
|
|||||||
@ -66,7 +66,7 @@ MenuCourseDelete: Delete course
|
|||||||
MenuSubmissionNew: Create submission
|
MenuSubmissionNew: Create submission
|
||||||
MenuSubmissionOwn: Submission
|
MenuSubmissionOwn: Submission
|
||||||
MenuCorrectors: Correctors
|
MenuCorrectors: Correctors
|
||||||
MenuCorrectorsChange: Adjust correctors
|
|
||||||
MenuSheetEdit: Edit exercise sheet
|
MenuSheetEdit: Edit exercise sheet
|
||||||
MenuSheetDelete: Delete exercise sheet
|
MenuSheetDelete: Delete exercise sheet
|
||||||
MenuSheetClone: Clone exercise sheet
|
MenuSheetClone: Clone exercise sheet
|
||||||
@ -106,7 +106,7 @@ MenuParticipantsIntersect: Common course participants
|
|||||||
MenuAllocationUsers: Applicants
|
MenuAllocationUsers: Applicants
|
||||||
MenuAllocationPriorities: Central priorities
|
MenuAllocationPriorities: Central priorities
|
||||||
MenuAllocationCompute: Compute allocation
|
MenuAllocationCompute: Compute allocation
|
||||||
MenuAllocationAccept: Accept allocation
|
|
||||||
MenuAllocationAddUser: Add applicant
|
MenuAllocationAddUser: Add applicant
|
||||||
MenuFaq: FAQ
|
MenuFaq: FAQ
|
||||||
MenuSheetPersonalisedFiles: Download personalised sheet files
|
MenuSheetPersonalisedFiles: Download personalised sheet files
|
||||||
|
|||||||
@ -5,6 +5,7 @@ module Foundation.I18n
|
|||||||
( appLanguages, appLanguagesOpts
|
( appLanguages, appLanguagesOpts
|
||||||
, UniWorXMessage(..), UniWorXTestMessage(..), UniWorXSettingsMessage(..)
|
, UniWorXMessage(..), UniWorXTestMessage(..), UniWorXSettingsMessage(..)
|
||||||
, UniWorXHelpMessage(..), UniWorXNavigationMessage(..), UniWorXWorkflowMessage(..)
|
, UniWorXHelpMessage(..), UniWorXNavigationMessage(..), UniWorXWorkflowMessage(..)
|
||||||
|
, UniWorXCourseMessage(..)
|
||||||
, ShortTermIdentifier(..)
|
, ShortTermIdentifier(..)
|
||||||
, MsgLanguage(..)
|
, MsgLanguage(..)
|
||||||
, ShortSex(..)
|
, ShortSex(..)
|
||||||
@ -138,6 +139,7 @@ mkMessageAddition ''UniWorX "Settings" "messages/uniworx/uniworx_new/settings" "
|
|||||||
mkMessageAddition ''UniWorX "Help" "messages/uniworx/uniworx_new/help" "de-de-formal"
|
mkMessageAddition ''UniWorX "Help" "messages/uniworx/uniworx_new/help" "de-de-formal"
|
||||||
mkMessageAddition ''UniWorX "Navigation" "messages/uniworx/uniworx_new/navigation" "de-de-formal"
|
mkMessageAddition ''UniWorX "Navigation" "messages/uniworx/uniworx_new/navigation" "de-de-formal"
|
||||||
mkMessageAddition ''UniWorX "Workflow" "messages/uniworx/uniworx_new/workflows" "de-de-formal"
|
mkMessageAddition ''UniWorX "Workflow" "messages/uniworx/uniworx_new/workflows" "de-de-formal"
|
||||||
|
mkMessageAddition ''UniWorX "Course" "messages/uniworx/uniworx_new/courses" "de-de-formal"
|
||||||
mkMessageVariant ''UniWorX ''CampusMessage "messages/auth/campus" "de"
|
mkMessageVariant ''UniWorX ''CampusMessage "messages/auth/campus" "de"
|
||||||
mkMessageVariant ''UniWorX ''DummyMessage "messages/auth/dummy" "de"
|
mkMessageVariant ''UniWorX ''DummyMessage "messages/auth/dummy" "de"
|
||||||
mkMessageVariant ''UniWorX ''PWHashMessage "messages/auth/pw-hash" "de"
|
mkMessageVariant ''UniWorX ''PWHashMessage "messages/auth/pw-hash" "de"
|
||||||
|
|||||||
@ -46,8 +46,8 @@ getAdminCrontabR = do
|
|||||||
encodeBearer =<< bearerToken (HashSet.singleton . Left $ toJSON UserGroupCrontab) Nothing (HashMap.singleton BearerTokenRouteEval $ HashSet.singleton AdminCrontabR) Nothing (Just Nothing) Nothing
|
encodeBearer =<< bearerToken (HashSet.singleton . Left $ toJSON UserGroupCrontab) Nothing (HashMap.singleton BearerTokenRouteEval $ HashSet.singleton AdminCrontabR) Nothing (Just Nothing) Nothing
|
||||||
|
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuAdminCrontab $ do
|
siteLayoutMsg MsgHeadingAdminCrontab $ do
|
||||||
setTitleI MsgMenuAdminCrontab
|
setTitleI MsgHeadingAdminCrontab
|
||||||
[whamlet|
|
[whamlet|
|
||||||
$newline never
|
$newline never
|
||||||
$maybe t <- crontabBearer
|
$maybe t <- crontabBearer
|
||||||
|
|||||||
@ -88,8 +88,8 @@ postAdminTokensR = do
|
|||||||
|
|
||||||
fmap Just . encodeBearer . set _bearerRestrictions btfRestrict =<< bearerToken btfAuthority' Nothing (maybe HashMap.empty (HashMap.singleton BearerTokenRouteEval) btfRoutes) btfAddAuth btfExpiresAt btfStartsAt
|
fmap Just . encodeBearer . set _bearerRestrictions btfRestrict =<< bearerToken btfAuthority' Nothing (maybe HashMap.empty (HashMap.singleton BearerTokenRouteEval) btfRoutes) btfAddAuth btfExpiresAt btfStartsAt
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuAdminTokens $ do
|
siteLayoutMsg MsgHeadingAdminTokens $ do
|
||||||
setTitleI MsgMenuAdminTokens
|
setTitleI MsgHeadingAdminTokens
|
||||||
|
|
||||||
let bearerForm = wrapForm bearerView def
|
let bearerForm = wrapForm bearerView def
|
||||||
{ formMethod = POST
|
{ formMethod = POST
|
||||||
|
|||||||
@ -157,8 +157,8 @@ postAAcceptR tid ssh ash = do
|
|||||||
addMessageI Success MsgAllocationAccepted
|
addMessageI Success MsgAllocationAccepted
|
||||||
redirect $ AllocationR tid ssh ash AUsersR
|
redirect $ AllocationR tid ssh ash AUsersR
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuAllocationAccept $ do
|
siteLayoutMsg MsgHeadingAllocationAccept $ do
|
||||||
setTitleI MsgMenuAllocationAccept
|
setTitleI MsgHeadingAllocationAccept
|
||||||
|
|
||||||
wrapForm' BtnAllocationAccept acceptView def
|
wrapForm' BtnAllocationAccept acceptView def
|
||||||
{ formEncoding = acceptEnctype
|
{ formEncoding = acceptEnctype
|
||||||
|
|||||||
@ -142,8 +142,8 @@ postAComputeR tid ssh ash = do
|
|||||||
|
|
||||||
return (aEnt, formRes)
|
return (aEnt, formRes)
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuAllocationCompute $ do
|
siteLayoutMsg MsgHeadingAllocationCompute $ do
|
||||||
setTitleI MsgMenuAllocationCompute
|
setTitleI MsgHeadingAllocationCompute
|
||||||
|
|
||||||
wrapForm' BtnAllocationCompute computeFormView def
|
wrapForm' BtnAllocationCompute computeFormView def
|
||||||
{ formEncoding = computeFormEnctype
|
{ formEncoding = computeFormEnctype
|
||||||
|
|||||||
@ -8,6 +8,6 @@ import Handler.Utils
|
|||||||
|
|
||||||
getInfoAllocationR :: Handler Html
|
getInfoAllocationR :: Handler Html
|
||||||
getInfoAllocationR =
|
getInfoAllocationR =
|
||||||
siteLayoutMsg MsgMenuAllocationInfo $ do
|
siteLayoutMsg MsgHeadingAllocationInfo $ do
|
||||||
setTitleI MsgMenuAllocationInfo
|
setTitleI MsgHeadingAllocationInfo
|
||||||
$(i18nWidgetFile "allocation-info")
|
$(i18nWidgetFile "allocation-info")
|
||||||
|
|||||||
@ -83,7 +83,7 @@ postAPriosR tid ssh ash = do
|
|||||||
addMessageI Error $ MsgAllocationPrioritiesMissing matrMissing
|
addMessageI Error $ MsgAllocationPrioritiesMissing matrMissing
|
||||||
redirect $ AllocationR tid ssh ash AUsersR
|
redirect $ AllocationR tid ssh ash AUsersR
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuAllocationPriorities $ do
|
siteLayoutMsg MsgAllocationPriorities $ do
|
||||||
setTitleI $ MsgAllocationPrioritiesTitle tid ssh ash
|
setTitleI $ MsgAllocationPrioritiesTitle tid ssh ash
|
||||||
|
|
||||||
let priosForm = wrapForm priosView def
|
let priosForm = wrapForm priosView def
|
||||||
|
|||||||
@ -198,7 +198,7 @@ postAShowR tid ssh ash = do
|
|||||||
^{wdgt}
|
^{wdgt}
|
||||||
|]
|
|]
|
||||||
let daysToRegistrationStart = assertM (>0) $ (`diffUTCTime` now) <$> allocationRegisterFrom
|
let daysToRegistrationStart = assertM (>0) $ (`diffUTCTime` now) <$> allocationRegisterFrom
|
||||||
allocationInfoModal = modal [whamlet|_{MsgMenuAllocationInfo}|] $ Left $ SomeRoute InfoAllocationR
|
allocationInfoModal = modal [whamlet|_{MsgHeadingAllocationInfo}|] $ Left $ SomeRoute InfoAllocationR
|
||||||
numCourses = length courses
|
numCourses = length courses
|
||||||
numAppliedCourses = lengthOf (folded . _2 . _Just) courses
|
numAppliedCourses = lengthOf (folded . _2 . _Just) courses
|
||||||
$(widgetFile "allocation/show")
|
$(widgetFile "allocation/show")
|
||||||
|
|||||||
@ -335,7 +335,7 @@ postAUsersR tid ssh ash = do
|
|||||||
, formEncoding = acceptEnctype
|
, formEncoding = acceptEnctype
|
||||||
}
|
}
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuAllocationUsers $ do
|
siteLayoutMsg MsgAllocationUsers $ do
|
||||||
setTitleI $ MsgAllocationUsersTitle tid ssh ash
|
setTitleI $ MsgAllocationUsersTitle tid ssh ash
|
||||||
|
|
||||||
$(widgetFile "allocation/users")
|
$(widgetFile "allocation/users")
|
||||||
|
|||||||
@ -684,7 +684,7 @@ postCUsersR tid ssh csh = do
|
|||||||
sendResponse <=< serveZipArchive' archiveName $ sourcePersonalisedSheetFiles cid (Just shId) (Just selectedUsers) anonMode Set.empty
|
sendResponse <=< serveZipArchive' archiveName $ sourcePersonalisedSheetFiles cid (Just shId) (Just selectedUsers) anonMode Set.empty
|
||||||
|
|
||||||
|
|
||||||
let headingLong = [whamlet|_{MsgMenuCourseMembers} #{courseName} #{tid}|]
|
let headingLong = [whamlet|_{MsgHeadingCourseMembers} #{courseName} #{tid}|]
|
||||||
headingShort = prependCourseTitle tid ssh csh MsgCourseMembers
|
headingShort = prependCourseTitle tid ssh csh MsgCourseMembers
|
||||||
siteLayout headingLong $ do
|
siteLayout headingLong $ do
|
||||||
setTitleI headingShort
|
setTitleI headingShort
|
||||||
|
|||||||
@ -61,8 +61,8 @@ postCExamOfficeR tid ssh csh = do
|
|||||||
, formAttrs = [ asyncSubmitAttr | isModal ]
|
, formAttrs = [ asyncSubmitAttr | isModal ]
|
||||||
}
|
}
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuCourseExamOffice $ do
|
siteLayoutMsg MsgHeadingCourseExamOffice $ do
|
||||||
setTitleI MsgMenuCourseExamOffice
|
setTitleI MsgHeadingCourseExamOffice
|
||||||
|
|
||||||
let explanation = $(i18nWidgetFile "course-exam-office-explanation")
|
let explanation = $(i18nWidgetFile "course-exam-office-explanation")
|
||||||
|
|
||||||
|
|||||||
@ -222,6 +222,6 @@ getEOExamsR = do
|
|||||||
|
|
||||||
dbTableWidget' examsDBTableValidator examsDBTable
|
dbTableWidget' examsDBTableValidator examsDBTable
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuExamList $ do
|
siteLayoutMsg MsgHeadingExamList $ do
|
||||||
setTitleI MsgMenuExamList
|
setTitleI MsgHeadingExamList
|
||||||
examsTable
|
examsTable
|
||||||
|
|||||||
@ -104,8 +104,8 @@ postEOFieldsR = do
|
|||||||
, formEncoding = fieldsEnc
|
, formEncoding = fieldsEnc
|
||||||
}
|
}
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuExamOfficeFields $ do
|
siteLayoutMsg MsgHeadingExamOfficeFields $ do
|
||||||
setTitleI MsgMenuExamOfficeFields
|
setTitleI MsgHeadingExamOfficeFields
|
||||||
|
|
||||||
[whamlet|
|
[whamlet|
|
||||||
$newline never
|
$newline never
|
||||||
|
|||||||
@ -174,8 +174,8 @@ postEOUsersR = do
|
|||||||
, formEncoding = usersEnc
|
, formEncoding = usersEnc
|
||||||
}
|
}
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuExamOfficeUsers $ do
|
siteLayoutMsg MsgHeadingExamOfficeUsers $ do
|
||||||
setTitleI MsgMenuExamOfficeUsers
|
setTitleI MsgHeadingExamOfficeUsers
|
||||||
|
|
||||||
[whamlet|
|
[whamlet|
|
||||||
$newline never
|
$newline never
|
||||||
|
|||||||
@ -77,7 +77,7 @@ getEExamListR = do
|
|||||||
|
|
||||||
examTable <- runDB $ dbTableWidget' examDBTableValidator examDBTable
|
examTable <- runDB $ dbTableWidget' examDBTableValidator examDBTable
|
||||||
|
|
||||||
let heading = MsgMenuExternalExamList
|
let heading = MsgHeadingExternalExamList
|
||||||
|
|
||||||
siteLayoutMsg heading $ do
|
siteLayoutMsg heading $ do
|
||||||
setTitleI heading
|
setTitleI heading
|
||||||
|
|||||||
@ -62,7 +62,7 @@ postEExamNewR = do
|
|||||||
addMessageI Success $ MsgExternalExamCreated eefCourseName eefExamName
|
addMessageI Success $ MsgExternalExamCreated eefCourseName eefExamName
|
||||||
redirect $ EExamR eefTerm eefSchool eefCourseName eefExamName EEShowR
|
redirect $ EExamR eefTerm eefSchool eefCourseName eefExamName EEShowR
|
||||||
|
|
||||||
let heading = MsgMenuExternalExamNew
|
let heading = MsgHeadingExternalExamNew
|
||||||
|
|
||||||
siteLayoutMsg heading $ do
|
siteLayoutMsg heading $ do
|
||||||
setTitleI heading
|
setTitleI heading
|
||||||
|
|||||||
@ -27,7 +27,7 @@ getVersionR = selectRep $ do
|
|||||||
-- | Datenschutzerklaerung und Aufbewahrungspflichten, Nutzungsbedingungen, Urheberrecht, Impressum
|
-- | Datenschutzerklaerung und Aufbewahrungspflichten, Nutzungsbedingungen, Urheberrecht, Impressum
|
||||||
getLegalR :: Handler Html
|
getLegalR :: Handler Html
|
||||||
getLegalR =
|
getLegalR =
|
||||||
siteLayoutMsg MsgMenuLegal $ do
|
siteLayoutMsg MsgHeadingLegal $ do
|
||||||
setTitleI MsgLegalHeading
|
setTitleI MsgLegalHeading
|
||||||
let dataProtection = $(i18nWidgetFile "data-protection")
|
let dataProtection = $(i18nWidgetFile "data-protection")
|
||||||
termsUse = $(i18nWidgetFile "terms-of-use")
|
termsUse = $(i18nWidgetFile "terms-of-use")
|
||||||
|
|||||||
@ -151,7 +151,7 @@ newsUpcomingSheets uid = do
|
|||||||
Nothing -> cell $ do
|
Nothing -> cell $ do
|
||||||
let submitRoute = CSheetR tid ssh csh shn SubmissionNewR
|
let submitRoute = CSheetR tid ssh csh shn SubmissionNewR
|
||||||
whenM (hasWriteAccessTo submitRoute) $
|
whenM (hasWriteAccessTo submitRoute) $
|
||||||
modal [whamlet|_{MsgMenuSubmissionNew}|] . Left $ SomeRoute submitRoute
|
modal [whamlet|_{MsgSubmissionNew}|] . Left $ SomeRoute submitRoute
|
||||||
(Just sid) -> anchorCellM (CSubmissionR tid ssh csh shn <$> encrypt sid <*> pure SubShowR)
|
(Just sid) -> anchorCellM (CSubmissionR tid ssh csh shn <$> encrypt sid <*> pure SubShowR)
|
||||||
(hasTickmark True)
|
(hasTickmark True)
|
||||||
]
|
]
|
||||||
|
|||||||
@ -56,8 +56,8 @@ getParticipantsListR = do
|
|||||||
let schoolTerms :: Set (SchoolId, TermId)
|
let schoolTerms :: Set (SchoolId, TermId)
|
||||||
schoolTerms = setOf (folded . $(multifocusG 2) (_1 . _Value) (_2 . _Value)) schoolTerms'
|
schoolTerms = setOf (folded . $(multifocusG 2) (_1 . _Value) (_2 . _Value)) schoolTerms'
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuParticipantsList $ do
|
siteLayoutMsg MsgParticipantsList $ do
|
||||||
setTitleI MsgMenuParticipantsList
|
setTitleI MsgParticipantsList
|
||||||
|
|
||||||
let schools :: Set SchoolId
|
let schools :: Set SchoolId
|
||||||
schools = Set.map (view _1) schoolTerms
|
schools = Set.map (view _1) schoolTerms
|
||||||
@ -130,6 +130,6 @@ postParticipantsIntersectR = do
|
|||||||
|
|
||||||
lIxed = zip [0..]
|
lIxed = zip [0..]
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuParticipantsIntersect $ do
|
siteLayoutMsg MsgParticipantsIntersect $ do
|
||||||
setTitleI MsgMenuParticipantsIntersect
|
setTitleI MsgParticipantsIntersect
|
||||||
$(widgetFile "participants-intersect")
|
$(widgetFile "participants-intersect")
|
||||||
|
|||||||
@ -449,7 +449,7 @@ getProfileDataR = do
|
|||||||
userEnt <- requireAuth
|
userEnt <- requireAuth
|
||||||
dataWidget <- runDB $ makeProfileData userEnt
|
dataWidget <- runDB $ makeProfileData userEnt
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitleI MsgMenuProfileData
|
setTitleI MsgHeadingProfileData
|
||||||
dataWidget
|
dataWidget
|
||||||
|
|
||||||
makeProfileData :: Entity User -> DB Widget
|
makeProfileData :: Entity User -> DB Widget
|
||||||
|
|||||||
@ -55,7 +55,7 @@ getSchoolListR = do
|
|||||||
|
|
||||||
table <- runDB $ dbTableWidget' psValidator DBTable{..}
|
table <- runDB $ dbTableWidget' psValidator DBTable{..}
|
||||||
|
|
||||||
let title = MsgMenuSchoolList
|
let title = MsgHeadingSchoolList
|
||||||
siteLayoutMsg title $ do
|
siteLayoutMsg title $ do
|
||||||
setTitleI title
|
setTitleI title
|
||||||
table
|
table
|
||||||
|
|||||||
@ -111,7 +111,7 @@ makeSheetForm cId msId template = identifyForm FIDsheet . validateForm validateS
|
|||||||
= [whamlet|
|
= [whamlet|
|
||||||
$newline never
|
$newline never
|
||||||
#{iconFileZip}
|
#{iconFileZip}
|
||||||
\ _{MsgMenuSheetPersonalisedFiles}
|
\ _{MsgSheetPersonalisedFilesDownload}
|
||||||
|]
|
|]
|
||||||
listRoute <- for mbSheet $ \(sheetName -> shn) -> toTextUrl
|
listRoute <- for mbSheet $ \(sheetName -> shn) -> toTextUrl
|
||||||
( CourseR courseTerm courseSchool courseShorthand CUsersR
|
( CourseR courseTerm courseSchool courseShorthand CUsersR
|
||||||
|
|||||||
@ -402,8 +402,8 @@ getPersonalFilesR cId mbsid = do
|
|||||||
|
|
||||||
isModal <- hasCustomHeader HeaderIsModal
|
isModal <- hasCustomHeader HeaderIsModal
|
||||||
|
|
||||||
fmap toTypedContent . siteLayoutMsg MsgMenuSheetPersonalisedFiles $ do
|
fmap toTypedContent . siteLayoutMsg MsgSheetPersonalisedFiles $ do
|
||||||
setTitleI MsgMenuSheetPersonalisedFiles
|
setTitleI MsgSheetPersonalisedFiles
|
||||||
wrapForm psfWdgt def
|
wrapForm psfWdgt def
|
||||||
{ formMethod = GET
|
{ formMethod = GET
|
||||||
, formAction = SomeRoute <$> cRoute
|
, formAction = SomeRoute <$> cRoute
|
||||||
|
|||||||
@ -259,8 +259,8 @@ assignHandler tid ssh csh cid assignSids = do
|
|||||||
showAvgsDays :: Maybe NominalDiffTime -> Integer -> Text
|
showAvgsDays :: Maybe NominalDiffTime -> Integer -> Text
|
||||||
showAvgsDays Nothing _ = mempty
|
showAvgsDays Nothing _ = mempty
|
||||||
showAvgsDays (Just dt) n = formatDiffDays $ dt / fromIntegral n
|
showAvgsDays (Just dt) n = formatDiffDays $ dt / fromIntegral n
|
||||||
let headingShort = MsgMenuCorrectionsAssign
|
let headingShort = MsgHeadingCorrectionsAssign
|
||||||
headingLong = prependCourseTitle tid ssh csh MsgMenuCorrectionsAssign
|
headingLong = prependCourseTitle tid ssh csh MsgHeadingCorrectionsAssign
|
||||||
|
|
||||||
unassignableSheets = filter (`Map.notMember` assignment) assignSheetNames
|
unassignableSheets = filter (`Map.notMember` assignment) assignSheetNames
|
||||||
unless (null unassignableSheets) $ addMessageI Warning $ MsgSheetsUnassignable $ Text.intercalate ", " $ fmap CI.original unassignableSheets
|
unless (null unassignableSheets) $ addMessageI Warning $ MsgSheetsUnassignable $ Text.intercalate ", " $ fmap CI.original unassignableSheets
|
||||||
|
|||||||
@ -110,8 +110,8 @@ postAdminUserAddR = do
|
|||||||
Nothing ->
|
Nothing ->
|
||||||
addMessageI Error MsgUserCollision
|
addMessageI Error MsgUserCollision
|
||||||
|
|
||||||
siteLayoutMsg MsgMenuUserAdd $ do
|
siteLayoutMsg MsgHeadingUserAdd $ do
|
||||||
setTitleI MsgMenuUserAdd
|
setTitleI MsgHeadingUserAdd
|
||||||
wrapForm userView def
|
wrapForm userView def
|
||||||
{ formAction = Just $ SomeRoute AdminUserAddR
|
{ formAction = Just $ SomeRoute AdminUserAddR
|
||||||
, formEncoding = userEnctype
|
, formEncoding = userEnctype
|
||||||
|
|||||||
@ -89,7 +89,7 @@ studyFeaturesWidget featId = do
|
|||||||
(StudyFeatures{studyFeaturesSemester}, (degree, terms)) <- liftHandler . runDB . ($ featId) . runKleisli $ Kleisli getJust >>> Kleisli return &&& Kleisli (getJust . studyFeaturesDegree) &&& Kleisli (getJust . studyFeaturesField)
|
(StudyFeatures{studyFeaturesSemester}, (degree, terms)) <- liftHandler . runDB . ($ featId) . runKleisli $ Kleisli getJust >>> Kleisli return &&& Kleisli (getJust . studyFeaturesDegree) &&& Kleisli (getJust . studyFeaturesField)
|
||||||
[whamlet|
|
[whamlet|
|
||||||
$newline never
|
$newline never
|
||||||
_{StudyDegreeTerm degree terms}, _{MsgStudyFeatureAgeTable} #{studyFeaturesSemester}
|
_{StudyDegreeTerm degree terms}, _{MsgTableStudyFeatureAge} #{studyFeaturesSemester}
|
||||||
|]
|
|]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -590,7 +590,7 @@ fltrUserMatriclenrUI mPrev =
|
|||||||
----------------
|
----------------
|
||||||
-- User E-Mail
|
-- User E-Mail
|
||||||
colUserEmail :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c)
|
colUserEmail :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c)
|
||||||
colUserEmail = sortable (Just "user-email") (i18nCell MsgEmailTable) cellHasEMail
|
colUserEmail = sortable (Just "user-email") (i18nCell MsgTableEmail) cellHasEMail
|
||||||
|
|
||||||
sortUserEmail :: IsString d => (t -> E.SqlExpr (Entity User)) -> (d, SortColumn t r')
|
sortUserEmail :: IsString d => (t -> E.SqlExpr (Entity User)) -> (d, SortColumn t r')
|
||||||
sortUserEmail queryUser = ( "user-email", SortColumn $ queryUser >>> (E.^. UserEmail))
|
sortUserEmail queryUser = ( "user-email", SortColumn $ queryUser >>> (E.^. UserEmail))
|
||||||
@ -604,7 +604,7 @@ fltrUserEmail queryUser = ("user-email", FilterColumn . mkContainsFilter $ query
|
|||||||
|
|
||||||
fltrUserEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrUserEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrUserEmailUI mPrev =
|
fltrUserEmailUI mPrev =
|
||||||
prismAForm (singletonFilter "user-email") mPrev $ aopt textField (fslI MsgEmailTable)
|
prismAForm (singletonFilter "user-email") mPrev $ aopt textField (fslI MsgTableEmail)
|
||||||
|
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -614,7 +614,7 @@ fltrUserEmailUI mPrev =
|
|||||||
colStudyDegree :: OpticColonnade StudyDegree
|
colStudyDegree :: OpticColonnade StudyDegree
|
||||||
colStudyDegree resultDegree = Colonnade.singleton (fromSortable header) body
|
colStudyDegree resultDegree = Colonnade.singleton (fromSortable header) body
|
||||||
where
|
where
|
||||||
header = Sortable (Just "features-degree") (i18nCell MsgStudyFeatureDegreeTable)
|
header = Sortable (Just "features-degree") (i18nCell MsgTableStudyFeatureDegree)
|
||||||
body = views resultDegree $ \StudyDegree{..}
|
body = views resultDegree $ \StudyDegree{..}
|
||||||
-> cell . maybe (toWidget $ toMarkup studyDegreeKey) toWidget $ studyDegreeShorthand <|> studyDegreeName
|
-> cell . maybe (toWidget $ toMarkup studyDegreeKey) toWidget $ studyDegreeShorthand <|> studyDegreeName
|
||||||
|
|
||||||
@ -648,13 +648,13 @@ fltrStudyDegree queryDegree = singletonMap "features-degree" . FilterColumn $ an
|
|||||||
unSqlProject' = E.unSqlProject (Proxy @StudyDegree) (Proxy @studyDegree)
|
unSqlProject' = E.unSqlProject (Proxy @StudyDegree) (Proxy @studyDegree)
|
||||||
|
|
||||||
fltrStudyDegreeUI :: DBFilterUI
|
fltrStudyDegreeUI :: DBFilterUI
|
||||||
fltrStudyDegreeUI mPrev = prismAForm (singletonFilter "features-degree") mPrev $ aopt textField (fslI MsgStudyFeatureDegreeTable)
|
fltrStudyDegreeUI mPrev = prismAForm (singletonFilter "features-degree") mPrev $ aopt textField (fslI MsgTableStudyFeatureDegree)
|
||||||
|
|
||||||
|
|
||||||
colStudyTerms :: OpticColonnade StudyTerms
|
colStudyTerms :: OpticColonnade StudyTerms
|
||||||
colStudyTerms resultTerms = Colonnade.singleton (fromSortable header) body
|
colStudyTerms resultTerms = Colonnade.singleton (fromSortable header) body
|
||||||
where
|
where
|
||||||
header = Sortable (Just "features-terms") (i18nCell MsgStudyTermTable)
|
header = Sortable (Just "features-terms") (i18nCell MsgTableStudyTerm)
|
||||||
body = views resultTerms $ \StudyTerms{..}
|
body = views resultTerms $ \StudyTerms{..}
|
||||||
-> cell . maybe (toWidget $ toMarkup studyTermsKey) toWidget $ studyTermsShorthand <|> studyTermsName
|
-> cell . maybe (toWidget $ toMarkup studyTermsKey) toWidget $ studyTermsShorthand <|> studyTermsName
|
||||||
|
|
||||||
@ -688,13 +688,13 @@ fltrStudyTerms queryTerms = singletonMap "features-terms" . FilterColumn $ anyFi
|
|||||||
unSqlProject' = E.unSqlProject (Proxy @StudyTerms) (Proxy @studyTerms)
|
unSqlProject' = E.unSqlProject (Proxy @StudyTerms) (Proxy @studyTerms)
|
||||||
|
|
||||||
fltrStudyTermsUI :: DBFilterUI
|
fltrStudyTermsUI :: DBFilterUI
|
||||||
fltrStudyTermsUI mPrev = prismAForm (singletonFilter "features-terms") mPrev $ aopt textField (fslI MsgStudyTermTable)
|
fltrStudyTermsUI mPrev = prismAForm (singletonFilter "features-terms") mPrev $ aopt textField (fslI MsgTableStudyTerm)
|
||||||
|
|
||||||
|
|
||||||
colStudyFeaturesSemester :: OpticColonnade Int
|
colStudyFeaturesSemester :: OpticColonnade Int
|
||||||
colStudyFeaturesSemester resultSemester = Colonnade.singleton (fromSortable header) body
|
colStudyFeaturesSemester resultSemester = Colonnade.singleton (fromSortable header) body
|
||||||
where
|
where
|
||||||
header = Sortable (Just "features-semester") (i18nCell MsgStudyFeatureAgeTable)
|
header = Sortable (Just "features-semester") (i18nCell MsgTableStudyFeatureAge)
|
||||||
body = views resultSemester $ cell . toWidget . toMarkup
|
body = views resultSemester $ cell . toWidget . toMarkup
|
||||||
|
|
||||||
sortStudyFeaturesSemester :: forall semester. PersistField semester => OpticSortColumn semester
|
sortStudyFeaturesSemester :: forall semester. PersistField semester => OpticSortColumn semester
|
||||||
@ -711,11 +711,11 @@ fltrStudyFeaturesSemester querySemester = singletonMap "features-semester" . Fil
|
|||||||
unSqlProject' = E.unSqlProject (Proxy @StudyFeatures) (Proxy @studyFeatures)
|
unSqlProject' = E.unSqlProject (Proxy @StudyFeatures) (Proxy @studyFeatures)
|
||||||
|
|
||||||
fltrStudyFeaturesSemesterUI :: DBFilterUI
|
fltrStudyFeaturesSemesterUI :: DBFilterUI
|
||||||
fltrStudyFeaturesSemesterUI mPrev = prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field _ Int) (fslI MsgStudyFeatureAgeTable)
|
fltrStudyFeaturesSemesterUI mPrev = prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field _ Int) (fslI MsgTableStudyFeatureAge)
|
||||||
|
|
||||||
|
|
||||||
colFeaturesSemester :: (IsDBTable m c, HasStudyFeatures x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
|
colFeaturesSemester :: (IsDBTable m c, HasStudyFeatures x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
|
||||||
colFeaturesSemester feature = sortable (Just "features-semester") (i18nCell MsgStudyFeatureAgeTable) $ maybe mempty cellHasSemester . firstOf feature
|
colFeaturesSemester feature = sortable (Just "features-semester") (i18nCell MsgTableStudyFeatureAge) $ maybe mempty cellHasSemester . firstOf feature
|
||||||
|
|
||||||
sortFeaturesSemester :: IsString d => (t -> E.SqlExpr (Maybe (Entity StudyFeatures))) -> (d, SortColumn t r')
|
sortFeaturesSemester :: IsString d => (t -> E.SqlExpr (Maybe (Entity StudyFeatures))) -> (d, SortColumn t r')
|
||||||
sortFeaturesSemester queryFeatures = ("features-semester", SortColumn $ queryFeatures >>> (E.?. StudyFeaturesSemester))
|
sortFeaturesSemester queryFeatures = ("features-semester", SortColumn $ queryFeatures >>> (E.?. StudyFeaturesSemester))
|
||||||
@ -729,11 +729,11 @@ fltrFeaturesSemester queryFeatures = ("features-semester", FilterColumn . mkExac
|
|||||||
|
|
||||||
fltrFeaturesSemesterUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrFeaturesSemesterUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrFeaturesSemesterUI mPrev =
|
fltrFeaturesSemesterUI mPrev =
|
||||||
prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field (YesodDB UniWorX) Int) (fslI MsgStudyFeatureAgeTable)
|
prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field (YesodDB UniWorX) Int) (fslI MsgTableStudyFeatureAge)
|
||||||
|
|
||||||
|
|
||||||
colField :: (IsDBTable m c, HasStudyTerms x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
|
colField :: (IsDBTable m c, HasStudyTerms x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
|
||||||
colField terms = sortable (Just "terms") (i18nCell MsgStudyTermTable) $ maybe mempty cellHasField . firstOf terms
|
colField terms = sortable (Just "terms") (i18nCell MsgTableStudyTerm) $ maybe mempty cellHasField . firstOf terms
|
||||||
|
|
||||||
sortField :: IsString d => (t -> E.SqlExpr (Maybe (Entity StudyTerms))) -> (d, SortColumn t r')
|
sortField :: IsString d => (t -> E.SqlExpr (Maybe (Entity StudyTerms))) -> (d, SortColumn t r')
|
||||||
sortField queryTerms = ("terms", SortColumn $ queryTerms >>> (E.?. StudyTermsName))
|
sortField queryTerms = ("terms", SortColumn $ queryTerms >>> (E.?. StudyTermsName))
|
||||||
@ -753,7 +753,7 @@ fltrField queryFeatures = ( "terms"
|
|||||||
|
|
||||||
fltrFieldUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
fltrFieldUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
|
||||||
fltrFieldUI mPrev =
|
fltrFieldUI mPrev =
|
||||||
prismAForm (singletonFilter "terms") mPrev $ aopt textField (fslI MsgStudyTermTable)
|
prismAForm (singletonFilter "terms") mPrev $ aopt textField (fslI MsgTableStudyTerm)
|
||||||
|
|
||||||
|
|
||||||
colDegreeShort :: (IsDBTable m c, HasStudyDegree x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
|
colDegreeShort :: (IsDBTable m c, HasStudyDegree x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
|
||||||
|
|||||||
@ -133,7 +133,7 @@ $newline never
|
|||||||
$maybe CorrectionInfo{ciSubmissions} <- Map.lookup shn sheetMap
|
$maybe CorrectionInfo{ciSubmissions} <- Map.lookup shn sheetMap
|
||||||
<td .table__th>#{getLoadSum shn}
|
<td .table__th>#{getLoadSum shn}
|
||||||
<td .table__th>#{ciSubmissions}
|
<td .table__th>#{ciSubmissions}
|
||||||
<td .table__td colspan=3>^{simpleLinkI (SomeMessage MsgMenuCorrectorsChange) (CSheetR tid ssh csh shn SEditR)}
|
<td .table__td colspan=3>^{simpleLinkI (SomeMessage MsgCorrectorsChange) (CSheetR tid ssh csh shn SEditR)}
|
||||||
|
|
||||||
$if not (null assignment)
|
$if not (null assignment)
|
||||||
<tr .table__row>
|
<tr .table__row>
|
||||||
|
|||||||
@ -237,7 +237,7 @@ $# $if NTop (Just 0) < NTop (courseCapacity course)
|
|||||||
$if mayViewAnySheet
|
$if mayViewAnySheet
|
||||||
_{MsgCourseSheetsFoundHere}: #
|
_{MsgCourseSheetsFoundHere}: #
|
||||||
<a href=@{CourseR tid ssh csh SheetListR}>
|
<a href=@{CourseR tid ssh csh SheetListR}>
|
||||||
_{MsgMenuSheetList}
|
_{MsgSheetListCourse}
|
||||||
$else
|
$else
|
||||||
_{MsgCourseSheetsNoneVisible}
|
_{MsgCourseSheetsNoneVisible}
|
||||||
$if mayViewMaterials
|
$if mayViewMaterials
|
||||||
@ -245,7 +245,7 @@ $# $if NTop (Just 0) < NTop (courseCapacity course)
|
|||||||
$if mayViewAnyMaterial
|
$if mayViewAnyMaterial
|
||||||
_{MsgCourseMaterialsFoundHere}: #
|
_{MsgCourseMaterialsFoundHere}: #
|
||||||
<a href=@{CourseR tid ssh csh MaterialListR}>
|
<a href=@{CourseR tid ssh csh MaterialListR}>
|
||||||
_{MsgMenuMaterialList}
|
_{MsgMaterialList}
|
||||||
$else
|
$else
|
||||||
_{MsgCourseMaterialsNoneVisible}
|
_{MsgCourseMaterialsNoneVisible}
|
||||||
<p .explanation>
|
<p .explanation>
|
||||||
|
|||||||
@ -24,6 +24,6 @@ $if mayAccept
|
|||||||
^{acceptWgt}
|
^{acceptWgt}
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>_{MsgMenuCourseApplications}
|
<h2>_{MsgCourseApplications}
|
||||||
^{notification NotificationBroad =<< messageWidget Warning studyFeaturesWarning}
|
^{notification NotificationBroad =<< messageWidget Warning studyFeaturesWarning}
|
||||||
^{table}
|
^{table}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ $newline never
|
|||||||
$maybe sex <- guardOn showSex =<< userSex
|
$maybe sex <- guardOn showSex =<< userSex
|
||||||
<dt .deflist__dt>_{MsgSex}
|
<dt .deflist__dt>_{MsgSex}
|
||||||
<dd .deflist__dd>_{sex}
|
<dd .deflist__dd>_{sex}
|
||||||
<dt .deflist__dt>_{MsgEmailTable}
|
<dt .deflist__dt>_{MsgTableEmail}
|
||||||
<dd .deflist__dd>#{mailtoHtml userEmail}
|
<dd .deflist__dd>#{mailtoHtml userEmail}
|
||||||
$maybe date <- mRegAt
|
$maybe date <- mRegAt
|
||||||
<dt .deflist__dt>_{MsgRegisteredSince}
|
<dt .deflist__dt>_{MsgRegisteredSince}
|
||||||
@ -38,12 +38,12 @@ $newline never
|
|||||||
<div .scrolltable>
|
<div .scrolltable>
|
||||||
<table .table.table--striped.table--hover.table--condensed>
|
<table .table.table--striped.table--hover.table--condensed>
|
||||||
<tr .table__row>
|
<tr .table__row>
|
||||||
<th .table__th>_{MsgStudyTermTable}
|
<th .table__th>_{MsgTableStudyTerm}
|
||||||
<th .table__th>_{MsgStudyFeatureDegreeTable}
|
<th .table__th>_{MsgTableStudyFeatureDegree}
|
||||||
<th .table__th>_{MsgStudyFeatureTypeTable}
|
<th .table__th>_{MsgTableStudyFeatureType}
|
||||||
<th .table__th>_{MsgStudyFeatureAgeTable}
|
<th .table__th>_{MsgTableStudyFeatureAge}
|
||||||
<th .table__th>_{MsgStudyFeatureValidTable}
|
<th .table__th>_{MsgTableStudyFeatureValid}
|
||||||
<th .table__th>_{MsgStudyFeatureUpdateTable}
|
<th .table__th>_{MsgTableStudyFeatureUpdate}
|
||||||
$forall ((Entity _ StudyFeatures{studyFeaturesType, studyFeaturesSemester, studyFeaturesValid, studyFeaturesFirstObserved, studyFeaturesLastObserved}), (Entity _ degree), (Entity _ field)) <- studies
|
$forall ((Entity _ StudyFeatures{studyFeaturesType, studyFeaturesSemester, studyFeaturesValid, studyFeaturesFirstObserved, studyFeaturesLastObserved}), (Entity _ degree), (Entity _ field)) <- studies
|
||||||
<tr .table__row>
|
<tr .table__row>
|
||||||
<td .table__td>_{field}
|
<td .table__td>_{field}
|
||||||
|
|||||||
@ -2,20 +2,20 @@ $newline never
|
|||||||
<div .two-columns>
|
<div .two-columns>
|
||||||
<section>
|
<section>
|
||||||
<h2 id="data-protection">
|
<h2 id="data-protection">
|
||||||
_{MsgMenuDataProt}
|
_{MsgHeadingDataProt}
|
||||||
^{dataProtection}
|
^{dataProtection}
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2 id="terms-of-use">
|
<h2 id="terms-of-use">
|
||||||
_{MsgMenuTermsUse}
|
_{MsgHeadingTermsUse}
|
||||||
^{termsUse}
|
^{termsUse}
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2 id="copyright">
|
<h2 id="copyright">
|
||||||
_{MsgMenuCopyright}
|
_{MsgHeadingCopyright}
|
||||||
^{copyright}
|
^{copyright}
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2 id="imprint">
|
<h2 id="imprint">
|
||||||
_{MsgMenuImprint}
|
_{MsgHeadingImprint}
|
||||||
^{imprint}
|
^{imprint}
|
||||||
|
|||||||
@ -30,7 +30,7 @@ $newline never
|
|||||||
_{SomeMessage MsgMailAllocationStaffRegisterNewCourse}
|
_{SomeMessage MsgMailAllocationStaffRegisterNewCourse}
|
||||||
<br>
|
<br>
|
||||||
<a href=@{CourseNewR}>
|
<a href=@{CourseNewR}>
|
||||||
_{SomeMessage MsgMenuCourseNew}
|
_{SomeMessage MsgCourseNew}
|
||||||
|
|
||||||
$if doRegisterDeadlines
|
$if doRegisterDeadlines
|
||||||
$if singleRegisterDeadline
|
$if singleRegisterDeadline
|
||||||
|
|||||||
@ -19,7 +19,7 @@ $newline never
|
|||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
#{matnr}
|
#{matnr}
|
||||||
<dt .deflist__dt>
|
<dt .deflist__dt>
|
||||||
_{MsgEmailTable}
|
_{MsgTableEmail}
|
||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
#{mailtoHtml userEmail}
|
#{mailtoHtml userEmail}
|
||||||
$if userEmail /= userDisplayEmail
|
$if userEmail /= userDisplayEmail
|
||||||
@ -78,12 +78,12 @@ $newline never
|
|||||||
<div .scrolltable>
|
<div .scrolltable>
|
||||||
<table .table.table--striped.table--hover.table--condensed>
|
<table .table.table--striped.table--hover.table--condensed>
|
||||||
<tr .table__row>
|
<tr .table__row>
|
||||||
<th .table__th>_{MsgStudyTermTable}
|
<th .table__th>_{MsgTableStudyTerm}
|
||||||
<th .table__th>_{MsgStudyFeatureDegreeTable}
|
<th .table__th>_{MsgTableStudyFeatureDegree}
|
||||||
<th .table__th>_{MsgStudyFeatureTypeTable}
|
<th .table__th>_{MsgTableStudyFeatureType}
|
||||||
<th .table__th>_{MsgStudyFeatureAgeTable}
|
<th .table__th>_{MsgTableStudyFeatureAge}
|
||||||
<th .table__th>_{MsgStudyFeatureValidTable}
|
<th .table__th>_{MsgTableStudyFeatureValid}
|
||||||
<th .table__th>_{MsgStudyFeatureUpdateTable}
|
<th .table__th>_{MsgTableStudyFeatureUpdate}
|
||||||
|
|
||||||
$forall ((Entity _ StudyFeatures{studyFeaturesType, studyFeaturesSemester, studyFeaturesValid, studyFeaturesFirstObserved, studyFeaturesLastObserved}), (Entity _ degree), (Entity _ field)) <- studies
|
$forall ((Entity _ StudyFeatures{studyFeaturesType, studyFeaturesSemester, studyFeaturesValid, studyFeaturesFirstObserved, studyFeaturesLastObserved}), (Entity _ degree), (Entity _ field)) <- studies
|
||||||
<tr.table__row>
|
<tr.table__row>
|
||||||
|
|||||||
Reference in New Issue
Block a user