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
|
||||
AllocationTitle termText@Text ssh'@SchoolShorthand allocation@AllocationName: #{termText} - #{ssh'}: #{allocation}
|
||||
AllocationShortTitle termText@Text ssh'@SchoolShorthand ash@AllocationShorthand: #{termText} - #{ssh'} - #{ash}
|
||||
AllocationSchool: Institut
|
||||
AllocationSemester: Semester
|
||||
AllocationDescription: Beschreibung
|
||||
AllocationStaffDescription: Beschreibung für Dozenten
|
||||
AllocationStaffRegisterFrom: Eintragung der Kurse ab
|
||||
AllocationStaffRegister: Eintragung der Kurse
|
||||
AllocationRegisterFrom: Bewerbung ab
|
||||
@ -1651,6 +1654,13 @@ AllocationRegisterClosed: Die Zentralanmeldung ist aktuell geschlossen.
|
||||
AllocationRegisterOpensIn difftime@Text: Die Zentralanmeldung öffnet voraussichtlich in #{difftime}
|
||||
AllocationStaffAllocationFrom: Bewertung der Bewerbungen ab
|
||||
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
|
||||
AllocationNoApplication: Keine Bewerbung
|
||||
AllocationPriority: Priorität
|
||||
|
||||
@ -23,11 +23,16 @@ getAShowR tid ssh ash = do
|
||||
resultCourseApplication = _2 . _Just
|
||||
resultHasTemplate :: Simple Field3 a (E.Value Bool) => Lens' a Bool
|
||||
resultHasTemplate = _3 . _Value
|
||||
resultIsRegistered :: Simple Field4 a (E.Value Bool) => Lens' a Bool
|
||||
resultIsRegistered = _4 . _Value
|
||||
|
||||
(Entity aId Allocation{..}, courses, registration) <- runDB $ do
|
||||
alloc@(Entity aId _) <- getBy404 $ TermSchoolAllocationShort tid ssh ash
|
||||
(Entity aId Allocation{..}, School{..}, isAnyLecturer, courses, registration) <- runDB $ do
|
||||
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.&&. courseApplication E.?. CourseApplicationUser E.==. E.val muid
|
||||
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]
|
||||
let hasTemplate = E.exists . E.from $ \courseAppInstructionFile ->
|
||||
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
|
||||
|
||||
return (alloc, nubOn (view $ resultCourse . _entityKey) courses, registration)
|
||||
isAnyLecturer <- hasWriteAccessTo CourseNewR
|
||||
|
||||
return (alloc, school, isAnyLecturer, nubOn (view $ resultCourse . _entityKey) courses, registration)
|
||||
|
||||
MsgRenderer mr <- getMsgRenderer
|
||||
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
|
||||
hasApplicationTemplate = cEntry ^. resultHasTemplate
|
||||
mApp = cEntry ^? resultCourseApplication
|
||||
isRegistered = cEntry ^. resultIsRegistered
|
||||
cID <- encrypt cid :: WidgetFor UniWorX CryptoUUIDCourse
|
||||
mayApply <- hasWriteAccessTo . AllocationR tid ssh ash $ AApplyR cID
|
||||
isLecturer <- hasWriteAccessTo $ CourseR courseTerm courseSchool courseShorthand CEditR
|
||||
|
||||
@ -1,13 +1,24 @@
|
||||
$newline never
|
||||
<section>
|
||||
$# <h2>
|
||||
$# _{MsgAllocationData}
|
||||
<dl .deflist>
|
||||
<dt .deflist__dt>
|
||||
_{MsgAllocationSemester}
|
||||
<dd .deflist__dd>
|
||||
_{unTermKey allocationTerm}
|
||||
<dt .deflist__dt>
|
||||
_{MsgAllocationSchool}
|
||||
<dd .deflist__dd>
|
||||
#{schoolName}
|
||||
$maybe desc <- allocationDescription
|
||||
<dt .deflist__dt>
|
||||
_{MsgAllocationDescription}
|
||||
<dd .deflist__dd>
|
||||
#{desc}
|
||||
$maybe desc <- guardOn isAnyLecturer =<< allocationStaffDescription
|
||||
<dt .deflist__dt>
|
||||
_{MsgAllocationStaffDescription}
|
||||
<dd .deflist__dd>
|
||||
#{desc}
|
||||
$maybe fromT <- allocationStaffRegisterFrom
|
||||
<dt .deflist__dt>
|
||||
$maybe _ <- allocationStaffRegisterTo
|
||||
@ -32,14 +43,36 @@ $newline never
|
||||
_{MsgAllocationStaffAllocationFrom}
|
||||
<dd .deflist__dd>
|
||||
^{formatTimeRangeW SelFormatDateTime fromT allocationStaffAllocationTo}
|
||||
|
||||
$# TODO show datetime of automatic allocation
|
||||
$#
|
||||
$# <dt .deflist__dt>
|
||||
$# _{MsgAllocationProcess}
|
||||
$# <dd .deflist__dd>
|
||||
$# ^{formatTimeRangeW SelFormatDateTime fromT allocationProcess}
|
||||
$#
|
||||
$maybe fromT <- allocationRegisterByStaffFrom
|
||||
<dt .deflist__dt>
|
||||
$maybe _ <- allocationRegisterByStaffTo
|
||||
_{MsgAllocationRegisterByStaff}
|
||||
<span .tooltip>
|
||||
<span .tooltip__handle>
|
||||
<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>
|
||||
<h2>
|
||||
|
||||
@ -17,10 +17,11 @@
|
||||
display: grid;
|
||||
grid-template-columns: minmax(105px, 1fr) 9fr;
|
||||
grid-template-areas:
|
||||
'name name '
|
||||
'prio-label prio '
|
||||
'instr-label instr '
|
||||
'form-label form ';
|
||||
'name name '
|
||||
'. registered '
|
||||
'prio-label prio '
|
||||
'instr-label instr '
|
||||
'form-label form ';
|
||||
|
||||
grid-gap: 5px 7px;
|
||||
margin: 12px 0;
|
||||
@ -41,6 +42,10 @@
|
||||
background-color: rgba(0, 0, 0, 0.015);
|
||||
}
|
||||
|
||||
.allocation-course__registered {
|
||||
grid-area: registered;
|
||||
}
|
||||
|
||||
.allocation-course__priority {
|
||||
grid-area: prio;
|
||||
}
|
||||
@ -84,6 +89,7 @@
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-areas:
|
||||
'name '
|
||||
'registered '
|
||||
'prio-label '
|
||||
'prio '
|
||||
'instr-label'
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
$if isRegistered
|
||||
<div .allocation-course__registered>
|
||||
#{iconOK}
|
||||
\ _{MsgRegistered}
|
||||
$if is _Just muid
|
||||
<div .allocation-course__priority-label .allocation__label>
|
||||
_{MsgAllocationPriority}
|
||||
|
||||
@ -29,12 +29,13 @@ $newline text
|
||||
Studierende können sich nur in diesem Zeitraum
|
||||
auf Plätze in Kursen einer Zentralanmeldung bewerben.
|
||||
<p>
|
||||
Bewerber können jedem Kurs der Zentralanmeldung eine Priorität
|
||||
zuweisen, zwischen "dieser Kurs wäre meine erste Wahl"
|
||||
und "diesen Kurs besuche ich auf keinen Fall".
|
||||
Bewerber können jedem Kurs der Zentralanmeldung eine Priorität zuweisen,
|
||||
zwischen "dieser Kurs wäre meine erste Wahl" und "diesen Kurs besuche
|
||||
ich nur, wenn ich keinen anderen Platz kriege".
|
||||
Es kann auch mehreren Kursen die gleiche Priorität eingeräumt werden.
|
||||
<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>
|
||||
Studierende können auch mehr als einen Platz
|
||||
in verschiedenen Kursen einer Zentralanmeldung anfordern,
|
||||
@ -64,7 +65,6 @@ $newline text
|
||||
und der Bewertung durch den Veranstalter auf die Bewerber verteilt.
|
||||
<p>
|
||||
Die Bewerber werden diekt in den jeweiligen Kursen angemeldet.
|
||||
Eine Abmeldung durch Studierende ist nicht erlaubt.
|
||||
Übernommene Bewerber, welche einen zugeteilten Platz
|
||||
ohne Angabe eines triftigen Grundes nicht antreten,
|
||||
werden in zukünftigen Zentralanmeldungen
|
||||
@ -78,9 +78,8 @@ $newline text
|
||||
Der Ablauf einer Zentralanmeldung kann unter Umständen noch variieren.
|
||||
<em>
|
||||
Insbesondere: #
|
||||
Fehlt in der Übersichtsseite einer Zentralanmeldung
|
||||
die Angabe einer dieser Phasen, dann wurde der entsprechende Zeitraum
|
||||
leider noch nicht festgelegt!
|
||||
Fehlt in der Übersichtsseite einer Zentralanmeldung die Angabe einer dieser
|
||||
Phasen, dann wurden die entsprechenden Zeiten noch nicht festgelegt!
|
||||
<p>
|
||||
Mehrere Zentralanmeldungen werden völlig unabhängig voneinander
|
||||
abgewickelt.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user