chore(avs): fix #113 by showing avs problems
This commit is contained in:
parent
8b0737e2aa
commit
391c87be9f
@ -98,6 +98,8 @@ TestDownloadFromDatabase: Generierung während Download aus Datenbank
|
|||||||
|
|
||||||
ProblemsHeading: Problemübersicht
|
ProblemsHeading: Problemübersicht
|
||||||
ProblemsHeadingDrivers: Fahrberechtigungen
|
ProblemsHeadingDrivers: Fahrberechtigungen
|
||||||
|
ProblemsHeadingNotifications: Benachrichtigungen
|
||||||
|
ProblemsHeadingMisc: Allgemein
|
||||||
ProblemsAvsProblem: Synchronisation mit AVS/MoBaKo komplett fehlgeschlagen
|
ProblemsAvsProblem: Synchronisation mit AVS/MoBaKo komplett fehlgeschlagen
|
||||||
ProblemsDriverSynch n@Int: #{tshow n} Diskrepanzen zwischen AVS und FRADrive
|
ProblemsDriverSynch n@Int: #{tshow n} Diskrepanzen zwischen AVS und FRADrive
|
||||||
ProblemsDriverSynch0: Alle Sperrungen von Vorfeld-Fahrberechtigungen 'F' sind im AVS eingetragen
|
ProblemsDriverSynch0: Alle Sperrungen von Vorfeld-Fahrberechtigungen 'F' sind im AVS eingetragen
|
||||||
@ -106,10 +108,10 @@ ProblemsDriverSynch1up: Alle gültigen Vorfeld-Fahrberechtigungen 'F' sind im AV
|
|||||||
ProblemsDriverSynch2: Alle gültigen Rollfeld-Fahrberechtigungen 'R' sind im AVS eingetragen
|
ProblemsDriverSynch2: Alle gültigen Rollfeld-Fahrberechtigungen 'R' sind im AVS eingetragen
|
||||||
ProblemsRDriversHaveFs: Alle Inhaber einer Rollfeld-Fahrberechtigung besitzen auch eine gültige Vorfeld-Fahrberechtigung
|
ProblemsRDriversHaveFs: Alle Inhaber einer Rollfeld-Fahrberechtigung besitzen auch eine gültige Vorfeld-Fahrberechtigung
|
||||||
ProblemsDriversHaveAvsIds: Alle Inhaber einer Fahrberechtigung konnten einer AVS Identifikationsnummer zugeordnet werden
|
ProblemsDriversHaveAvsIds: Alle Inhaber einer Fahrberechtigung konnten einer AVS Identifikationsnummer zugeordnet werden
|
||||||
ProblemsHeadingUsers: Allgemein
|
|
||||||
ProblemsUsersAreReachable: Für alle Benutzer ist eine E-Mail oder postalische Adresse bekannt
|
ProblemsUsersAreReachable: Für alle Benutzer ist eine E-Mail oder postalische Adresse bekannt
|
||||||
ProblemsNoStalePrintJobs n@Integer: Alle Briefversandaufträge der vergangenen #{show n} Tage wurden von der Druckerei bestätigt
|
ProblemsNoStalePrintJobs n@Integer: Alle Briefversandaufträge der vergangenen #{show n} Tage wurden von der Druckerei bestätigt
|
||||||
ProblemsNoBadAPCIds: Alle kürzlich empfangenen Druckauftragsbestätigungen waren gültig
|
ProblemsNoBadAPCIds: Alle kürzlich empfangenen Druckauftragsbestätigungen waren gültig
|
||||||
|
ProblemsNoAvsSynchProblems: Synchronisation mit Ausweisverwaltungssystem (AVS) meldete keine Probleme
|
||||||
ProblemsUnreachableHeading: Unerreichbare Benutzer
|
ProblemsUnreachableHeading: Unerreichbare Benutzer
|
||||||
ProblemsUnreachableBody: Benutzer ohne E-Mail oder Postadresse, welche z.B. bei ablaufenden Berechtigungen nicht benachrichtigt werden können:
|
ProblemsUnreachableBody: Benutzer ohne E-Mail oder Postadresse, welche z.B. bei ablaufenden Berechtigungen nicht benachrichtigt werden können:
|
||||||
ProblemsRWithoutFHeading: Fahrer mit R ohne F
|
ProblemsRWithoutFHeading: Fahrer mit R ohne F
|
||||||
@ -117,3 +119,4 @@ ProblemsRWithoutFBody: Diese Fahrer sind wegen einer ungültigen Vorfeld-Fahrber
|
|||||||
ProblemsNoAvsIdHeading: Fahrer ohne AVS-Id
|
ProblemsNoAvsIdHeading: Fahrer ohne AVS-Id
|
||||||
ProblemsNoAvsIdBody: Fahrer mit gültiger Fahrberechtigung in FRADrive, welche trotzdem nicht fahren dürfen, da die Fahrberechtigung aufgrund einer unbekannten AVS Id nicht an die Ausweisstelle übermittelt werden konnte:
|
ProblemsNoAvsIdBody: Fahrer mit gültiger Fahrberechtigung in FRADrive, welche trotzdem nicht fahren dürfen, da die Fahrberechtigung aufgrund einer unbekannten AVS Id nicht an die Ausweisstelle übermittelt werden konnte:
|
||||||
ProblemsAvsSynchHeading: Synchronisation AVS Fahrberechtigungen
|
ProblemsAvsSynchHeading: Synchronisation AVS Fahrberechtigungen
|
||||||
|
ProblemsAvsErrorHeading: Fehlermeldungen
|
||||||
@ -98,6 +98,8 @@ TestDownloadFromDatabase: Generate while streaming from database
|
|||||||
|
|
||||||
ProblemsHeading: Overview Problems
|
ProblemsHeading: Overview Problems
|
||||||
ProblemsHeadingDrivers: Driving Licences
|
ProblemsHeadingDrivers: Driving Licences
|
||||||
|
ProblemsHeadingNotifications: User communication
|
||||||
|
ProblemsHeadingMisc: Miscellaneous
|
||||||
ProblemsAvsProblem: Synchronisation with AVS/MoBaKo failed entirely
|
ProblemsAvsProblem: Synchronisation with AVS/MoBaKo failed entirely
|
||||||
ProblemsDriverSynch n: #{tshow n} mismatches between AVS and FRADrive
|
ProblemsDriverSynch n: #{tshow n} mismatches between AVS and FRADrive
|
||||||
ProblemsDriverSynch0: All revocations of apron driving licences 'F' were successfully registered with AVS
|
ProblemsDriverSynch0: All revocations of apron driving licences 'F' were successfully registered with AVS
|
||||||
@ -106,10 +108,10 @@ ProblemsDriverSynch1up: All valid apron driving licences 'F' were successfully r
|
|||||||
ProblemsDriverSynch2: All valid maneuvering area driving licences 'R' were successfully registered with AVS
|
ProblemsDriverSynch2: All valid maneuvering area driving licences 'R' were successfully registered with AVS
|
||||||
ProblemsRDriversHaveFs: All driving licence 'R' holders also have a valid 'F' licence
|
ProblemsRDriversHaveFs: All driving licence 'R' holders also have a valid 'F' licence
|
||||||
ProblemsDriversHaveAvsIds: All driving licence holder could be matched with their AVS id
|
ProblemsDriversHaveAvsIds: All driving licence holder could be matched with their AVS id
|
||||||
ProblemsHeadingUsers: Miscellaneous
|
|
||||||
ProblemsUsersAreReachable: Either Email or postal address is known for all users
|
ProblemsUsersAreReachable: Either Email or postal address is known for all users
|
||||||
ProblemsNoStalePrintJobs n: All requests for letter mailing within the last #{show n} days were acknowledged as printed by the airport printing center
|
ProblemsNoStalePrintJobs n: All requests for letter mailing within the last #{show n} days were acknowledged as printed by the airport printing center
|
||||||
ProblemsNoBadAPCIds: All recently received print job ids from Airport Print Center were legit
|
ProblemsNoBadAPCIds: All recently received print job ids from Airport Print Center were legit
|
||||||
|
ProblemsNoAvsSynchProblems: AVS synchronisation had not problems
|
||||||
ProblemsUnreachableHeading: Unreachable Users
|
ProblemsUnreachableHeading: Unreachable Users
|
||||||
ProblemsUnreachableBody: Users without Email nor postal address, who thus cannot be notified about expiring qualifications:
|
ProblemsUnreachableBody: Users without Email nor postal address, who thus cannot be notified about expiring qualifications:
|
||||||
ProblemsRWithoutFHeading: Drivers having 'R' but not 'F'
|
ProblemsRWithoutFHeading: Drivers having 'R' but not 'F'
|
||||||
@ -117,3 +119,4 @@ ProblemsRWithoutFBody: Drivers without apron driving licence are prohibited from
|
|||||||
ProblemsNoAvsIdHeading: Drivers without AVS id
|
ProblemsNoAvsIdHeading: Drivers without AVS id
|
||||||
ProblemsNoAvsIdBody: Drivers having a valid apron driving licence within FRADrive only, but who may not drive since a missing AVS id prevents communication of the driving licence to AVS:
|
ProblemsNoAvsIdBody: Drivers having a valid apron driving licence within FRADrive only, but who may not drive since a missing AVS id prevents communication of the driving licence to AVS:
|
||||||
ProblemsAvsSynchHeading: Synchronisation AVS Driving Licences
|
ProblemsAvsSynchHeading: Synchronisation AVS Driving Licences
|
||||||
|
ProblemsAvsErrorHeading: Error Log
|
||||||
@ -35,3 +35,5 @@ AvsCardColorGreen: Grün
|
|||||||
AvsCardColorBlue: Blau
|
AvsCardColorBlue: Blau
|
||||||
AvsCardColorRed: Rot
|
AvsCardColorRed: Rot
|
||||||
AvsCardColorYellow: Gelb
|
AvsCardColorYellow: Gelb
|
||||||
|
LastAvsSynchronisation: Letzte AVS-Synchronisation
|
||||||
|
LastAvsSynchError: Letzte AVS-Fehlermeldung
|
||||||
|
|||||||
@ -35,3 +35,5 @@ AvsCardColorGreen: Green
|
|||||||
AvsCardColorBlue: Blue
|
AvsCardColorBlue: Blue
|
||||||
AvsCardColorRed: Red
|
AvsCardColorRed: Red
|
||||||
AvsCardColorYellow: Yellow
|
AvsCardColorYellow: Yellow
|
||||||
|
LastAvsSynchronisation: Last AVS synchronisation
|
||||||
|
LastAvsSynchError: Last AVS Error
|
||||||
@ -94,8 +94,6 @@ TokensLastReset: Tokens zuletzt invalidiert
|
|||||||
ProfileNever: Nie
|
ProfileNever: Nie
|
||||||
ProfileLdapPrimaryKey: LDAP-Primärschlüssel
|
ProfileLdapPrimaryKey: LDAP-Primärschlüssel
|
||||||
ProfileLastLdapSynchronisation: Letzte LDAP-Synchronisation
|
ProfileLastLdapSynchronisation: Letzte LDAP-Synchronisation
|
||||||
ProfileLastAvsSynchronisation: Letzte AVS-Synchronisation
|
|
||||||
ProfileLastAvsSynchError: Letzte AVS-Fehlermeldung
|
|
||||||
|
|
||||||
NotificationSettingsUpdate: Benachrichtigungs-Einstellungen erfolgreich gespeichert
|
NotificationSettingsUpdate: Benachrichtigungs-Einstellungen erfolgreich gespeichert
|
||||||
NotificationSettingsHeading displayName@Text: Benachrichtigungs-Einstellungen für #{displayName}
|
NotificationSettingsHeading displayName@Text: Benachrichtigungs-Einstellungen für #{displayName}
|
||||||
|
|||||||
@ -94,8 +94,6 @@ TokensLastReset: Tokens last reset
|
|||||||
ProfileNever: Never
|
ProfileNever: Never
|
||||||
ProfileLdapPrimaryKey: LDAP primary key
|
ProfileLdapPrimaryKey: LDAP primary key
|
||||||
ProfileLastLdapSynchronisation: Last LDAP synchronisation
|
ProfileLastLdapSynchronisation: Last LDAP synchronisation
|
||||||
ProfileLastAvsSynchronisation: Last AVS synchronisation
|
|
||||||
ProfileLastAvsSynchError: Last AVS Error
|
|
||||||
|
|
||||||
NotificationSettingsUpdate: Successfully updated notification settings
|
NotificationSettingsUpdate: Successfully updated notification settings
|
||||||
NotificationSettingsHeading displayName: Notification settings for #{displayName}
|
NotificationSettingsHeading displayName: Notification settings for #{displayName}
|
||||||
|
|||||||
@ -136,6 +136,7 @@ MenuLmsReport: Ergebnisse E‑Learning
|
|||||||
MenuSap: SAP Schnittstelle
|
MenuSap: SAP Schnittstelle
|
||||||
|
|
||||||
MenuAvs: AVS Schnittstelle
|
MenuAvs: AVS Schnittstelle
|
||||||
|
MenuAvsSynchError: AVS Problemübersicht
|
||||||
MenuLdap: LDAP Schnittstelle
|
MenuLdap: LDAP Schnittstelle
|
||||||
MenuApc: Druckerei
|
MenuApc: Druckerei
|
||||||
MenuPrintSend: Manueller Briefversand
|
MenuPrintSend: Manueller Briefversand
|
||||||
|
|||||||
@ -137,6 +137,7 @@ MenuLmsReport: E‑learning Results
|
|||||||
MenuSap: SAP Interface
|
MenuSap: SAP Interface
|
||||||
|
|
||||||
MenuAvs: AVS Interface
|
MenuAvs: AVS Interface
|
||||||
|
MenuAvsSynchError: AVS Problem Overview
|
||||||
MenuLdap: LDAP Interface
|
MenuLdap: LDAP Interface
|
||||||
MenuApc: Printing
|
MenuApc: Printing
|
||||||
MenuPrintSend: Send Letter
|
MenuPrintSend: Send Letter
|
||||||
|
|||||||
1
routes
1
routes
@ -75,6 +75,7 @@
|
|||||||
/admin/problems/no-avs-id ProblemWithoutAvsId GET
|
/admin/problems/no-avs-id ProblemWithoutAvsId GET
|
||||||
/admin/problems/r-without-f ProblemFbutNoR GET
|
/admin/problems/r-without-f ProblemFbutNoR GET
|
||||||
/admin/problems/avs ProblemAvsSynchR GET POST
|
/admin/problems/avs ProblemAvsSynchR GET POST
|
||||||
|
/admin/problems/avs/errors ProblemAvsErrorR GET
|
||||||
|
|
||||||
/print PrintCenterR GET POST !system-printer
|
/print PrintCenterR GET POST !system-printer
|
||||||
/print/acknowledge/#Day/#Int/#Int PrintAckR GET POST !system-printer
|
/print/acknowledge/#Day/#Int/#Int PrintAckR GET POST !system-printer
|
||||||
|
|||||||
@ -121,6 +121,7 @@ breadcrumb ProblemUnreachableR = i18nCrumb MsgProblemsUnreachableHeading $ Just
|
|||||||
breadcrumb ProblemWithoutAvsId = i18nCrumb MsgProblemsNoAvsIdHeading $ Just AdminProblemsR
|
breadcrumb ProblemWithoutAvsId = i18nCrumb MsgProblemsNoAvsIdHeading $ Just AdminProblemsR
|
||||||
breadcrumb ProblemFbutNoR = i18nCrumb MsgProblemsRWithoutFHeading $ Just AdminProblemsR
|
breadcrumb ProblemFbutNoR = i18nCrumb MsgProblemsRWithoutFHeading $ Just AdminProblemsR
|
||||||
breadcrumb ProblemAvsSynchR = i18nCrumb MsgProblemsAvsSynchHeading $ Just AdminProblemsR
|
breadcrumb ProblemAvsSynchR = i18nCrumb MsgProblemsAvsSynchHeading $ Just AdminProblemsR
|
||||||
|
breadcrumb ProblemAvsErrorR = i18nCrumb MsgProblemsAvsErrorHeading $ Just ProblemAvsSynchR
|
||||||
|
|
||||||
breadcrumb PrintCenterR = i18nCrumb MsgMenuApc Nothing
|
breadcrumb PrintCenterR = i18nCrumb MsgMenuApc Nothing
|
||||||
breadcrumb PrintSendR = i18nCrumb MsgMenuPrintSend $ Just PrintCenterR
|
breadcrumb PrintSendR = i18nCrumb MsgMenuPrintSend $ Just PrintCenterR
|
||||||
|
|||||||
@ -45,12 +45,13 @@ getAdminProblemsR = do
|
|||||||
cutOffPrintDays = 7
|
cutOffPrintDays = 7
|
||||||
cutOffPrintJob = addLocalDays (-cutOffPrintDays) now
|
cutOffPrintJob = addLocalDays (-cutOffPrintDays) now
|
||||||
|
|
||||||
(usersAreReachable, driversHaveAvsIds, rDriversHaveFs, noStalePrintJobs, noBadAPCids) <- runDB $ (,,,,)
|
(usersAreReachable, driversHaveAvsIds, rDriversHaveFs, noStalePrintJobs, noBadAPCids, noAvsSynchProblems) <- runDB $ (,,,,,)
|
||||||
<$> areAllUsersReachable
|
<$> areAllUsersReachable
|
||||||
<*> allDriversHaveAvsId now
|
<*> allDriversHaveAvsId now
|
||||||
<*> allRDriversHaveFs now
|
<*> allRDriversHaveFs now
|
||||||
<*> (not <$> exists [PrintJobAcknowledged ==. Nothing, PrintJobCreated <=. cutOffPrintJob])
|
<*> (not <$> exists [PrintJobAcknowledged ==. Nothing, PrintJobCreated <=. cutOffPrintJob])
|
||||||
<*> (not <$> exists [PrintAcknowledgeProcessed ==. False] )
|
<*> (not <$> exists [PrintAcknowledgeProcessed ==. False])
|
||||||
|
<*> (not <$> exists [UserAvsLastSynchError !=. Nothing])
|
||||||
diffLics <- try retrieveDifferingLicences >>= \case
|
diffLics <- try retrieveDifferingLicences >>= \case
|
||||||
-- (Left (UnsupportedContentType "text/html" resp)) -> Left $ text2widget "Html received"
|
-- (Left (UnsupportedContentType "text/html" resp)) -> Left $ text2widget "Html received"
|
||||||
(Left e) -> return $ Left $ text2widget $ tshow (e :: SomeException)
|
(Left e) -> return $ Left $ text2widget $ tshow (e :: SomeException)
|
||||||
|
|||||||
@ -11,6 +11,7 @@ module Handler.Admin.Avs
|
|||||||
( getAdminAvsR, postAdminAvsR
|
( getAdminAvsR, postAdminAvsR
|
||||||
, getAdminAvsUserR
|
, getAdminAvsUserR
|
||||||
, getProblemAvsSynchR, postProblemAvsSynchR
|
, getProblemAvsSynchR, postProblemAvsSynchR
|
||||||
|
, getProblemAvsErrorR
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
@ -722,3 +723,69 @@ getAdminAvsUserR uuid = do
|
|||||||
siteLayout heading $ do
|
siteLayout heading $ do
|
||||||
setTitle $ toHtml $ show userAvsNoPerson
|
setTitle $ toHtml $ show userAvsNoPerson
|
||||||
resWgt
|
resWgt
|
||||||
|
|
||||||
|
instance HasEntity (DBRow (Entity UserAvs, Entity User)) User where
|
||||||
|
hasEntity = _dbrOutput . _2
|
||||||
|
|
||||||
|
instance HasUser (DBRow (Entity UserAvs, Entity User)) where
|
||||||
|
hasUser = _dbrOutput . _2 . _entityVal
|
||||||
|
|
||||||
|
getProblemAvsErrorR :: Handler Html
|
||||||
|
getProblemAvsErrorR = do
|
||||||
|
let
|
||||||
|
avsSyncErrDBTable = DBTable{..}
|
||||||
|
where
|
||||||
|
dbtIdent :: Text
|
||||||
|
dbtIdent = "avs-errors"
|
||||||
|
dbtSQLQuery (usravs `E.InnerJoin` user) = do
|
||||||
|
E.on $ usravs E.^. UserAvsUser E.==. user E.^. UserId
|
||||||
|
E.where_ $ E.isJust $ usravs E.^. UserAvsLastSynchError
|
||||||
|
return (usravs, user)
|
||||||
|
qerryUsrAvs :: (E.SqlExpr (Entity UserAvs) `E.InnerJoin` E.SqlExpr (Entity User)) -> E.SqlExpr (Entity UserAvs)
|
||||||
|
qerryUsrAvs = $(E.sqlIJproj 2 1)
|
||||||
|
qerryUser :: (E.SqlExpr (Entity UserAvs) `E.InnerJoin` E.SqlExpr (Entity User)) -> E.SqlExpr (Entity User)
|
||||||
|
qerryUser = $(E.sqlIJproj 2 2)
|
||||||
|
reserrUsrAvs :: Lens' (DBRow (Entity UserAvs, Entity User)) (Entity UserAvs)
|
||||||
|
reserrUsrAvs = _dbrOutput . _1
|
||||||
|
-- reserrUser :: Lens' (DBRow (Entity UserAvs, Entity User)) (Entity User)
|
||||||
|
-- reserrUser = _dbrOutput . _2
|
||||||
|
dbtRowKey = qerryUsrAvs >>> (E.^. UserAvsId)
|
||||||
|
dbtProj = dbtProjId
|
||||||
|
dbtColonnade = dbColonnade $ mconcat
|
||||||
|
[ colUserNameModalHdr MsgLmsUser AdminUserR
|
||||||
|
, sortable (Just "avs-nr") (i18nCell MsgAvsPersonNo)
|
||||||
|
$ avsPersonNoLinkedCell . view reserrUsrAvs
|
||||||
|
, sortable Nothing (i18nCell MsgAvsPersonId)
|
||||||
|
$ numCell . view (reserrUsrAvs . _entityVal . _userAvsPersonId . _AvsPersonId)
|
||||||
|
, sortable (Just "avs-last-synch") (i18nCell MsgLastAvsSynchronisation)
|
||||||
|
$ dateTimeCell . view (reserrUsrAvs . _entityVal . _userAvsLastSynch)
|
||||||
|
, sortable (Just "avs-last-error") (i18nCell MsgLastAvsSynchError)
|
||||||
|
$ cellMaybe textCell . view (reserrUsrAvs . _entityVal . _userAvsLastSynchError)
|
||||||
|
]
|
||||||
|
dbtSorting = mconcat
|
||||||
|
[ single (sortUserNameLink qerryUser)
|
||||||
|
, single ("avs-nr" , SortColumn $ qerryUsrAvs >>> (E.^. UserAvsNoPerson))
|
||||||
|
, single ("avs-last-synch", SortColumnNullsInv $ qerryUsrAvs >>> (E.^. UserAvsLastSynch))
|
||||||
|
, single ("avs-last-error", SortColumn $ qerryUsrAvs >>> (E.^. UserAvsLastSynchError))
|
||||||
|
]
|
||||||
|
dbtFilter = mconcat
|
||||||
|
[ single $ fltrUserNameEmail qerryUser
|
||||||
|
, single ("avs-last-error", FilterColumn $ E.mkContainsFilterWithCommaPlus Just $ views (to qerryUsrAvs) (E.^. UserAvsLastSynchError))
|
||||||
|
]
|
||||||
|
dbtFilterUI mPrev = mconcat
|
||||||
|
[ fltrUserNameEmailHdrUI MsgLmsUser mPrev
|
||||||
|
, prismAForm (singletonFilter "avs-last-error" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift textField) (fslI MsgLastAvsSynchError)
|
||||||
|
]
|
||||||
|
dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout }
|
||||||
|
dbtParams = def
|
||||||
|
dbtCsvEncode = Nothing
|
||||||
|
dbtCsvDecode = Nothing
|
||||||
|
dbtExtraReps = []
|
||||||
|
avsSyncErrDBTableValidator = def & defaultSorting [SortDescBy "avs-last-synch"]
|
||||||
|
mkAvsSynchErrorTable :: DB (Any, Widget)
|
||||||
|
mkAvsSynchErrorTable = dbTable avsSyncErrDBTableValidator avsSyncErrDBTable
|
||||||
|
avsSyncErrTbl <- runDB (snd <$> mkAvsSynchErrorTable)
|
||||||
|
siteLayoutMsg MsgMenuAvsSynchError $ do
|
||||||
|
setTitleI MsgMenuAvsSynchError
|
||||||
|
[whamlet|^{avsSyncErrTbl}|]
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>
|
<h2>
|
||||||
_{MsgProblemsHeadingUsers}
|
_{MsgProblemsHeadingNotifications}
|
||||||
|
|
||||||
<dl .deflist>
|
<dl .deflist>
|
||||||
<dt .deflist__dt>^{flagError usersAreReachable}
|
<dt .deflist__dt>^{flagError usersAreReachable}
|
||||||
@ -48,7 +48,13 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
<dt .deflist__dt>^{flagError noBadAPCids}
|
<dt .deflist__dt>^{flagError noBadAPCids}
|
||||||
<dd .deflist__dd>_{MsgProblemsNoBadAPCIds}
|
<dd .deflist__dd>_{MsgProblemsNoBadAPCIds}
|
||||||
|
|
||||||
|
|
||||||
$maybe reroute <- rerouteMail
|
$maybe reroute <- rerouteMail
|
||||||
<dt .deflist__dt>^{flagWarning False}
|
<dt .deflist__dt>^{flagWarning False}
|
||||||
<dd .deflist__dd>_{MsgMailRerouteTo reroute}
|
<dd .deflist__dd>_{MsgMailRerouteTo reroute}
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>
|
||||||
|
_{MsgProblemsHeadingMisc}
|
||||||
|
<dl .deflist>
|
||||||
|
<dt .deflist__dt>^{flagError noAvsSynchProblems}
|
||||||
|
<dd .deflist__dd>^{simpleLinkI MsgProblemsNoAvsSynchProblems ProblemAvsErrorR}
|
||||||
|
|||||||
@ -22,11 +22,11 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
#{view _userAvsNoPerson avs}
|
#{view _userAvsNoPerson avs}
|
||||||
$maybe avsError <- view _userAvsLastSynchError avs
|
$maybe avsError <- view _userAvsLastSynchError avs
|
||||||
<dt .deflist__dt>
|
<dt .deflist__dt>
|
||||||
_{MsgProfileLastAvsSynchError}
|
_{MsgLastAvsSynchError}
|
||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
#{avsError}
|
#{avsError}
|
||||||
<dt .deflist__dt>
|
<dt .deflist__dt>
|
||||||
_{MsgProfileLastAvsSynchronisation}
|
_{MsgLastAvsSynchronisation}
|
||||||
<dd .deflist__dd>
|
<dd .deflist__dd>
|
||||||
^{formatTimeW SelFormatDateTime (view _userAvsLastSynch avs)}
|
^{formatTimeW SelFormatDateTime (view _userAvsLastSynch avs)}
|
||||||
<dt .deflist__dt>
|
<dt .deflist__dt>
|
||||||
|
|||||||
Reference in New Issue
Block a user