From 4266ab147a3cc8ad5c41e10b736ec051a8a6438c Mon Sep 17 00:00:00 2001
From: Rosie Le Faive <lefaive@gmail.com>
Date: Thu, 14 Jul 2022 11:10:10 -0300
Subject: [PATCH] Coder.

---
 .../Condition/NodeIsIslandoraObject.php       | 33 ++++++++++++++++---
 src/Plugin/views/filter/NodeIsIslandora.php   |  6 ++--
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/src/Plugin/Condition/NodeIsIslandoraObject.php b/src/Plugin/Condition/NodeIsIslandoraObject.php
index 4e4689d7..0a212aaf 100644
--- a/src/Plugin/Condition/NodeIsIslandoraObject.php
+++ b/src/Plugin/Condition/NodeIsIslandoraObject.php
@@ -20,6 +20,31 @@ use Drupal\Islandora\IslandoraUtils;
  */
 class NodeIsIslandoraObject extends ConditionPluginBase implements ContainerFactoryPluginInterface {
 
+  /**
+   * Islandora Utils.
+   *
+   * @var \Drupal\islandora\IslandoraUtils
+   */
+  protected $utils;
+  
+   /**
+   * Constructs a Node is Islandora Condition plugin.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin_id for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Drupal\islandora\IslandoraUtils $islandora_utils
+   *   Islandora utilities.
+   * @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $entity_type_bundle_info
+   *   The entity type bundle service.
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, IslandoraUtils $islandora_utils) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->utils = $islandora_utils;
+  }
 
   /**
    * {@inheritdoc}
@@ -28,7 +53,8 @@ class NodeIsIslandoraObject extends ConditionPluginBase implements ContainerFact
     return new static(
       $configuration,
       $plugin_id,
-      $plugin_definition
+      $plugin_definition,
+      $container->get('islandora.utils')
     );
   }
 
@@ -40,9 +66,8 @@ class NodeIsIslandoraObject extends ConditionPluginBase implements ContainerFact
     if (!$node) {
       return FALSE;
     }
-    // Islandora objects are determined by Islandora Utils.
-    $utils = \Drupal::service('islandora.utils');
-    if ($utils->isIslandoraType('node',$node->bundle())) {
+    // Determine if node is Islandora.
+    if ($this->utils->isIslandoraType('node', $node->bundle())) {
       return TRUE;
     }
   }
diff --git a/src/Plugin/views/filter/NodeIsIslandora.php b/src/Plugin/views/filter/NodeIsIslandora.php
index 0c1741d2..a94da147 100644
--- a/src/Plugin/views/filter/NodeIsIslandora.php
+++ b/src/Plugin/views/filter/NodeIsIslandora.php
@@ -91,13 +91,14 @@ class NodeIsIslandora extends FilterPluginBase implements ContainerFactoryPlugin
     $types = [];
     foreach ($this->entityTypeBundleInfo->getBundleInfo('node') as $bundle_id => $bundle) {
       if ($this->utils->isIslandoraType('node', $bundle_id)) {
-        $types[] = $bundle['label'] . ' (' . $bundle_id . ')' ;
+        $types[] = "{$bundle['label']} ($bundle_id)";
       }
     }
+    $types_list = implode(', ', $types);
     $form['info'] = [
       '#type' => 'item',
       '#title' => 'Information',
-      '#description' => t("Configured Islandora bundles: ") . implode(', ', $types),
+      '#description' => t("Configured Islandora bundles: {$types_list} "),
     ];
     $form['negated'] = [
       '#type' => 'checkbox',
@@ -139,6 +140,5 @@ class NodeIsIslandora extends FilterPluginBase implements ContainerFactoryPlugin
     $node_table_alias = $this->query->addTable('node', $this->relationship, $join);
     $this->query->addWhere($this->options['group'], "$node_table_alias.type", $types, $condition);
   }
-
 }