chore(print): add route for print overview and reorganise existing apc route

This commit is contained in:
Steffen Jost 2022-07-07 13:09:11 +02:00
parent 226f718f8a
commit a6782d8637
11 changed files with 71 additions and 22 deletions

View File

@ -1,3 +1,5 @@
AvsPersonId: AVS Personen Id
AvsPersonNo: AVS Personennummer
AvsCardNo: Ausweiskartennummer AvsCardNo: Ausweiskartennummer
AvsFirstName: Vorname AvsFirstName: Vorname
AvsLastName: Nachname AvsLastName: Nachname

View File

@ -1,3 +1,5 @@
AvsPersonId: AVS Person Id
AvsPersonNo: AVS Person Number
AvsCardNo: Card number AvsCardNo: Card number
AvsFirstName: First name AvsFirstName: First name
AvsLastName: Last name AvsLastName: Last name

View File

@ -134,6 +134,7 @@ MenuLmsDirect: Direkter Upload
MenuAvs: Schnittstelle AVS MenuAvs: Schnittstelle AVS
MenuApc: Schnittstelle Druckerei MenuApc: Schnittstelle Druckerei
MenuPrintSend: Manueller Briefversand
MenuApiDocs: API-Dokumentation (Englisch) MenuApiDocs: API-Dokumentation (Englisch)
MenuSwagger !ident-ok: OpenAPI 2.0 (Swagger) MenuSwagger !ident-ok: OpenAPI 2.0 (Swagger)

View File

@ -135,6 +135,7 @@ MenuLmsDirect: Direct Upload
MenuAvs: AVS Interface MenuAvs: AVS Interface
MenuApc: Print Center Interface MenuApc: Print Center Interface
MenuPrintSend: Send Letter
MenuApiDocs: API documentation MenuApiDocs: API documentation
MenuSwagger: OpenAPI 2.0 (Swagger) MenuSwagger: OpenAPI 2.0 (Swagger)

4
routes
View File

@ -60,7 +60,9 @@
/admin/tokens AdminTokensR GET POST /admin/tokens AdminTokensR GET POST
/admin/crontab AdminCrontabR GET /admin/crontab AdminCrontabR GET
/admin/avs AdminAvsR GET POST /admin/avs AdminAvsR GET POST
/admin/apc AdminApcR GET POST
/print PrintCenterR GET POST
/print/send PrintSendR GET POST
/health HealthR GET !free /health HealthR GET !free
/instance InstanceR GET !free /instance InstanceR GET !free

View File

@ -151,6 +151,7 @@ import Handler.Error
import Handler.Upload import Handler.Upload
import Handler.Qualification import Handler.Qualification
import Handler.LMS import Handler.LMS
import Handler.PrintCenter
import Handler.ApiDocs import Handler.ApiDocs
import Handler.Swagger import Handler.Swagger

View File

