feat(workflows): prepare for admin-workflow-instance-edit

This commit is contained in:
Gregor Kleen 2020-12-01 11:11:48 +01:00
parent dae2d16677
commit ee6fecb79e
9 changed files with 26 additions and 2 deletions

View File

@ -1520,6 +1520,7 @@ BreadcrumbAdminWorkflowDefinitionDelete: Löschen
BreadcrumbAdminWorkflowDefinitionInstantiate: Instanziieren
BreadcrumbAdminWorkflowInstanceList: Workflow-Instanzen
BreadcrumbAdminWorkflowInstanceNew: Neue Workflow-Instanz
BreadcrumbAdminWorkflowInstanceEdit: Instanz bearbeiten
BreadcrumbAdminWorkflowWorkflowList: Initiierte Workflows
BreadcrumbAdminWorkflowWorkflowNew: Workflow initiieren
BreadcrumbWorkflowInstanceEdit win@WorkflowInstanceName: #{win}

View File

@ -1520,6 +1520,7 @@ BreadcrumbAdminWorkflowDefinitionDelete: Delete
BreadcrumbAdminWorkflowDefinitionInstantiate: Instantiate
BreadcrumbAdminWorkflowInstanceList: Workflow instances
BreadcrumbAdminWorkflowInstanceNew: New workflow-instance
BreadcrumbAdminWorkflowInstanceEdit: Edit instance
BreadcrumbAdminWorkflowWorkflowList: Initiated workflows
BreadcrumbAdminWorkflowWorkflowNew: Initiate workflow
BreadcrumbWorkflowInstanceEdit win: #{win}

2
routes
View File

@ -66,6 +66,8 @@
/instantiate AWDInstantiateR GET POST
/admin/workflows/instances AdminWorkflowInstanceListR GET
/admin/workflows/instances/new AdminWorkflowInstanceNewR GET POST
/admin/workflows/instances/#CryptoUUIDWorkflowInstance AdminWorkflowInstanceR:
/edit AWIEditR GET POST
/admin/workflows/workflows AdminWorkflowWorkflowListR GET
/admin/workflows/workflows/new AdminWorkflowWorkflowNewR GET POST

View File

@ -368,6 +368,8 @@ instance BearerAuthSite UniWorX => YesodBreadcrumbs UniWorX where
AWDInstantiateR -> i18nCrumb MsgBreadcrumbAdminWorkflowDefinitionInstantiate . Just $ AdminWorkflowDefinitionR wfdScope wfdName AWDEditR
breadcrumb AdminWorkflowInstanceListR = i18nCrumb MsgBreadcrumbAdminWorkflowInstanceList $ Just AdminWorkflowDefinitionListR
breadcrumb AdminWorkflowInstanceNewR = i18nCrumb MsgBreadcrumbAdminWorkflowInstanceNew $ Just AdminWorkflowInstanceListR
breadcrumb (AdminWorkflowInstanceR _cID sRoute) = case sRoute of
AWIEditR -> i18nCrumb MsgBreadcrumbAdminWorkflowInstanceEdit $ Just AdminWorkflowInstanceListR
breadcrumb AdminWorkflowWorkflowListR = i18nCrumb MsgBreadcrumbAdminWorkflowWorkflowList $ Just AdminWorkflowInstanceListR
breadcrumb AdminWorkflowWorkflowNewR = i18nCrumb MsgBreadcrumbAdminWorkflowWorkflowNew $ Just AdminWorkflowWorkflowListR

View File

@ -39,6 +39,7 @@ deriving instance Generic ExamOfficeR
deriving instance Generic CourseNewsR
deriving instance Generic CourseEventR
deriving instance Generic AdminWorkflowDefinitionR
deriving instance Generic AdminWorkflowInstanceR
deriving instance Generic GlobalWorkflowInstanceR
deriving instance Generic GlobalWorkflowWorkflowR
deriving instance Generic SchoolWorkflowInstanceR
@ -64,6 +65,7 @@ deriving instance Ord ExamOfficeR
deriving instance Ord CourseNewsR
deriving instance Ord CourseEventR
deriving instance Ord AdminWorkflowDefinitionR
deriving instance Ord AdminWorkflowInstanceR
deriving instance Ord GlobalWorkflowInstanceR
deriving instance Ord GlobalWorkflowWorkflowR
deriving instance Ord SchoolWorkflowInstanceR

