$newline never $# SPDX-FileCopyrightText: 2022 Steffen Jost $# $# SPDX-License-Identifier: AGPL-3.0-or-later $if null quals _{MsgQualificationUserNone} $else $forall (Entity _ quali, mbQualUsr, mbLmsUsr, validity) <- quals

#{qualificationShorthand quali} - #{qualificationName quali} (#{qualificationSchool quali})   #{boolSymbol (E.unValue validity)}
$maybe (Entity _ qualUsr) <- mbQualUsr
_{MsgLmsQualificationValidUntil}
^{formatTimeW SelFormatDate (qualificationUserValidUntil qualUsr)} $if not (qualificationUserScheduleRenewal qualUsr) \ #{icon IconNoNotification} $maybe (qblock) <- qualificationUserBlockedDue qualUsr
_{MsgTableQualificationBlockedDue}
^{formatTimeW SelFormatDate (qualificationBlockedDay qblock)} \ #{icon IconBlocked} \ #{qualificationBlockedReason qblock}
_{MsgTableQualificationLastRefresh}
^{formatTimeW SelFormatDate (qualificationUserLastRefresh qualUsr)}
_{MsgTableQualificationFirstHeld}
^{formatTimeW SelFormatDate (qualificationUserFirstHeld qualUsr)} $maybe (Entity _ lmsUsr) <- mbLmsUsr
_{MsgTableLmsStarted}
^{formatTimeW SelFormatDateTime (lmsUserStarted lmsUsr)} $maybe _ <- lmsUserStatus lmsUsr
_{MsgTableLmsStatus}
^{lmsUserStatusWidget lmsUsr}
_{MsgTableLmsIdent}
#{getLmsIdent (lmsUserIdent lmsUsr)}
_{MsgTableLmsPin}
#{lmsUserPin lmsUsr}
^{formatTimeW SelFormatDateTime (lmsUserDatePin lmsUsr)} $if lmsUserResetPin lmsUsr \ #{icon IconReset} $maybe ts <- lmsUserReceived lmsUsr
_{MsgTableLmsReceived}
^{formatTimeW SelFormatDateTime ts} $maybe ts <- lmsUserNotified lmsUsr
_{MsgTableLmsNotified}
^{formatTimeW SelFormatDateTime ts} $maybe ts <- lmsUserEnded lmsUsr
_{MsgTableLmsEnded}
^{formatTimeW SelFormatDateTime ts}