diff --git a/modules/log/commerce_log.post_update.php b/modules/log/commerce_log.post_update.php index 54a05afe89..42190a7600 100644 --- a/modules/log/commerce_log.post_update.php +++ b/modules/log/commerce_log.post_update.php @@ -50,8 +50,41 @@ function commerce_log_post_update_2() { $success_results = $result->getSucceeded(); $failure_results = $result->getFailed(); + $message = ''; if ($success_results) { - $message = t('Succeeded:') . '
'; + $message .= t('Succeeded:') . '
'; + foreach ($success_results as $success_message) { + $message .= $success_message . '
'; + } + $message .= '
'; + } + if ($failure_results) { + $message .= t('Failed:') . '
'; + foreach ($failure_results as $failure_message) { + $message .= $failure_message . '
'; + } + } + + return $message; +} + +/** + * Revert the Activity view to empty 'No results behavior'. + */ +function commerce_log_post_update_3() { + /** @var \Drupal\commerce\Config\ConfigUpdaterInterface $config_updater */ + $config_updater = \Drupal::service('commerce.config_updater'); + + $views = [ + 'views.view.commerce_activity', + ]; + $result = $config_updater->revert($views, FALSE); + + $success_results = $result->getSucceeded(); + $failure_results = $result->getFailed(); + $message = ''; + if ($success_results) { + $message .= t('Succeeded:') . '
'; foreach ($success_results as $success_message) { $message .= $success_message . '
'; } diff --git a/modules/log/config/install/views.view.commerce_activity.yml b/modules/log/config/install/views.view.commerce_activity.yml index 05014113a5..8633328bbc 100644 --- a/modules/log/config/install/views.view.commerce_activity.yml +++ b/modules/log/config/install/views.view.commerce_activity.yml @@ -291,18 +291,7 @@ display: title: 'Order logs' header: { } footer: { } - empty: - area_text_custom: - id: area_text_custom - table: views - field: area_text_custom - relationship: none - group_type: group - admin_label: '' - empty: true - tokenize: false - content: 'No log entries.' - plugin_id: text_custom + empty: { } relationships: { } arguments: source_entity_id: diff --git a/modules/log/tests/src/Functional/OrderAdminActivityTest.php b/modules/log/tests/src/Functional/OrderAdminActivityTest.php new file mode 100644 index 0000000000..b941d49450 --- /dev/null +++ b/modules/log/tests/src/Functional/OrderAdminActivityTest.php @@ -0,0 +1,70 @@ +order = $this->createEntity('commerce_order', [ + 'type' => 'default', + 'mail' => $this->loggedInUser->getEmail(), + 'uid' => $this->loggedInUser->id(), + 'store_id' => $this->store, + ]); + } + + /** + * Tests order activity on Order admin view. + */ + public function testOrderAdminActivity() { + $this->drupalGet($this->order->toUrl()); + $this->assertSession()->statusCodeEquals(200); + $this->assertSession()->pageTextNotContains(t('Order activity')); + $transition = $this->order->getState()->getTransitions(); + $this->order->getState()->applyTransition($transition['cancel']); + $this->order->save(); + $this->drupalGet($this->order->toUrl()); + $this->assertSession()->pageTextContains(t('Order activity')); + $this->assertSession()->pageTextContains(t('The order was canceled.')); + } + +} diff --git a/modules/order/commerce_order.post_update.php b/modules/order/commerce_order.post_update.php index f03caf6935..48a99222b8 100644 --- a/modules/order/commerce_order.post_update.php +++ b/modules/order/commerce_order.post_update.php @@ -181,7 +181,7 @@ function commerce_order_post_update_7() { $views = [ 'views.view.commerce_order_item_table', ]; - $result = $config_updater->revert($views); + $result = $config_updater->revert($views, FALSE); $success_results = $result->getSucceeded(); $failure_results = $result->getFailed(); diff --git a/modules/order/src/Plugin/Field/FieldFormatter/OrderTotalSummary.php b/modules/order/src/Plugin/Field/FieldFormatter/OrderTotalSummary.php index 97759e0df8..c299f33d71 100644 --- a/modules/order/src/Plugin/Field/FieldFormatter/OrderTotalSummary.php +++ b/modules/order/src/Plugin/Field/FieldFormatter/OrderTotalSummary.php @@ -71,6 +71,17 @@ public static function create(ContainerInterface $container, array $configuratio ); } + /** + * {@inheritdoc} + */ + public function view(FieldItemListInterface $items, $langcode = NULL) { + // Check first if the total price is not empty. + if ($items->isEmpty()) { + return []; + } + return parent::view($items, $langcode); + } + /** * {@inheritdoc} */ diff --git a/modules/order/templates/commerce-order--admin.html.twig b/modules/order/templates/commerce-order--admin.html.twig index f1b1c4a623..66e796f788 100644 --- a/modules/order/templates/commerce-order--admin.html.twig +++ b/modules/order/templates/commerce-order--admin.html.twig @@ -26,7 +26,7 @@ {{ order.order_items }} {{ order.total_price }} - {% if order.activity %} + {% if order.activity|render|striptags|trim is not empty %}

{% trans %}Order activity{% endtrans %}

{{ order.activity }} {% endif %} diff --git a/modules/order/tests/src/Functional/OrderAdminTest.php b/modules/order/tests/src/Functional/OrderAdminTest.php index 94760002b3..c13cf61873 100644 --- a/modules/order/tests/src/Functional/OrderAdminTest.php +++ b/modules/order/tests/src/Functional/OrderAdminTest.php @@ -250,7 +250,6 @@ public function testAdminOrderView() { ]); $order->setItems([$order_item]); $order->save(); - $this->drupalGet($order->toUrl()->toString()); $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('There are no order items yet.');