diff --git a/src/Plugin/views/field/ScheduledTransitionFromStateViewsField.php b/src/Plugin/views/field/ScheduledTransitionFromStateViewsField.php index ca192c3..3d44a75 100644 --- a/src/Plugin/views/field/ScheduledTransitionFromStateViewsField.php +++ b/src/Plugin/views/field/ScheduledTransitionFromStateViewsField.php @@ -67,6 +67,9 @@ class ScheduledTransitionFromStateViewsField extends FieldPluginBase { $scheduledTransition = $this->getEntity($values); $entity = $scheduledTransition->getEntity(); + if ($entity === NULL) { + return ''; + } $workflowPlugin = $scheduledTransition->getWorkflow()->getTypePlugin(); $workflowStates = $workflowPlugin ? $workflowPlugin->getStates() : []; diff --git a/src/Plugin/views/field/ScheduledTransitionRevisionLinkField.php b/src/Plugin/views/field/ScheduledTransitionRevisionLinkField.php index 220752b..c3f9ad0 100644 --- a/src/Plugin/views/field/ScheduledTransitionRevisionLinkField.php +++ b/src/Plugin/views/field/ScheduledTransitionRevisionLinkField.php @@ -81,6 +81,9 @@ class ScheduledTransitionRevisionLinkField extends LinkBase { $scheduledTransition = $this->getEntity($row); $entity = $scheduledTransition->getEntity(); + if ($entity === NULL) { + return NULL; + } $entityRevisionId = $scheduledTransition->getEntityRevisionId(); $entityRevision = $this->entityTypeManager ->getStorage($entity->getEntityTypeId()) diff --git a/tests/src/Functional/ScheduledTransitionViewsListTest.php b/tests/src/Functional/ScheduledTransitionViewsListTest.php index 737e8b7..3e31b14 100644 --- a/tests/src/Functional/ScheduledTransitionViewsListTest.php +++ b/tests/src/Functional/ScheduledTransitionViewsListTest.php @@ -81,11 +81,21 @@ class ScheduledTransitionViewsListTest extends BrowserTestBase { ]); $scheduledTransition->save(); + // Create a transition with no entity. + ScheduledTransition::create([ + 'entity' => NULL, + 'entity_revision_id' => 2, + 'author' => $author, + 'workflow' => $workflow->id(), + 'moderation_state' => $newState, + 'transition_on' => $date->getTimestamp(), + ])->save(); + $this->drupalGet($url); $this->assertSession()->statusCodeEquals(200); $tableRows = $this->cssSelect('table tbody tr'); - $this->assertCount(1, $tableRows); + $this->assertCount(2, $tableRows); $row1 = $this->cssSelect('table tbody tr:nth-child(1)'); $td3 = $row1[0]->find('css', 'td:nth-child(3)');