chore(lms): add more columns to all qualficiation

This commit is contained in:
Steffen Jost 2022-04-11 13:07:30 +02:00
parent 39f16b90db
commit 2c66cb5e5d
7 changed files with 35 additions and 10 deletions

View File

@ -10,6 +10,7 @@ TableQualificationCountActiveTooltip: Anzahl Personen mit momentan gültiger Qua
TableQualificationCountTotal: Gesamt TableQualificationCountTotal: Gesamt
TableLmsUser: Prüfling TableLmsUser: Prüfling
TableLmsIdent: Identifikation TableLmsIdent: Identifikation
TableLmsElearning: E-Lernen
TableLmsPin: E-Lernen Pin TableLmsPin: E-Lernen Pin
TableLmsResetPin: Pin zurücksetzen? TableLmsResetPin: Pin zurücksetzen?
TableLmsDelete: Löschen? TableLmsDelete: Löschen?

View File

@ -4,13 +4,14 @@ QualificationDescription: Description
QualificationValidDuration: Validity period QualificationValidDuration: Validity period
QualificationAuditDuration: Audit log keept QualificationAuditDuration: Audit log keept
QualificationRefreshWithin: Refresh within QualificationRefreshWithin: Refresh within
QualificationElearningStart: Start e-learning automaticallyTableLmsUser: Examinee QualificationElearningStart: Start e-learning automatically
TableQualificationCountActive: Active TableQualificationCountActive: Active
TableQualificationCountActiveTooltip: Number of currently valid qualifcation holders TableQualificationCountActiveTooltip: Number of currently valid qualifcation holders
TableQualificationCountTotal: Total TableQualificationCountTotal: Total
TableLmsUser: Examinee TableLmsUser: Examinee
TableLmsIdent: Identifier TableLmsIdent: Identifier
TableLmsPin: E-learning pin TableLmsPin: E-learning pin
TableLmsElearning: E-learning
TableLmsResetPin: Reset pin? TableLmsResetPin: Reset pin?
TableLmsDelete: Delete? TableLmsDelete: Delete?
TableLmsStaff: Staff? TableLmsStaff: Staff?

View File

@ -61,4 +61,5 @@ SelectColumn: Auswahl
CsvExport: CSV-Export CsvExport: CSV-Export
TableProportion c@Text of'@Text prop@Rational !ident-ok: #{c}/#{of'} (#{rationalToFixed2 (100 * prop)}%) TableProportion c@Text of'@Text prop@Rational !ident-ok: #{c}/#{of'} (#{rationalToFixed2 (100 * prop)}%)
TableProportionNoRatio c@Text of'@Text !ident-ok: #{c}/#{of'} TableProportionNoRatio c@Text of'@Text !ident-ok: #{c}/#{of'}
TableExamFinished: Ergebnisse sichtbar ab TableExamFinished: Ergebnisse sichtbar ab
TableDiffDaysTooltip: Zeitspanne nach ISO 8601. Beispiel: "P2Y3M4D" ist eine Zeitspanne von 2 Jahren, 3 Monaten und 4 Tagen.

View File

@ -61,4 +61,5 @@ SelectColumn: Selection
CsvExport: CSV export CsvExport: CSV export
TableProportion c of' prop: #{c}/#{of'} (#{rationalToFixed2 (100 * prop)}%) TableProportion c of' prop: #{c}/#{of'} (#{rationalToFixed2 (100 * prop)}%)
TableProportionNoRatio c of': #{c}/#{of'} TableProportionNoRatio c of': #{c}/#{of'}
TableExamFinished: Results visible from TableExamFinished: Results visible from
TableDiffDaysTooltip: Duration given according to ISO 8601. Example: "P2Y3M4D" is a period of 2 years, 3 months and 4 days.

View File

