chore(printer): add stub for apc printing tests
This commit is contained in:
parent
a0cfe7807b
commit
3d14aee7ee
@ -127,7 +127,7 @@ ldap-re-test-failover: 60
|
|||||||
|
|
||||||
avs:
|
avs:
|
||||||
host: "_env:AVSHOST:skytest.fra.fraport.de"
|
host: "_env:AVSHOST:skytest.fra.fraport.de"
|
||||||
port: "_env:AVSPORT:80"
|
port: "_env:AVSPORT:443"
|
||||||
user: "_env:AVSUSER:fradrive"
|
user: "_env:AVSUSER:fradrive"
|
||||||
pass: "_env:AVSPASS:"
|
pass: "_env:AVSPASS:"
|
||||||
|
|
||||||
|
|||||||
@ -133,6 +133,7 @@ MenuLmsUpload: Hochladen
|
|||||||
MenuLmsDirect: Direkter Upload
|
MenuLmsDirect: Direkter Upload
|
||||||
|
|
||||||
MenuAvs: Schnitstelle AVS
|
MenuAvs: Schnitstelle AVS
|
||||||
|
MenuApc: Schnitstelle Druckerei
|
||||||
|
|
||||||
MenuApiDocs: API-Dokumentation (Englisch)
|
MenuApiDocs: API-Dokumentation (Englisch)
|
||||||
MenuSwagger !ident-ok: OpenAPI 2.0 (Swagger)
|
MenuSwagger !ident-ok: OpenAPI 2.0 (Swagger)
|
||||||
@ -134,6 +134,7 @@ MenuLmsUpload: Upload
|
|||||||
MenuLmsDirect: Direct Upload
|
MenuLmsDirect: Direct Upload
|
||||||
|
|
||||||
MenuAvs: AVS Interface
|
MenuAvs: AVS Interface
|
||||||
|
MenuApc: Print Center Interface
|
||||||
|
|
||||||
MenuApiDocs: API documentation
|
MenuApiDocs: API documentation
|
||||||
MenuSwagger: OpenAPI 2.0 (Swagger)
|
MenuSwagger: OpenAPI 2.0 (Swagger)
|
||||||
|
|||||||
1
routes
1
routes
@ -60,6 +60,7 @@
|
|||||||
/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
|
||||||
|
|
||||||
/health HealthR GET !free
|
/health HealthR GET !free
|
||||||
/instance InstanceR GET !free
|
/instance InstanceR GET !free
|
||||||
|
|||||||
@ -105,6 +105,7 @@ 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 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
|
||||||
@ -803,6 +804,14 @@ 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
|
||||||
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ 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 =
|
||||||
|
|||||||
89
src/Handler/Admin/Apc.hs
Normal file
89
src/Handler/Admin/Apc.hs
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
module Handler.Admin.Apc
|
||||||
|
( getAdminApcR
|
||||||
|
, postAdminApcR
|
||||||
|
) where
|
||||||
|
|
||||||
|
import Import
|
||||||
|
-- import qualified Control.Monad.State.Class as State
|
||||||
|
-- import Data.Aeson (encode)
|
||||||
|
-- import qualified Data.Text as Text
|
||||||
|
-- import qualified Data.Set as Set
|
||||||
|
|
||||||
|
-- import Handler.Utils
|
||||||
|
|
||||||
|
|
||||||
|
{-
|
||||||
|
makePrintForm :: Maybe AvsPersonQuery -> Form AvsPersonQuery
|
||||||
|
makeAvsPersonForm tmpl = identifyForm FIDAvsPersonQuery . validateForm validateAvsPersonQuery $ \html ->
|
||||||
|
flip (renderAForm FormStandard) html $ AvsPersonQuery
|
||||||
|
<$> aopt textField (fslI MsgAvsCardNo) (avsPersonQueryCardNo <$> tmpl)
|
||||||
|
<*> aopt textField (fslI MsgAvsFirstName) (avsPersonQueryFirstName <$> tmpl)
|
||||||
|
<*> aopt textField (fslI MsgAvsLastName) (avsPersonQueryLastName <$> tmpl)
|
||||||
|
<*> aopt textField (fslI MsgAvsInternalPersonalNo) (avsPersonQueryInternalPersonalNo <$> tmpl)
|
||||||
|
<*> aopt textField (fslI MsgAvsVersionNo) (avsPersonQueryVersionNo <$> tmpl)
|
||||||
|
|
||||||
|
validateAvsPersonQuery :: FormValidator AvsPersonQuery Handler ()
|
||||||
|
validateAvsPersonQuery = do
|
||||||
|
AvsPersonQuery{..} <- State.get
|
||||||
|
guardValidation MsgAvsQueryEmpty $
|
||||||
|
is _Just avsPersonQueryCardNo ||
|
||||||
|
is _Just avsPersonQueryFirstName ||
|
||||||
|
is _Just avsPersonQueryLastName ||
|
||||||
|
is _Just avsPersonQueryInternalPersonalNo ||
|
||||||
|
is _Just avsPersonQueryVersionNo
|
||||||
|
|
||||||
|
makeAvsStatusForm :: Maybe AvsStatusQuery -> Form AvsStatusQuery
|
||||||
|
makeAvsStatusForm tmpl = identifyForm FIDAvsStatusQuery . validateForm validateAvsStatusQuery $ \html ->
|
||||||
|
flip (renderAForm FormStandard) html $
|
||||||
|
parseAvsIds <$> areq textField (fslI MsgAvsCardNo) (unparseAvsIds <$> tmpl)
|
||||||
|
where
|
||||||
|
parseAvsIds :: Text -> AvsStatusQuery
|
||||||
|
parseAvsIds txt = AvsStatusQuery $ Set.fromList ids
|
||||||
|
where
|
||||||
|
nonemptys = filter (not . Text.null) $ Text.strip <$> Text.split (==',') txt
|
||||||
|
ids = catMaybes $ readMay <$> nonemptys
|
||||||
|
unparseAvsIds :: AvsStatusQuery -> Text
|
||||||
|
unparseAvsIds (AvsStatusQuery ids) = Text.intercalate ", " $ tshow <$> Set.toAscList ids
|
||||||
|
|
||||||
|
validateAvsStatusQuery :: FormValidator AvsStatusQuery Handler ()
|
||||||
|
validateAvsStatusQuery = do
|
||||||
|
AvsStatusQuery ids <- State.get
|
||||||
|
guardValidation (MsgAvsStatusQueryInvalid $ tshow ids) $ not (null ids)
|
||||||
|
-}
|
||||||
|
getAdminApcR, postAdminApcR :: Handler Html
|
||||||
|
getAdminApcR = postAdminApcR
|
||||||
|
postAdminApcR = do
|
||||||
|
{-
|
||||||
|
((presult, pwidget), penctype) <- runFormPost $ makeAvsPersonForm Nothing
|
||||||
|
let procFormPerson fr = do
|
||||||
|
res <- runAvsPersonSearch fr
|
||||||
|
case res of
|
||||||
|
Left err -> return $ Just err
|
||||||
|
Right jsn -> return $ Just $ tshow jsn
|
||||||
|
mbPerson <- formResultMaybe presult procFormPerson
|
||||||
|
|
||||||
|
((sresult, swidget), senctype) <- runFormPost $ makeAvsStatusForm Nothing
|
||||||
|
let procFormStatus fr = do
|
||||||
|
res <- runAvsStatusSearch fr
|
||||||
|
case res of
|
||||||
|
Left err -> return $ Just err
|
||||||
|
Right jsn -> return $ Just $ tshow jsn
|
||||||
|
mbStatus <- formResultMaybe sresult procFormStatus
|
||||||
|
-}
|
||||||
|
-- actionUrl <- fromMaybe AdminAvsR <$> getCurrentRoute
|
||||||
|
siteLayoutMsg MsgMenuAvs $ do
|
||||||
|
setTitleI MsgMenuApc
|
||||||
|
{-
|
||||||
|
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")
|
||||||
@ -40,7 +40,7 @@ makeAvsStatusForm tmpl = identifyForm FIDAvsStatusQuery . validateForm validateA
|
|||||||
where
|
where
|
||||||
parseAvsIds :: Text -> AvsStatusQuery
|
parseAvsIds :: Text -> AvsStatusQuery
|
||||||
parseAvsIds txt = AvsStatusQuery $ Set.fromList ids
|
parseAvsIds txt = AvsStatusQuery $ Set.fromList ids
|
||||||
where
|
where
|
||||||
nonemptys = filter (not . Text.null) $ Text.strip <$> Text.split (==',') txt
|
nonemptys = filter (not . Text.null) $ Text.strip <$> Text.split (==',') txt
|
||||||
ids = catMaybes $ readMay <$> nonemptys
|
ids = catMaybes $ readMay <$> nonemptys
|
||||||
unparseAvsIds :: AvsStatusQuery -> Text
|
unparseAvsIds :: AvsStatusQuery -> Text
|
||||||
|
|||||||
8
templates/apc.hamlet
Normal file
8
templates/apc.hamlet
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<section>
|
||||||
|
<p>
|
||||||
|
Print Demo:
|
||||||
|
^{personForm}
|
||||||
|
$maybe answer <- mbPerson
|
||||||
|
<p>
|
||||||
|
Unverarbeitete Antwort: #
|
||||||
|
#{answer}
|
||||||
Loading…
Reference in New Issue
Block a user