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:
|
||||
host: "_env:AVSHOST:skytest.fra.fraport.de"
|
||||
port: "_env:AVSPORT:80"
|
||||
port: "_env:AVSPORT:443"
|
||||
user: "_env:AVSUSER:fradrive"
|
||||
pass: "_env:AVSPASS:"
|
||||
|
||||
|
||||
@ -133,6 +133,7 @@ MenuLmsUpload: Hochladen
|
||||
MenuLmsDirect: Direkter Upload
|
||||
|
||||
MenuAvs: Schnitstelle AVS
|
||||
MenuApc: Schnitstelle Druckerei
|
||||
|
||||
MenuApiDocs: API-Dokumentation (Englisch)
|
||||
MenuSwagger !ident-ok: OpenAPI 2.0 (Swagger)
|
||||
@ -134,6 +134,7 @@ MenuLmsUpload: Upload
|
||||
MenuLmsDirect: Direct Upload
|
||||
|
||||
MenuAvs: AVS Interface
|
||||
MenuApc: Print Center Interface
|
||||
|
||||
MenuApiDocs: API documentation
|
||||
MenuSwagger: OpenAPI 2.0 (Swagger)
|
||||
|
||||
1
routes
1
routes
@ -60,6 +60,7 @@
|
||||
/admin/tokens AdminTokensR GET POST
|
||||
/admin/crontab AdminCrontabR GET
|
||||
/admin/avs AdminAvsR GET POST
|
||||
/admin/apc AdminApcR GET POST
|
||||
|
||||
/health HealthR GET !free
|
||||
/instance InstanceR GET !free
|
||||
|
||||
@ -105,6 +105,7 @@ breadcrumb AdminErrMsgR = i18nCrumb MsgMenuAdminErrMsg $ Just AdminR
|
||||
breadcrumb AdminTokensR = i18nCrumb MsgMenuAdminTokens $ Just AdminR
|
||||
breadcrumb AdminCrontabR = i18nCrumb MsgBreadcrumbAdminCrontab $ Just AdminR
|
||||
breadcrumb AdminAvsR = i18nCrumb MsgMenuAvs $ Just AdminR
|
||||
breadcrumb AdminApcR = i18nCrumb MsgMenuApc $ Just AdminR
|
||||
|
||||
breadcrumb SchoolListR = i18nCrumb MsgMenuSchoolList $ Just AdminR
|
||||
breadcrumb (SchoolR ssh sRoute) = case sRoute of
|
||||
@ -803,6 +804,14 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
|
||||
, navQuick' = mempty
|
||||
, 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.Crontab as Handler.Admin
|
||||
import Handler.Admin.Avs as Handler.Admin
|
||||
import Handler.Admin.Apc as Handler.Admin
|
||||
|
||||
getAdminR :: Handler Html
|
||||
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
|
||||
parseAvsIds :: Text -> AvsStatusQuery
|
||||
parseAvsIds txt = AvsStatusQuery $ Set.fromList ids
|
||||
where
|
||||
where
|
||||
nonemptys = filter (not . Text.null) $ Text.strip <$> Text.split (==',') txt
|
||||
ids = catMaybes $ readMay <$> nonemptys
|
||||
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