/** * @param WorkflowItem $workflowItem * @param Transition $transition * @return WorkflowTransitionRecord * @throws WorkflowException */ protected function createTransitionRecord(WorkflowItem $workflowItem, Transition $transition) { $transitionName = $transition->getName(); $stepFrom = $workflowItem->getCurrentStep(); $stepName = $transition->getStepTo()->getName(); $stepTo = $this->getDefinition()->getStepByName($stepName); if (!$stepTo) { throw new WorkflowException(sprintf('Workflow "%s" does not have step entity "%s"', $this->getName(), $stepName)); } $transitionRecord = new WorkflowTransitionRecord(); $transitionRecord->setTransitionName($transitionName)->setStepFrom($stepFrom)->setStepTo($stepTo); return $transitionRecord; }
/** * Get transition form. * * @param WorkflowItem $workflowItem * @param Transition $transition * @return Form */ protected function getTransitionForm(WorkflowItem $workflowItem, Transition $transition) { return $this->createForm($transition->getFormType(), $workflowItem->getData(), array_merge($transition->getFormOptions(), array('workflow_item' => $workflowItem, 'transition_name' => $transition->getName()))); }
public function testGetAllowedTransitions() { $firstTransition = new Transition(); $firstTransition->setName('first_transition'); $secondTransition = new Transition(); $secondTransition->setName('second_transition'); $step = new Step(); $step->setName('test_step'); $step->setAllowedTransitions(array($secondTransition->getName())); $workflow = $this->createWorkflow(); $workflow->getStepManager()->setSteps(array($step)); $workflow->getTransitionManager()->setTransitions(array($firstTransition, $secondTransition)); $workflowItem = new WorkflowItem(); $workflowItem->setCurrentStepName($step->getName()); $actualTransitions = $workflow->getTransitionsByWorkflowItem($workflowItem); $this->assertEquals(array($secondTransition), $actualTransitions->getValues()); }
/** * @param WorkflowItem $workflowItem * @param Transition $transition * @return WorkflowTransitionRecord */ protected function createTransitionRecord(WorkflowItem $workflowItem, Transition $transition) { $transitionName = $transition->getName(); $stepFrom = $workflowItem->getCurrentStepName(); $stepTo = $transition->getStepTo()->getName(); $transitionRecord = new WorkflowTransitionRecord(); $transitionRecord->setTransitionName($transitionName)->setStepFromName($stepFrom)->setStepToName($stepTo); return $transitionRecord; }