@ -105,7 +105,9 @@ breadcrumb AdminErrMsgR = i18nCrumb MsgMenuAdminErrMsg $ Just AdminR
breadcrumb AdminTokensR = i18nCrumb MsgMenuAdminTokens $ Just AdminR breadcrumb AdminTokensR = i18nCrumb MsgMenuAdminTokens $ Just AdminR
breadcrumb AdminCrontabR = i18nCrumb MsgBreadcrumbAdminCrontab $ Just AdminR breadcrumb AdminCrontabR = i18nCrumb MsgBreadcrumbAdminCrontab $ Just AdminR
breadcrumb AdminAvsR = i18nCrumb MsgMenuAvs $ Just AdminR breadcrumb AdminAvsR = i18nCrumb MsgMenuAvs $ Just AdminR
breadcrumb AdminApcR = i18nCrumb MsgMenuApc $ Just AdminR
breadcrumb PrintCenterR = i18nCrumb MsgMenuApc Nothing
breadcrumb PrintSendR = i18nCrumb MsgMenuPrintSend $ Just PrintCenterR
breadcrumb SchoolListR = i18nCrumb MsgMenuSchoolList $ Just AdminR breadcrumb SchoolListR = i18nCrumb MsgMenuSchoolList $ Just AdminR
breadcrumb (SchoolR ssh sRoute) = case sRoute of breadcrumb (SchoolR ssh sRoute) = case sRoute of
@ -735,6 +737,18 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
, navForceActive = False , navForceActive = False
} }
} }
, return NavHeader
{ navHeaderRole = NavHeaderPrimary
, navIcon = IconPrintCenter
, navLink = NavLink
{ navLabel = MsgMenuApc
, navRoute = PrintCenterR
, navAccess' = NavAccessTrue
, navType = NavTypeLink { navModal = False }
, navQuick' = mempty
, navForceActive = False
}
}
, return NavHeaderContainer , return NavHeaderContainer
{ navHeaderRole = NavHeaderPrimary { navHeaderRole = NavHeaderPrimary
, navLabel = SomeMessage MsgMenuAdminHeading , navLabel = SomeMessage MsgMenuAdminHeading
@ -804,15 +818,6 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
, navQuick' = mempty , navQuick' = mempty
, navForceActive = False , navForceActive = False
} }
, NavLink
{ navLabel = MsgMenuApc
, navRoute = AdminApcR
, navAccess' = NavAccessTrue
, navType = NavTypeLink { navModal = False }
, navQuick' = mempty
, navForceActive = False
}
] ]
} }
, return NavHeaderContainer , return NavHeaderContainer
@ -2492,6 +2497,19 @@ pageActions ApiDocsR = return
, navChildren = [] , navChildren = []
} }
] ]
pageActions PrintCenterR = return
[ NavPageActionPrimary
{ navLink = NavLink
{ navLabel = MsgMenuPrintSend
, navRoute = PrintSendR
, navAccess' = NavAccessTrue
, navType = NavTypeLink { navModal = False }
, navQuick' = mempty
, navForceActive = False
}
, navChildren = []
}
]
pageActions _ = return [] pageActions _ = return []
submissionList :: ( MonadIO m submissionList :: ( MonadIO m

View File

@ -9,7 +9,6 @@ import Handler.Admin.ErrorMessage as Handler.Admin
import Handler.Admin.Tokens as Handler.Admin import Handler.Admin.Tokens as Handler.Admin
import Handler.Admin.Crontab as Handler.Admin import Handler.Admin.Crontab as Handler.Admin
import Handler.Admin.Avs as Handler.Admin import Handler.Admin.Avs as Handler.Admin
import Handler.Admin.Apc as Handler.Admin
getAdminR :: Handler Html getAdminR :: Handler Html
getAdminR = getAdminR =

View File

@ -36,7 +36,7 @@ validateAvsQueryPerson = do
makeAvsStatusForm :: Maybe AvsQueryStatus -> Form AvsQueryStatus makeAvsStatusForm :: Maybe AvsQueryStatus -> Form AvsQueryStatus
makeAvsStatusForm tmpl = identifyForm FIDAvsQueryStatus . validateForm validateAvsQueryStatus $ \html -> makeAvsStatusForm tmpl = identifyForm FIDAvsQueryStatus . validateForm validateAvsQueryStatus $ \html ->
flip (renderAForm FormStandard) html $ flip (renderAForm FormStandard) html $
parseAvsIds <$> areq textField (fslI MsgAvsCardNo) (unparseAvsIds <$> tmpl) parseAvsIds <$> areq textField (fslI MsgAvsPersonId) (unparseAvsIds <$> tmpl)
where where
parseAvsIds :: Text -> AvsQueryStatus parseAvsIds :: Text -> AvsQueryStatus
parseAvsIds txt = AvsQueryStatus $ Set.fromList ids parseAvsIds txt = AvsQueryStatus $ Set.fromList ids

View File

@ -1,8 +1,8 @@
{-# OPTIONS -Wno-unused-top-binds #-} -- TODO: remove me, for debugging only {-# OPTIONS -Wno-unused-top-binds #-} -- TODO: remove me, for debugging only
module Handler.Admin.Apc module Handler.PrintCenter
( getAdminApcR ( getPrintCenterR, postPrintCenterR
, postAdminApcR , getPrintSendR , postPrintSendR
) where ) where
import Import import Import
@ -74,9 +74,9 @@ validateMetaPinRenewal = do
|| isPrefixOf "en" mppLang || isPrefixOf "en" mppLang
getAdminApcR, postAdminApcR :: Handler Html getPrintCenterR, postPrintCenterR :: Handler Html
getAdminApcR = postAdminApcR getPrintCenterR = postPrintCenterR
postAdminApcR = do postPrintCenterR = do
{- {-
((presult, pwidget), penctype) <- runFormPost $ makeRenewalForm Nothing ((presult, pwidget), penctype) <- runFormPost $ makeRenewalForm Nothing
let procFormPerson fr = do let procFormPerson fr = do
@ -95,7 +95,7 @@ postAdminApcR = do
mbStatus <- formResultMaybe sresult procFormStatus mbStatus <- formResultMaybe sresult procFormStatus
-} -}
-- actionUrl <- fromMaybe AdminAvsR <$> getCurrentRoute -- actionUrl <- fromMaybe AdminAvsR <$> getCurrentRoute
siteLayoutMsg MsgMenuAvs $ do siteLayoutMsg MsgMenuApc $ do
setTitleI MsgMenuApc setTitleI MsgMenuApc
{- {-
let personForm = wrapForm pwidget def let personForm = wrapForm pwidget def
@ -111,3 +111,24 @@ postAdminApcR = do
mbPerson = Just ("Not yet implemented"::Text) mbPerson = Just ("Not yet implemented"::Text)
-- TODO: use i18nWidgetFile instead if this is to become permanent -- TODO: use i18nWidgetFile instead if this is to become permanent
$(widgetFile "apc") $(widgetFile "apc")
getPrintSendR, postPrintSendR:: Handler Html
getPrintSendR = postPrintSendR
postPrintSendR = do
siteLayoutMsg MsgMenuPrintSend $ do
setTitleI MsgMenuPrintSend
{-
let personForm = wrapForm pwidget def
{ formAction = Just $ SomeRoute actionUrl
, formEncoding = penctype
}
statusForm = wrapForm swidget def
{ formAction = Just $ SomeRoute actionUrl
, formEncoding = senctype
}
-}
let personForm = [whamlet|TODO|]
mbPerson = Just ("Not yet implemented"::Text)
-- TODO: use i18nWidgetFile instead if this is to become permanent
$(widgetFile "apc")

View File

@ -105,6 +105,7 @@ data Icon
| IconRemoveUser | IconRemoveUser
| IconReset | IconReset
| IconBlocked | IconBlocked
| IconPrintCenter
deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic, Typeable) deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic, Typeable)
deriving anyclass (Universe, Finite, NFData) deriving anyclass (Universe, Finite, NFData)
@ -193,6 +194,7 @@ iconText = \case
IconSubmissionNoUsers -> "user-slash" IconSubmissionNoUsers -> "user-slash"
IconReset -> "undo" -- From fontawesome v6 onwards: "arrow-rotate-left" IconReset -> "undo" -- From fontawesome v6 onwards: "arrow-rotate-left"
IconBlocked -> "ban" IconBlocked -> "ban"
IconPrintCenter -> "mail-bulk" -- From fontawesome v6 onwards: "envelope-bulk"
nullaryPathPiece ''Icon $ camelToPathPiece' 1 nullaryPathPiece ''Icon $ camelToPathPiece' 1
deriveLift ''Icon deriveLift ''Icon