chore(lms): add more columns to all qualficiation
This commit is contained in:
parent
39f16b90db
commit
2c66cb5e5d
@ -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?
|
||||||
|
|||||||
@ -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?
|
||||||
|
|||||||
@ -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.
|
||||||
@ -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.
|
||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 --
|
||||||
---------
|
---------
|
||||||
|
|||||||
Reference in New Issue
Block a user