$newline never
<section>
  <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
          _{MsgAllocationStaffRegister}
        $nothing
          _{MsgAllocationStaffRegisterFrom}
      <dd .deflist__dd>
        ^{formatTimeRangeW SelFormatDateTime fromT allocationStaffRegisterTo}
    $maybe fromT <- allocationRegisterFrom
      <dt .deflist__dt>
        $maybe _ <- allocationRegisterTo
          _{MsgAllocationRegister}
        $nothing
          _{MsgAllocationRegisterFrom}
      <dd .deflist__dd>
        ^{formatTimeRangeW SelFormatDateTime fromT allocationRegisterTo}
    $maybe fromT <- allocationStaffAllocationFrom
      <dt .deflist__dt>
        $maybe _ <- allocationStaffAllocationTo
          _{MsgAllocationStaffAllocation}
        $nothing
          _{MsgAllocationStaffAllocationFrom}
      <dd .deflist__dd>
        ^{formatTimeRangeW SelFormatDateTime fromT allocationStaffAllocationTo}
    $maybe fromT <- allocationRegisterByStaffFrom
      <dt .deflist__dt>
        $maybe _ <- allocationRegisterByStaffTo
          _{MsgAllocationRegisterByStaff}
          ^{iconTooltip (i18n MsgAllocationRegisterByStaffTip) Nothing True}
        $nothing
          _{MsgAllocationRegisterByStaffFrom}
          ^{iconTooltip (i18n MsgAllocationRegisterByStaffFromTip) Nothing True}
      <dd .deflist__dd>
        ^{formatTimeRangeW SelFormatDateTime fromT allocationRegisterByStaffTo}
    $maybe fromT <- allocationRegisterByCourse
      <dt .deflist__dt>
        _{MsgAllocationRegisterByCourseFrom}
        ^{iconTooltip (i18n MsgAllocationRegisterByCourseFromTip) Nothing True}
      <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>
    _{MsgAllocationParticipation}
  $if is _Nothing muid
    <p>
       _{MsgAllocationParticipationLoginFirst}
  $elseif mayRegister
    $# existing registrations may also be edited in this case
    ^{registerForm'}
  $elseif is _Just registration
    $# show existing registration even if it cannot be changed now
    $maybe Entity _ AllocationUser{allocationUserTotalCourses} <- registration
      <dl .deflist>
        <dt .deflist__dt>
          _{MsgAllocationTotalCourses}
        <dd .deflist__dd>
          #{allocationUserTotalCourses}
  $else
    $# Provide helpful information for confused students who cannot register now
    $maybe daysToOpen <- daysToRegistrationStart
      <p>
        _{MsgAllocationRegisterOpensIn (formatDiffDays daysToOpen)}
    $nothing
      <p>
        _{MsgAllocationRegisterClosed}
    <p>
      $# This redundant links prevents useless help requests from frantic users
      ^{allocationInfoModal}

$if not (null courseWidgets)
  <section .allocation>
    <h2>
      _{MsgAllocationCourses}
    <div .allocation__explanation .allocation__label>
      <p>_{MsgAllocationPriorityTip}
      <p>_{MsgAllocationPriorityRelative}
      <p>_{MsgApplicationEditTip}
      $if is _Just muid
        <p .allocation__state>
          _{MsgAllocationNumCoursesAvailableApplied numCourses numAppliedCourses}
    <div .allocation__courses>
      $forall courseWgt <- courseWidgets
        ^{courseWgt}
