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
TableLmsUser: Prüfling
TableLmsIdent: Identifikation
TableLmsElearning: E-Lernen
TableLmsPin: E-Lernen Pin
TableLmsResetPin: Pin zurücksetzen?
TableLmsDelete: Löschen?

View File

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

View File

@ -61,4 +61,5 @@ SelectColumn: Auswahl
CsvExport: CSV-Export
TableProportion c@Text of'@Text prop@Rational !ident-ok: #{c}/#{of'} (#{rationalToFixed2 (100 * prop)}%)
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
TableProportion c of' prop: #{c}/#{of'} (#{rationalToFixed2 (100 * prop)}%)
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
, sortable Nothing (i18nCell MsgQualificationDescription) $ \(view resultAllQualification -> quali) ->
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)
$ \(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
[
sortSchool $ to (E.^. QualificationSchool)
, singletonMap "qshort" $ SortColumn (E.^. QualificationShorthand)
, singletonMap "qname" $ SortColumn (E.^. QualificationName)
, singletonMap "qshort" $ SortColumn (E.^. QualificationShorthand)
, singletonMap "qname" $ SortColumn (E.^. QualificationName)
, singletonMap "qelearning" $ SortColumn (E.^. QualificationElearningStart)
]
dbtFilter = mconcat
[
fltrSchool $ to (E.^. QualificationSchool)
, singletonMap "qelearning" . FilterColumn $ E.mkExactFilter (E.^. QualificationElearningStart)
]
dbtFilterUI = mconcat
[
fltrSchoolUI
fltrSchoolUI
, \mPrev -> prismAForm (singletonFilter "qelearning" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift checkBoxField) (fslI MsgTableLmsElearning)
]
dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
dbtParams = def

View File

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

View File

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