feat(allocations): show more information
This commit is contained in:
parent
2e102f6baf
commit
b7c54df913
@ -1642,7 +1642,10 @@ AllocationAppliedCourses: Bewerbungen
|
|||||||
AllocationNumCoursesAvailableApplied available@Int applied@Int: Sie haben sich bisher für #{applied}/#{available} #{pluralDE applied "Kurs" "Kursen"} beworben
|
AllocationNumCoursesAvailableApplied available@Int applied@Int: Sie haben sich bisher für #{applied}/#{available} #{pluralDE applied "Kurs" "Kursen"} beworben
|
||||||
AllocationTitle termText@Text ssh'@SchoolShorthand allocation@AllocationName: #{termText} - #{ssh'}: #{allocation}
|
AllocationTitle termText@Text ssh'@SchoolShorthand allocation@AllocationName: #{termText} - #{ssh'}: #{allocation}
|
||||||
AllocationShortTitle termText@Text ssh'@SchoolShorthand ash@AllocationShorthand: #{termText} - #{ssh'} - #{ash}
|
AllocationShortTitle termText@Text ssh'@SchoolShorthand ash@AllocationShorthand: #{termText} - #{ssh'} - #{ash}
|
||||||
|
AllocationSchool: Institut
|
||||||
|
AllocationSemester: Semester
|
||||||
AllocationDescription: Beschreibung
|
AllocationDescription: Beschreibung
|
||||||
|
AllocationStaffDescription: Beschreibung für Dozenten
|
||||||
AllocationStaffRegisterFrom: Eintragung der Kurse ab
|
AllocationStaffRegisterFrom: Eintragung der Kurse ab
|
||||||
AllocationStaffRegister: Eintragung der Kurse
|
AllocationStaffRegister: Eintragung der Kurse
|
||||||
AllocationRegisterFrom: Bewerbung ab
|
AllocationRegisterFrom: Bewerbung ab
|
||||||
@ -1651,6 +1654,13 @@ AllocationRegisterClosed: Die Zentralanmeldung ist aktuell geschlossen.
|
|||||||
AllocationRegisterOpensIn difftime@Text: Die Zentralanmeldung öffnet voraussichtlich in #{difftime}
|
AllocationRegisterOpensIn difftime@Text: Die Zentralanmeldung öffnet voraussichtlich in #{difftime}
|
||||||
AllocationStaffAllocationFrom: Bewertung der Bewerbungen ab
|
AllocationStaffAllocationFrom: Bewertung der Bewerbungen ab
|
||||||
AllocationStaffAllocation: Bewertung der Bewerbungen
|
AllocationStaffAllocation: Bewertung der Bewerbungen
|
||||||
|
AllocationRegisterByStaff: An- und Abmeldung durch Kursverwalter
|
||||||
|
AllocationRegisterByStaffFrom: An- und Abmeldung durch Kursverwalter ab
|
||||||
|
AllocationRegisterByStaffTip: In diesem Zeitraum können Kursverwalter Teilnehmer zu und von ihren Kursen an- und abmelden.
|
||||||
|
AllocationRegisterByStaffFromTip: Ab diesem Zeitpunkt können Kursverwalter Teilnehmer zu und von ihren Kursen an- und abmelden.
|
||||||
|
AllocationRegisterByCourseFrom: Direkte An- und Abmeldung ab
|
||||||
|
AllocationRegisterByCourseFromTip: Frühestens ab diesem Zeitpunkt ist die eigentständige An- und Abmeldung zu und von den Kursen, die an der Zentralanmeldung teilnehmen, möglich. Kontrolle über die genauen Fristen haben die Kursverwalter.
|
||||||
|
AllocationOverrideDeregister: Abmeldung von den Kursen nur bis
|
||||||
AllocationProcess: Platzvergabe
|
AllocationProcess: Platzvergabe
|
||||||
AllocationNoApplication: Keine Bewerbung
|
AllocationNoApplication: Keine Bewerbung
|
||||||
AllocationPriority: Priorität
|
AllocationPriority: Priorität
|
||||||
|
|||||||
@ -23,11 +23,16 @@ getAShowR tid ssh ash = do
|
|||||||
resultCourseApplication = _2 . _Just
|
resultCourseApplication = _2 . _Just
|
||||||
resultHasTemplate :: Simple Field3 a (E.Value Bool) => Lens' a Bool
|
resultHasTemplate :: Simple Field3 a (E.Value Bool) => Lens' a Bool
|
||||||
resultHasTemplate = _3 . _Value
|
resultHasTemplate = _3 . _Value
|
||||||
|
resultIsRegistered :: Simple Field4 a (E.Value Bool) => Lens' a Bool
|
||||||
|
resultIsRegistered = _4 . _Value
|
||||||
|
|
||||||
(Entity aId Allocation{..}, courses, registration) <- runDB $ do
|
(Entity aId Allocation{..}, School{..}, isAnyLecturer, courses, registration) <- runDB $ do
|
||||||
alloc@(Entity aId _) <- getBy404 $ TermSchoolAllocationShort tid ssh ash
|
alloc@(Entity aId Allocation{allocationSchool}) <- getBy404 $ TermSchoolAllocationShort tid ssh ash
|
||||||
|
school <- getJust allocationSchool
|
||||||
|
|
||||||
courses <- E.select . E.from $ \((allocationCourse `E.InnerJoin` course) `E.LeftOuterJoin` courseApplication) -> do
|
courses <- E.select . E.from $ \((allocationCourse `E.InnerJoin` course) `E.LeftOuterJoin` courseApplication `E.LeftOuterJoin` registration) -> do
|
||||||
|
E.on $ registration E.?. CourseParticipantCourse E.==. E.just (course E.^. CourseId)
|
||||||
|
E.&&. registration E.?. CourseParticipantUser E.==. E.val muid
|
||||||
E.on $ courseApplication E.?. CourseApplicationCourse E.==. E.just (course E.^. CourseId)
|
E.on $ courseApplication E.?. CourseApplicationCourse E.==. E.just (course E.^. CourseId)
|
||||||
E.&&. courseApplication E.?. CourseApplicationUser E.==. E.val muid
|
E.&&. courseApplication E.?. CourseApplicationUser E.==. E.val muid
|
||||||
E.&&. courseApplication E.?. CourseApplicationAllocation E.==. E.just (E.just $ E.val aId)
|
E.&&. courseApplication E.?. CourseApplicationAllocation E.==. E.just (E.just $ E.val aId)
|
||||||
@ -36,11 +41,13 @@ getAShowR tid ssh ash = do
|
|||||||
E.orderBy [E.asc $ course E.^. CourseName]
|
E.orderBy [E.asc $ course E.^. CourseName]
|
||||||
let hasTemplate = E.exists . E.from $ \courseAppInstructionFile ->
|
let hasTemplate = E.exists . E.from $ \courseAppInstructionFile ->
|
||||||
E.where_ $ courseAppInstructionFile E.^. CourseAppInstructionFileCourse E.==. course E.^. CourseId
|
E.where_ $ courseAppInstructionFile E.^. CourseAppInstructionFileCourse E.==. course E.^. CourseId
|
||||||
return (course, courseApplication, hasTemplate)
|
return (course, courseApplication, hasTemplate, E.not_ . E.isNothing $ registration E.?. CourseParticipantId)
|
||||||
|
|
||||||
registration <- fmap join . for muid $ getBy . UniqueAllocationUser aId
|
registration <- fmap join . for muid $ getBy . UniqueAllocationUser aId
|
||||||
|
|
||||||
return (alloc, nubOn (view $ resultCourse . _entityKey) courses, registration)
|
isAnyLecturer <- hasWriteAccessTo CourseNewR
|
||||||
|
|
||||||
|
return (alloc, school, isAnyLecturer, nubOn (view $ resultCourse . _entityKey) courses, registration)
|
||||||
|
|
||||||
MsgRenderer mr <- getMsgRenderer
|
MsgRenderer mr <- getMsgRenderer
|
||||||
let title = MsgAllocationTitle (mr . ShortTermIdentifier $ unTermKey allocationTerm) (unSchoolKey allocationSchool) allocationName
|
let title = MsgAllocationTitle (mr . ShortTermIdentifier $ unTermKey allocationTerm) (unSchoolKey allocationSchool) allocationName
|
||||||
@ -68,6 +75,7 @@ getAShowR tid ssh ash = do
|
|||||||
let Entity cid Course{..} = cEntry ^. resultCourse
|
let Entity cid Course{..} = cEntry ^. resultCourse
|
||||||
hasApplicationTemplate = cEntry ^. resultHasTemplate
|
hasApplicationTemplate = cEntry ^. resultHasTemplate
|
||||||
mApp = cEntry ^? resultCourseApplication
|
mApp = cEntry ^? resultCourseApplication
|
||||||
|
isRegistered = cEntry ^. resultIsRegistered
|
||||||
cID <- encrypt cid :: WidgetFor UniWorX CryptoUUIDCourse
|
cID <- encrypt cid :: WidgetFor UniWorX CryptoUUIDCourse
|
||||||
mayApply <- hasWriteAccessTo . AllocationR tid ssh ash $ AApplyR cID
|
mayApply <- hasWriteAccessTo . AllocationR tid ssh ash $ AApplyR cID
|
||||||
isLecturer <- hasWriteAccessTo $ CourseR courseTerm courseSchool courseShorthand CEditR
|
isLecturer <- hasWriteAccessTo $ CourseR courseTerm courseSchool courseShorthand CEditR
|
||||||
|
|||||||
@ -1,13 +1,24 @@
|
|||||||
$newline never
|
$newline never
|
||||||
<section>
|
<section>
|
||||||
$# <h2>
|
|
||||||
$# _{MsgAllocationData}
|
|
||||||
<dl .deflist>
|
<dl .deflist>
|
||||||
|
<dt .deflist__dt>
|
||||||
|
_{MsgAllocationSemester}
|
||||||
|
<dd .deflist__dd>
|
||||||
|
_{unTermKey allocationTerm}
|
||||||
|
<dt .deflist__dt>
|
||||||
|
_{MsgAllocationSchool}
|
||||||
|
<dd .deflist__dd>
|
||||||
|
#{schoolName}
|
||||||
$maybe desc <- allocationDescription
|
$maybe desc <- allocationDescription
|
||||||
<dt .deflist__dt>
|
<dt .deflist__dt>
|
||||||
_{MsgAllocationDescription}
|
_{MsgAllocationDescription}
|
||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
#{desc}
|
#{desc}
|
||||||
|
$maybe desc <- guardOn isAnyLecturer =<< allocationStaffDescription
|
||||||
|
<dt .deflist__dt>
|
||||||
|
_{MsgAllocationStaffDescription}
|
||||||
|
<dd .deflist__dd>
|
||||||
|
#{desc}
|
||||||
$maybe fromT <- allocationStaffRegisterFrom
|
$maybe fromT <- allocationStaffRegisterFrom
|
||||||
<dt .deflist__dt>
|
<dt .deflist__dt>
|
||||||
$maybe _ <- allocationStaffRegisterTo
|
$maybe _ <- allocationStaffRegisterTo
|
||||||
@ -32,14 +43,36 @@ $newline never
|
|||||||
_{MsgAllocationStaffAllocationFrom}
|
_{MsgAllocationStaffAllocationFrom}
|
||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
^{formatTimeRangeW SelFormatDateTime fromT allocationStaffAllocationTo}
|
^{formatTimeRangeW SelFormatDateTime fromT allocationStaffAllocationTo}
|
||||||
|
$maybe fromT <- allocationRegisterByStaffFrom
|
||||||
$# TODO show datetime of automatic allocation
|
<dt .deflist__dt>
|
||||||
$#
|
$maybe _ <- allocationRegisterByStaffTo
|
||||||
$# <dt .deflist__dt>
|
_{MsgAllocationRegisterByStaff}
|
||||||
$# _{MsgAllocationProcess}
|
<span .tooltip>
|
||||||
$# <dd .deflist__dd>
|
<span .tooltip__handle>
|
||||||
$# ^{formatTimeRangeW SelFormatDateTime fromT allocationProcess}
|
<span .tooltip__content>
|
||||||
$#
|
_{MsgAllocationRegisterByStaffTip}
|
||||||
|
$nothing
|
||||||
|
_{MsgAllocationRegisterByStaffFrom}
|
||||||
|
<span .tooltip>
|
||||||
|
<span .tooltip__handle>
|
||||||
|
<span .tooltip__content>
|
||||||
|
_{MsgAllocationRegisterByStaffFromTip}
|
||||||
|
<dd .deflist__dd>
|
||||||
|
^{formatTimeRangeW SelFormatDateTime fromT allocationRegisterByStaffTo}
|
||||||
|
$maybe fromT <- allocationRegisterByCourse
|
||||||
|
<dt .deflist__dt>
|
||||||
|
_{MsgAllocationRegisterByCourseFrom}
|
||||||
|
<span .tooltip>
|
||||||
|
<span .tooltip__handle>
|
||||||
|
<span .tooltip__content>
|
||||||
|
_{MsgAllocationRegisterByCourseFromTip}
|
||||||
|
<dd .deflist__dd>
|
||||||
|
^{formatTimeW SelFormatDateTime fromT}
|
||||||
|
$maybe toT <- allocationOverrideDeregister
|
||||||
|
<dt .deflist__dt>
|
||||||
|
_{MsgAllocationOverrideDeregister}
|
||||||
|
<dd .deflist__dd>
|
||||||
|
<p>^{formatTimeW SelFormatDateTime toT}
|
||||||
|
|
||||||
<section id=allocation-participation>
|
<section id=allocation-participation>
|
||||||
<h2>
|
<h2>
|
||||||
|
|||||||
@ -17,10 +17,11 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: minmax(105px, 1fr) 9fr;
|
grid-template-columns: minmax(105px, 1fr) 9fr;
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
'name name '
|
'name name '
|
||||||
'prio-label prio '
|
'. registered '
|
||||||
'instr-label instr '
|
'prio-label prio '
|
||||||
'form-label form ';
|
'instr-label instr '
|
||||||
|
'form-label form ';
|
||||||
|
|
||||||
grid-gap: 5px 7px;
|
grid-gap: 5px 7px;
|
||||||
margin: 12px 0;
|
margin: 12px 0;
|
||||||
@ -41,6 +42,10 @@
|
|||||||
background-color: rgba(0, 0, 0, 0.015);
|
background-color: rgba(0, 0, 0, 0.015);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.allocation-course__registered {
|
||||||
|
grid-area: registered;
|
||||||
|
}
|
||||||
|
|
||||||
.allocation-course__priority {
|
.allocation-course__priority {
|
||||||
grid-area: prio;
|
grid-area: prio;
|
||||||
}
|
}
|
||||||
@ -84,6 +89,7 @@
|
|||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
'name '
|
'name '
|
||||||
|
'registered '
|
||||||
'prio-label '
|
'prio-label '
|
||||||
'prio '
|
'prio '
|
||||||
'instr-label'
|
'instr-label'
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
$if isRegistered
|
||||||
|
<div .allocation-course__registered>
|
||||||
|
#{iconOK}
|
||||||
|
\ _{MsgRegistered}
|
||||||
$if is _Just muid
|
$if is _Just muid
|
||||||
<div .allocation-course__priority-label .allocation__label>
|
<div .allocation-course__priority-label .allocation__label>
|
||||||
_{MsgAllocationPriority}
|
_{MsgAllocationPriority}
|
||||||
|
|||||||
@ -29,12 +29,13 @@ $newline text
|
|||||||
Studierende können sich nur in diesem Zeitraum
|
Studierende können sich nur in diesem Zeitraum
|
||||||
auf Plätze in Kursen einer Zentralanmeldung bewerben.
|
auf Plätze in Kursen einer Zentralanmeldung bewerben.
|
||||||
<p>
|
<p>
|
||||||
Bewerber können jedem Kurs der Zentralanmeldung eine Priorität
|
Bewerber können jedem Kurs der Zentralanmeldung eine Priorität zuweisen,
|
||||||
zuweisen, zwischen "dieser Kurs wäre meine erste Wahl"
|
zwischen "dieser Kurs wäre meine erste Wahl" und "diesen Kurs besuche
|
||||||
und "diesen Kurs besuche ich auf keinen Fall".
|
ich nur, wenn ich keinen anderen Platz kriege".
|
||||||
Es kann auch mehreren Kursen die gleiche Priorität eingeräumt werden.
|
Es kann auch mehreren Kursen die gleiche Priorität eingeräumt werden.
|
||||||
<p>
|
<p>
|
||||||
Bewerbungen für und Prioritisierung der Kurse können innerhalb des Bewerbungszeitraums beliebig angepasst und zurückgezogen werden.
|
Bewerbungen für und Prioritisierung der Kurse können innerhalb des
|
||||||
|
Bewerbungszeitraums beliebig angepasst und zurückgezogen werden.
|
||||||
<p>
|
<p>
|
||||||
Studierende können auch mehr als einen Platz
|
Studierende können auch mehr als einen Platz
|
||||||
in verschiedenen Kursen einer Zentralanmeldung anfordern,
|
in verschiedenen Kursen einer Zentralanmeldung anfordern,
|
||||||
@ -64,7 +65,6 @@ $newline text
|
|||||||
und der Bewertung durch den Veranstalter auf die Bewerber verteilt.
|
und der Bewertung durch den Veranstalter auf die Bewerber verteilt.
|
||||||
<p>
|
<p>
|
||||||
Die Bewerber werden diekt in den jeweiligen Kursen angemeldet.
|
Die Bewerber werden diekt in den jeweiligen Kursen angemeldet.
|
||||||
Eine Abmeldung durch Studierende ist nicht erlaubt.
|
|
||||||
Übernommene Bewerber, welche einen zugeteilten Platz
|
Übernommene Bewerber, welche einen zugeteilten Platz
|
||||||
ohne Angabe eines triftigen Grundes nicht antreten,
|
ohne Angabe eines triftigen Grundes nicht antreten,
|
||||||
werden in zukünftigen Zentralanmeldungen
|
werden in zukünftigen Zentralanmeldungen
|
||||||
@ -78,9 +78,8 @@ $newline text
|
|||||||
Der Ablauf einer Zentralanmeldung kann unter Umständen noch variieren.
|
Der Ablauf einer Zentralanmeldung kann unter Umständen noch variieren.
|
||||||
<em>
|
<em>
|
||||||
Insbesondere: #
|
Insbesondere: #
|
||||||
Fehlt in der Übersichtsseite einer Zentralanmeldung
|
Fehlt in der Übersichtsseite einer Zentralanmeldung die Angabe einer dieser
|
||||||
die Angabe einer dieser Phasen, dann wurde der entsprechende Zeitraum
|
Phasen, dann wurden die entsprechenden Zeiten noch nicht festgelegt!
|
||||||
leider noch nicht festgelegt!
|
|
||||||
<p>
|
<p>
|
||||||
Mehrere Zentralanmeldungen werden völlig unabhängig voneinander
|
Mehrere Zentralanmeldungen werden völlig unabhängig voneinander
|
||||||
abgewickelt.
|
abgewickelt.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user