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 BreadcrumbAdminWorkflowDefinitionInstantiate: Instanziieren
BreadcrumbAdminWorkflowInstanceList: Workflow-Instanzen BreadcrumbAdminWorkflowInstanceList: Workflow-Instanzen
BreadcrumbAdminWorkflowInstanceNew: Neue Workflow-Instanz BreadcrumbAdminWorkflowInstanceNew: Neue Workflow-Instanz
BreadcrumbAdminWorkflowInstanceEdit: Instanz bearbeiten
BreadcrumbAdminWorkflowWorkflowList: Initiierte Workflows BreadcrumbAdminWorkflowWorkflowList: Initiierte Workflows
BreadcrumbAdminWorkflowWorkflowNew: Workflow initiieren BreadcrumbAdminWorkflowWorkflowNew: Workflow initiieren
BreadcrumbWorkflowInstanceEdit win@WorkflowInstanceName: #{win} BreadcrumbWorkflowInstanceEdit win@WorkflowInstanceName: #{win}

View File

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

2
routes
View File

@ -66,6 +66,8 @@
/instantiate AWDInstantiateR GET POST /instantiate AWDInstantiateR GET POST
/admin/workflows/instances AdminWorkflowInstanceListR GET /admin/workflows/instances AdminWorkflowInstanceListR GET
/admin/workflows/instances/new AdminWorkflowInstanceNewR GET POST /admin/workflows/instances/new AdminWorkflowInstanceNewR GET POST
/admin/workflows/instances/#CryptoUUIDWorkflowInstance AdminWorkflowInstanceR:
/edit AWIEditR GET POST
/admin/workflows/workflows AdminWorkflowWorkflowListR GET /admin/workflows/workflows AdminWorkflowWorkflowListR GET
/admin/workflows/workflows/new AdminWorkflowWorkflowNewR GET POST /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 AWDInstantiateR -> i18nCrumb MsgBreadcrumbAdminWorkflowDefinitionInstantiate . Just $ AdminWorkflowDefinitionR wfdScope wfdName AWDEditR
breadcrumb AdminWorkflowInstanceListR = i18nCrumb MsgBreadcrumbAdminWorkflowInstanceList $ Just AdminWorkflowDefinitionListR breadcrumb AdminWorkflowInstanceListR = i18nCrumb MsgBreadcrumbAdminWorkflowInstanceList $ Just AdminWorkflowDefinitionListR
breadcrumb AdminWorkflowInstanceNewR = i18nCrumb MsgBreadcrumbAdminWorkflowInstanceNew $ Just AdminWorkflowInstanceListR 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 AdminWorkflowWorkflowListR = i18nCrumb MsgBreadcrumbAdminWorkflowWorkflowList $ Just AdminWorkflowInstanceListR
breadcrumb AdminWorkflowWorkflowNewR = i18nCrumb MsgBreadcrumbAdminWorkflowWorkflowNew $ Just AdminWorkflowWorkflowListR breadcrumb AdminWorkflowWorkflowNewR = i18nCrumb MsgBreadcrumbAdminWorkflowWorkflowNew $ Just AdminWorkflowWorkflowListR

View File

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

View File

@ -95,7 +95,7 @@ getAdminWorkflowDefinitionListR = do
] ]
where where
anchorEdit :: (WorkflowDefinitionData -> Widget) -> _ 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 displayGraph graph
= [shamlet| = [shamlet|
$newline never $newline never

View File

@ -2,6 +2,7 @@ module Handler.Workflow.Instance.Edit
( getGWIEditR, postGWIEditR ( getGWIEditR, postGWIEditR
, getSWIEditR, postSWIEditR , getSWIEditR, postSWIEditR
, workflowInstanceEditR , workflowInstanceEditR
, getAWIEditR, postAWIEditR
) where ) where
import Import import Import
@ -19,3 +20,8 @@ postSWIEditR ssh = workflowInstanceEditR $ WSSchool ssh
workflowInstanceEditR :: RouteWorkflowScope -> WorkflowInstanceName -> Handler Html workflowInstanceEditR :: RouteWorkflowScope -> WorkflowInstanceName -> Handler Html
workflowInstanceEditR = error "not implemented" 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) <$> view (_2 . _Value)
dbtColonnade :: Colonnade Sortable WorkflowInstanceData _ dbtColonnade :: Colonnade Sortable WorkflowInstanceData _
dbtColonnade = mconcat 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) $ , sortable (Just "scope") (i18nCell MsgWorkflowScope) . views (resultWorkflowInstance . _entityVal . _workflowInstanceScope . re _DBWorkflowScope) $
sqlCell . maybeT (return mempty) . fmap i18n . toRouteWorkflowScope sqlCell . maybeT (return mempty) . fmap i18n . toRouteWorkflowScope
, sortable (Just "title") (i18nCell MsgWorkflowInstanceDescriptionTitle) $ maybe mempty i18nCell . preview (resultDescription . _entityVal . _workflowInstanceDescriptionTitle) , 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 "workflows") (i18nCell MsgWorkflowInstanceWorkflowCount) $ maybe mempty i18nCell . views resultWorkflowCount (assertM' (> 0))
, sortable (Just "description") (i18nCell MsgWorkflowInstanceDescription) $ maybe mempty modalCell . preview (resultDescription . _entityVal . _workflowInstanceDescriptionDescription . _Just) , 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 dbtSorting = mconcat
[ singletonMap "name" . SortColumn $ views queryWorkflowInstance (E.^. WorkflowInstanceName) [ singletonMap "name" . SortColumn $ views queryWorkflowInstance (E.^. WorkflowInstanceName)
, singletonMap "scope" . SortColumn $ views queryWorkflowInstance (E.^. WorkflowInstanceScope) , singletonMap "scope" . SortColumn $ views queryWorkflowInstance (E.^. WorkflowInstanceScope)

View File

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