View File

@ -95,7 +95,7 @@ getAdminWorkflowDefinitionListR = do
]
where
anchorEdit :: (WorkflowDefinitionData -> Widget) -> _
anchorEdit = anchorCell' (\(view $ resultDefinition . _entityVal -> WorkflowDefinition{..}) -> AdminWorkflowDefinitionR workflowDefinitionScope workflowDefinitionName AWDEditR)
anchorEdit = anchorCell' $ \(view $ resultDefinition . _entityVal -> WorkflowDefinition{..}) -> AdminWorkflowDefinitionR workflowDefinitionScope workflowDefinitionName AWDEditR
displayGraph graph
= [shamlet|
$newline never

View File

@ -2,6 +2,7 @@ module Handler.Workflow.Instance.Edit
( getGWIEditR, postGWIEditR
, getSWIEditR, postSWIEditR
, workflowInstanceEditR
, getAWIEditR, postAWIEditR
) where
import Import
@ -19,3 +20,8 @@ postSWIEditR ssh = workflowInstanceEditR $ WSSchool ssh
workflowInstanceEditR :: RouteWorkflowScope -> WorkflowInstanceName -> Handler Html
workflowInstanceEditR = error "not implemented"
getAWIEditR, postAWIEditR :: CryptoUUIDWorkflowInstance -> Handler Html
getAWIEditR = postAWIEditR
postAWIEditR = error "not implemented"

View File

@ -86,13 +86,19 @@ getAdminWorkflowInstanceListR = do
<$> view (_2 . _Value)
dbtColonnade :: Colonnade Sortable WorkflowInstanceData _
dbtColonnade = mconcat
[ sortable (Just "name") (i18nCell MsgWorkflowInstanceName) $ views (resultWorkflowInstance . _entityVal . _workflowInstanceName) i18nCell
[ sortable (Just "name") (i18nCell MsgWorkflowInstanceName) . anchorEdit $ views (resultWorkflowInstance . _entityVal . _workflowInstanceName) i18n
, sortable (Just "scope") (i18nCell MsgWorkflowScope) . views (resultWorkflowInstance . _entityVal . _workflowInstanceScope . re _DBWorkflowScope) $
sqlCell . maybeT (return mempty) . fmap i18n . toRouteWorkflowScope
, sortable (Just "title") (i18nCell MsgWorkflowInstanceDescriptionTitle) $ maybe mempty i18nCell . preview (resultDescription . _entityVal . _workflowInstanceDescriptionTitle)
, sortable (Just "workflows") (i18nCell MsgWorkflowInstanceWorkflowCount) $ maybe mempty i18nCell . views resultWorkflowCount (assertM' (> 0))
, sortable (Just "description") (i18nCell MsgWorkflowInstanceDescription) $ maybe mempty modalCell . preview (resultDescription . _entityVal . _workflowInstanceDescriptionDescription . _Just)
]
where
anchorEdit :: (WorkflowInstanceData -> Widget) -> _
anchorEdit f x@(view $ resultWorkflowInstance . _entityKey -> wiId) = anchorCellM mkLink $ f x
where mkLink = do
cID <- encrypt wiId
return $ AdminWorkflowInstanceR cID AWIEditR
dbtSorting = mconcat
[ singletonMap "name" . SortColumn $ views queryWorkflowInstance (E.^. WorkflowInstanceName)
, singletonMap "scope" . SortColumn $ views queryWorkflowInstance (E.^. WorkflowInstanceScope)

View File

@ -86,6 +86,10 @@ instance Arbitrary AdminWorkflowDefinitionR where
arbitrary = genericArbitrary
shrink = genericShrink
instance Arbitrary AdminWorkflowInstanceR where
arbitrary = genericArbitrary
shrink = genericShrink
instance Arbitrary GlobalWorkflowInstanceR where
arbitrary = genericArbitrary
shrink = genericShrink