From 088c2f5c751e868dbe50b7fdc04fc9f3f0206966 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Fri, 13 May 2022 20:22:25 +0200 Subject: [PATCH] feat(workflows): add archived timestamp --- models/workflows.model | 1 + src/Handler/Workflow/Instance/Initiate.hs | 5 +++-- src/Utils/Workflow.hs | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/models/workflows.model b/models/workflows.model index d20d4e040..7156044fe 100644 --- a/models/workflows.model +++ b/models/workflows.model @@ -50,4 +50,5 @@ WorkflowWorkflow scope (WorkflowScope TermIdentifier SchoolShorthand SqlBackendKey) -- TermId, SchoolId, CourseId graph SharedWorkflowGraphId state (WorkflowState FileReference SqlBackendKey) -- UserId + archived UTCTime Maybe deriving Generic diff --git a/src/Handler/Workflow/Instance/Initiate.hs b/src/Handler/Workflow/Instance/Initiate.hs index d0046ae91..f2ba34873 100644 --- a/src/Handler/Workflow/Instance/Initiate.hs +++ b/src/Handler/Workflow/Instance/Initiate.hs @@ -48,9 +48,10 @@ workflowInstanceInitiateR rScope win = workflowsDisabledWarning MsgWorkflowInsta wwId <- insert WorkflowWorkflow { workflowWorkflowInstance = Just wiId - , workflowWorkflowScope = workflowInstanceScope - , workflowWorkflowGraph = workflowInstanceGraph + , workflowWorkflowScope = workflowInstanceScope + , workflowWorkflowGraph = workflowInstanceGraph , workflowWorkflowState + , workflowWorkflowArchived = Nothing -- FIXME: set to now + 2 months if current state is final state } return . Just $ do diff --git a/src/Utils/Workflow.hs b/src/Utils/Workflow.hs index 9fe28aab5..89cc8a21f 100644 --- a/src/Utils/Workflow.hs +++ b/src/Utils/Workflow.hs @@ -200,12 +200,14 @@ getWorkflowWorkflowState' wwId Nothing = withReaderT (projectBackend @SqlBackend , workflowWorkflow E.^. WorkflowWorkflowScope , workflowWorkflow E.^. WorkflowWorkflowGraph , E.veryUnsafeCoerceSqlExprValue $ workflowWorkflow E.^. WorkflowWorkflowState + , workflowWorkflow E.^. WorkflowWorkflowArchived ) let ( E.Value workflowWorkflowInstance , E.Value workflowWorkflowScope , E.Value workflowWorkflowGraph , E.Value (wwState :: PersistValue) -- Don't parse + , E.Value workflowWorkflowArchived ) = res wwState' <- memcachedBy Nothing (WorkflowWorkflowStateParse wwState) . return $ fromPersistValue wwState case wwState' of