fix(tutorial): fix #2978 by having one column per course qualification
This commit is contained in:
parent
24196cc2cd
commit
9d1a97172e
@ -5,6 +5,7 @@
|
|||||||
QualificationShort: Kürzel
|
QualificationShort: Kürzel
|
||||||
QualificationName: Qualifikation
|
QualificationName: Qualifikation
|
||||||
QualificationDescription: Beschreibung
|
QualificationDescription: Beschreibung
|
||||||
|
QualificationValidReason qsh@Text: #{qsh} Gültigkeit
|
||||||
QualificationValidIndicator: Gültigkeit
|
QualificationValidIndicator: Gültigkeit
|
||||||
QualificationValidDuration: Gültigkeitsdauer
|
QualificationValidDuration: Gültigkeitsdauer
|
||||||
QualificationAuditDuration: Aufbewahrungszeitraum E‑Learning Log
|
QualificationAuditDuration: Aufbewahrungszeitraum E‑Learning Log
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
QualificationShort: Shorthand
|
QualificationShort: Shorthand
|
||||||
QualificationName: Qualification
|
QualificationName: Qualification
|
||||||
QualificationDescription: Description
|
QualificationDescription: Description
|
||||||
|
QualificationValidReason qsh: #{qsh} Validity
|
||||||
QualificationValidIndicator: Validity
|
QualificationValidIndicator: Validity
|
||||||
QualificationValidDuration: Validity period
|
QualificationValidDuration: Validity period
|
||||||
QualificationAuditDuration: Audit log retention period
|
QualificationAuditDuration: Audit log retention period
|
||||||
|
|||||||
@ -240,15 +240,24 @@ colUserSheets shns = cap (Sortable Nothing caption) $ foldMap userSheetCol shns
|
|||||||
|
|
||||||
colUserQualifications :: forall m c. IsDBTable m c => Day -> Colonnade Sortable UserTableData (DBCell m c)
|
colUserQualifications :: forall m c. IsDBTable m c => Day -> Colonnade Sortable UserTableData (DBCell m c)
|
||||||
colUserQualifications cutoff = sortable (Just "qualifications") (i18nCell MsgTableQualifications) $
|
colUserQualifications cutoff = sortable (Just "qualifications") (i18nCell MsgTableQualifications) $
|
||||||
let qualNamedValidCell (q,qu,qb) = textCell ((q ^. hasQualification . _qualificationShorthand . _CI) <> ": ") <> qualificationValidUntilCell cutoff qb qu
|
let qualNamedValidCell (q,qu,qb) = textCell ((q ^. hasQualification . _qualificationShorthand . _CI) <> ": ") <> qualificationValidUntilCell cutoff qb qu
|
||||||
in \(view _userCourseQualifications -> qualis) ->
|
in \(view _userCourseQualifications -> qualis) ->
|
||||||
(cellAttrs <>~ [("class", "list--inline list--comma-separated list--iconless")]) . listCell qualis $ qualNamedValidCell
|
(cellAttrs <>~ [("class", "list--inline list--comma-separated list--iconless")]) $ listCell qualis qualNamedValidCell
|
||||||
|
|
||||||
|
-- colUserQualificationBlocked :: forall m c. IsDBTable m c => Bool -> Day -> Colonnade Sortable UserTableData (DBCell m c)
|
||||||
|
-- colUserQualificationBlocked isAdmin cutoff = sortable (Just "qualification-block") (i18nCell MsgQualificationValidIndicator & cellTooltip MsgTableQualificationBlockedTooltipSimple) $
|
||||||
|
-- let qualNamedReasonCell (q,qu,qb) = textCell ((q ^. hasQualification . _qualificationShorthand . _CI) <> ": ") <> qualificationValidReasonCell isAdmin cutoff qb qu
|
||||||
|
-- in \(view _userCourseQualifications -> qualis) ->
|
||||||
|
-- (cellAttrs <>~ [("class", "list--inline list--comma-separated list--iconless")]) . listCell qualis $ qualNamedReasonCell
|
||||||
|
|
||||||
|
colUserQualificationBlocked :: forall m c. IsDBTable m c => Bool -> Day -> Entity Qualification -> Colonnade Sortable UserTableData (DBCell m c)
|
||||||
|
colUserQualificationBlocked isAdmin cutoff Entity{entityKey=qid, entityVal=Qualification{qualificationShorthand=qsh}}
|
||||||
|
= sortable (Just "user-qualification") (i18nCell (MsgQualificationValidReason $ ciOriginal qsh) & cellTooltip MsgTableQualificationBlockedTooltipSimple) $
|
||||||
|
let qualNamedReasonCell (_q,qu,qb) = qualificationValidReasonCell isAdmin cutoff qb qu
|
||||||
|
-- in \(view _userCourseQualifications . to (filter ((== qid) . entityKey . fst3)) -> qualis) ->
|
||||||
|
in \(view _userCourseQualifications -> qualis) ->
|
||||||
|
(cellAttrs <>~ [("class", "list--inline list--comma-separated list--iconless")]) $ listCell (filter ((== qid) . entityKey . fst3) qualis) qualNamedReasonCell
|
||||||
|
|
||||||
colUserQualificationBlocked :: forall m c. IsDBTable m c => Bool -> Day -> Colonnade Sortable UserTableData (DBCell m c)
|
|
||||||
colUserQualificationBlocked isAdmin cutoff = sortable (Just "qualification-block") (i18nCell MsgQualificationValidIndicator & cellTooltip MsgTableQualificationBlockedTooltipSimple) $
|
|
||||||
let qualNamedReasonCell (q,qu,qb) = textCell ((q ^. hasQualification . _qualificationShorthand . _CI) <> ": ") <> qualificationValidReasonCell' Nothing isAdmin cutoff qb qu
|
|
||||||
in \(view _userCourseQualifications -> qualis) ->
|
|
||||||
(cellAttrs <>~ [("class", "list--inline list--comma-separated list--iconless")]) . listCell qualis $ qualNamedReasonCell
|
|
||||||
|
|
||||||
data UserTableCsv = UserTableCsv
|
data UserTableCsv = UserTableCsv
|
||||||
{ csvUserSurname :: UserSurname
|
{ csvUserSurname :: UserSurname
|
||||||
|
|||||||
@ -126,15 +126,15 @@ postTUsersR tid ssh csh tutn = do
|
|||||||
let nowaday = utctDay now
|
let nowaday = utctDay now
|
||||||
minDur :: Maybe Int = minimumMaybe $ mapMaybe (view _qualificationValidDuration) qualifications -- no instance Ord CalendarDiffDays
|
minDur :: Maybe Int = minimumMaybe $ mapMaybe (view _qualificationValidDuration) qualifications -- no instance Ord CalendarDiffDays
|
||||||
dayExpiry = flip computeNewValidDate nowaday <$> minDur
|
dayExpiry = flip computeNewValidDate nowaday <$> minDur
|
||||||
colChoices = mconcat $ catMaybes
|
colChoices = mconcat $
|
||||||
[ pure $ dbSelect (applying _2) id (return . view (hasEntity . _entityKey))
|
[ dbSelect (applying _2) id (return . view (hasEntity . _entityKey))
|
||||||
, pure $ colUserNameModalHdr MsgTableCourseMembers ForProfileDataR
|
, colUserNameModalHdr MsgTableCourseMembers ForProfileDataR
|
||||||
, pure colUserEmail
|
, colUserEmail
|
||||||
, pure $ colUserMatriclenr isAdmin
|
, colUserMatriclenr isAdmin
|
||||||
, pure $ colUserQualifications nowaday
|
] <>
|
||||||
, pure $ colUserQualificationBlocked isAdmin nowaday
|
[ colUserQualificationBlocked isAdmin nowaday q | q <- qualifications] <>
|
||||||
, pure $ colUserExamOccurrencesCheck tid ssh csh
|
[ colUserExamOccurrencesCheck tid ssh csh
|
||||||
, pure $ colUserExams tid ssh csh
|
, colUserExams tid ssh csh
|
||||||
]
|
]
|
||||||
psValidator = def
|
psValidator = def
|
||||||
& defaultSortingByName
|
& defaultSortingByName
|
||||||
|
|||||||
Reference in New Issue
Block a user