diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php index 06b0f2c..8e4c78f 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php @@ -333,14 +333,12 @@ public function getRevisionId() { } public function isArchived() { - $field_name = 'archived'; - return ($this->hasField($field_name)) ? $this->get($field_name)->value : FALSE; + return ($this->hasField('archived')) ? $this->get('archived')->value : FALSE; } public function setArchived($archived) { - $field_name = 'archived'; - if ($this->hasField($field_name)) { - $this->set($field_name, $archived); + if ($this->hasField('archived')) { + $this->set('archived', $archived); } return $this; } @@ -1149,8 +1147,8 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { $fields['archived'] = BaseFieldDefinition::create('boolean') ->setLabel(new TranslatableMarkup('Archive flag')) ->setRevisionable(TRUE) - ->setTranslatable(TRUE) - ->setDefaultValue(FALSE); + ->setRequired(TRUE) + ->setDefaultValue([0 => ['value' => FALSE]]); } if ($entity_type->hasKey('langcode')) { $fields[$entity_type->getKey('langcode')] = BaseFieldDefinition::create('language') diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php index 57eaf0b..6ab4d32 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php @@ -674,7 +674,10 @@ protected function buildQuery($ids, $revision_id = FALSE, $include_archived = FA $query->addExpression('CASE base.' . $this->revisionKey . ' WHEN revision.' . $this->revisionKey . ' THEN 1 ELSE 0 END', 'isDefaultRevision'); if (!$include_archived && isset($entity_revision_fields['archived'])) { - $query->condition('revision.archived', FALSE); + $group = $query->orConditionGroup() + ->condition('revision.archived', 0) + ->condition('revision.archived', NULL, 'IS'); + $query->condition($group); } } diff --git a/core/modules/block_content/block_content.install b/core/modules/block_content/block_content.install index bd708ab..681017c 100644 --- a/core/modules/block_content/block_content.install +++ b/core/modules/block_content/block_content.install @@ -69,8 +69,8 @@ function block_content_update_8004() { $archived = BaseFieldDefinition::create('boolean') ->setLabel(t('Archive flag')) ->setRevisionable(TRUE) - ->setTranslatable(TRUE) - ->setDefaultValue(FALSE); + ->setRequired(TRUE) + ->setDefaultValue([0 => ['value' => FALSE]]); \Drupal::entityDefinitionUpdateManager() ->installFieldStorageDefinition('archived', 'block_content', 'block_content', $archived); } diff --git a/core/modules/block_content/tests/src/Kernel/BlockContentArchiveTest.php b/core/modules/block_content/tests/src/Kernel/BlockContentArchiveTest.php index 64b68a9..484092e 100644 --- a/core/modules/block_content/tests/src/Kernel/BlockContentArchiveTest.php +++ b/core/modules/block_content/tests/src/Kernel/BlockContentArchiveTest.php @@ -48,4 +48,4 @@ public function testArchiveField() { $loaded_archive_block_content = BlockContent::load($block_content->id()); $this->assertNull($loaded_archive_block_content); } -} \ No newline at end of file +} diff --git a/core/modules/node/node.install b/core/modules/node/node.install index fc397fa..5fb8cd6 100644 --- a/core/modules/node/node.install +++ b/core/modules/node/node.install @@ -226,8 +226,8 @@ function node_update_8004() { $archived = BaseFieldDefinition::create('boolean') ->setLabel(t('Archive flag')) ->setRevisionable(TRUE) - ->setTranslatable(TRUE) - ->setDefaultValue(FALSE); + ->setRequired(TRUE) + ->setDefaultValue([0 => ['value' => FALSE]]); \Drupal::entityDefinitionUpdateManager() ->installFieldStorageDefinition('archived', 'node', 'node', $archived); } \ No newline at end of file diff --git a/core/modules/node/tests/src/Kernel/NodeArchiveTest.php b/core/modules/node/tests/src/Kernel/NodeArchiveTest.php index 464c384..ff78ba2 100644 --- a/core/modules/node/tests/src/Kernel/NodeArchiveTest.php +++ b/core/modules/node/tests/src/Kernel/NodeArchiveTest.php @@ -48,4 +48,4 @@ public function testArchiveField() { $loaded_archive_node = Node::load($node->id()); $this->assertNull($loaded_archive_node); } -} \ No newline at end of file +} diff --git a/core/modules/serialization/src/Tests/EntitySerializationTest.php b/core/modules/serialization/src/Tests/EntitySerializationTest.php index 85aa801..aa463ef 100644 --- a/core/modules/serialization/src/Tests/EntitySerializationTest.php +++ b/core/modules/serialization/src/Tests/EntitySerializationTest.php @@ -119,7 +119,9 @@ public function testNormalize() { 'revision_id' => array( array('value' => 1), ), - 'archived' => array(), + 'archived' => array( + array('value' => FALSE) + ), 'default_langcode' => array( array('value' => TRUE), ), @@ -191,7 +193,7 @@ public function testSerialize() { 'created' => '' . $this->entity->created->value . '', 'user_id' => '' . $this->user->id() . '' . $this->user->getEntityTypeId() . '' . $this->user->uuid() . '' . $this->user->url() . '', 'revision_id' => '' . $this->entity->getRevisionId() . '', - 'archived' => '', + 'archived' => '0', 'default_langcode' => '1', 'non_rev_field' => '', 'field_test_text' => '' . $this->values['field_test_text']['value'] . '' . $this->values['field_test_text']['format'] . '', diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php index 4929670..c92093c 100644 --- a/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php +++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateTest.php @@ -102,7 +102,7 @@ public function testEntityTypeUpdateWithoutData() { $expected = array( 'entity_test_update' => array( t('The %entity_type entity type needs to be updated.', ['%entity_type' => $this->entityManager->getDefinition('entity_test_update')->getLabel()]), - t('The %field_name field needs to be installed.', ['%field_name' => $this->entityManager->getFieldDefinitions('entity_test_update', null)['archived']->getLabel()]), + t('The %field_name field needs to be installed.', ['%field_name' => $this->entityManager->getFieldDefinitions('entity_test_update', NULL)['archived']->getLabel()]), ), ); $this->assertEqual($this->entityDefinitionUpdateManager->getChangeSummary(), $expected); //, 'EntityDefinitionUpdateManager reports the expected change summary.');