@ -85,23 +85,34 @@ mkLmsAllTable = do
in anchorCell (LmsR (qualificationSchool quali) qsh) $ toWgt qnm in anchorCell (LmsR (qualificationSchool quali) qsh) $ toWgt qnm
, sortable Nothing (i18nCell MsgQualificationDescription) $ \(view resultAllQualification -> quali) -> , sortable Nothing (i18nCell MsgQualificationDescription) $ \(view resultAllQualification -> quali) ->
maybeCell (qualificationDescription quali) markupCellLargeModal maybeCell (qualificationDescription quali) markupCellLargeModal
, sortable Nothing (i18nCell MsgQualificationValidDuration & cellTooltip MsgTableDiffDaysTooltip) $
foldMap (textCell . formatCalendarDiffDays . fromMonths) . view (resultAllQualification . _qualificationValidDuration)
, sortable Nothing (i18nCell MsgQualificationRefreshWithin & cellTooltip MsgTableDiffDaysTooltip) $
foldMap (textCell . formatCalendarDiffDays ) . view (resultAllQualification . _qualificationRefreshWithin)
-- , sortable Nothing (i18nCell MsgQualificationRefreshWithin) $ foldMap textCell . view (resultAllQualification . _qualificationRefreshWithin . to formatCalendarDiffDays) -- does not work, since there is a maybe in between
, sortable (Just "qelearning") (i18nCell MsgTableLmsElearning & cellTooltip MsgQualificationElearningStart)
$ tickmarkCell . view (resultAllQualification . _qualificationElearningStart)
, sortable Nothing (i18nCell MsgTableQualificationCountActive & cellTooltip MsgTableQualificationCountActiveTooltip) , sortable Nothing (i18nCell MsgTableQualificationCountActive & cellTooltip MsgTableQualificationCountActiveTooltip)
$ \(view resultAllQualificationActive -> n) -> wgtCell $ word2widget n $ \(view resultAllQualificationActive -> n) -> wgtCell $ word2widget n
, sortable Nothing (i18nCell MsgTableQualificationCountTotal) $ \(view resultAllQualificationTotal -> n) -> wgtCell $ word2widget n , sortable Nothing (i18nCell MsgTableQualificationCountTotal) $ wgtCell . word2widget . view resultAllQualificationTotal
-- \(view resultAllQualificationTotal -> n) -> wgtCell $ word2widget n
] ]
dbtSorting = mconcat dbtSorting = mconcat
[ [
sortSchool $ to (E.^. QualificationSchool) sortSchool $ to (E.^. QualificationSchool)
, singletonMap "qshort" $ SortColumn (E.^. QualificationShorthand) , singletonMap "qshort" $ SortColumn (E.^. QualificationShorthand)
, singletonMap "qname" $ SortColumn (E.^. QualificationName) , singletonMap "qname" $ SortColumn (E.^. QualificationName)
, singletonMap "qelearning" $ SortColumn (E.^. QualificationElearningStart)
] ]
dbtFilter = mconcat dbtFilter = mconcat
[ [
fltrSchool $ to (E.^. QualificationSchool) fltrSchool $ to (E.^. QualificationSchool)
, singletonMap "qelearning" . FilterColumn $ E.mkExactFilter (E.^. QualificationElearningStart)
] ]
dbtFilterUI = mconcat dbtFilterUI = mconcat
[ [
fltrSchoolUI fltrSchoolUI
, \mPrev -> prismAForm (singletonFilter "qelearning" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift checkBoxField) (fslI MsgTableLmsElearning)
] ]
dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout } dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
dbtParams = def dbtParams = def

View File

@ -5,7 +5,7 @@ module Handler.Utils.DateTime
, localTimeToUTC, TZ.LocalToUTCResult(..), localTimeToUTCSimple , localTimeToUTC, TZ.LocalToUTCResult(..), localTimeToUTCSimple
, toTimeOfDay , toTimeOfDay
, toMidnight, beforeMidnight, toMidday, toMorning , toMidnight, beforeMidnight, toMidday, toMorning
, formatDiffDays , formatDiffDays, formatCalendarDiffDays
, formatTime' , formatTime'
, formatTime, formatTimeW, formatTimeMail , formatTime, formatTimeW, formatTimeMail
, formatTimeRange, formatTimeRangeW, formatTimeRangeMail , formatTimeRange, formatTimeRangeW, formatTimeRangeMail
@ -216,6 +216,8 @@ formatDiffDays t
inHours = tshow $ convertBy nominalHour inHours = tshow $ convertBy nominalHour
inMinutes = tshow $ convertBy nominalMinute inMinutes = tshow $ convertBy nominalMinute
formatCalendarDiffDays :: CalendarDiffDays -> Text
formatCalendarDiffDays = pack . iso8601Show
setYear :: Integer -> Day -> Day setYear :: Integer -> Day -> Day
setYear year date = fromGregorian year m d setYear year date = fromGregorian year m d

View File

@ -13,6 +13,7 @@ module Utils.DateTime
, minNominalYear, avgNominalYear , minNominalYear, avgNominalYear
, diffMinute, diffHour, diffDay , diffMinute, diffHour, diffDay
, module Zones , module Zones
, fromMonths
, day , day
) where ) where
@ -25,9 +26,11 @@ import Data.Time.Zones as Zones (TZ)
import Data.Time.Zones.TH as Zones (includeSystemTZ) import Data.Time.Zones.TH as Zones (includeSystemTZ)
import Data.Time.Zones (localTimeToUTCTZ, timeZoneForUTCTime) import Data.Time.Zones (localTimeToUTCTZ, timeZoneForUTCTime)
import Data.Time.Format (FormatTime) import Data.Time.Format (FormatTime)
import Data.Time.Format.Instances ()
import Data.Time.Clock.System (systemEpochDay) import Data.Time.Clock.System (systemEpochDay)
import qualified Data.Time.Format.ISO8601 as Time import qualified Data.Time.Format.ISO8601 as Time
import qualified Data.Time.Format as Time import qualified Data.Time.Format as Time
import Data.Time.Calendar (CalendarDiffDays, calendarMonth, scaleCalendarDiffDays)
import qualified Data.List.NonEmpty as NonEmpty import qualified Data.List.NonEmpty as NonEmpty
@ -43,8 +46,6 @@ import Database.Persist.Sql (PersistFieldSql(..))
import Utils.PathPiece import Utils.PathPiece
import Data.Time.Format.Instances ()
import Algebra.Lattice import Algebra.Lattice
import Algebra.Lattice.Ordered import Algebra.Lattice.Ordered
@ -160,6 +161,13 @@ diffMinute = 60
diffHour = 3600 diffHour = 3600
diffDay = 86400 diffDay = 86400
----------------------
-- CalendarDiffDays --
----------------------
fromMonths :: Word -> CalendarDiffDays
fromMonths m = scaleCalendarDiffDays (toInteger m) calendarMonth
--------- ---------
-- Day -- -- Day --
--------- ---------