From 05880717df95b5a5b59269ce9c981c109c070b1d Mon Sep 17 00:00:00 2001
From: Keshav Patel <61262-Keshav@users.noreply.drupalcode.org>
Date: Sun, 23 Feb 2025 07:05:02 +0000
Subject: [PATCH] git commit -m 'Issue #2922066: Duplicate Flagged Nodes in
 View'

---
 flag.module | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/flag.module b/flag.module
index b278591a..3268034b 100644
--- a/flag.module
+++ b/flag.module
@@ -17,6 +17,8 @@ use Drupal\flag\FlagInterface;
 use Drupal\flag\Plugin\Flag\EntityFlagType;
 use Drupal\system\Entity\Action;
 use Drupal\user\UserInterface;
+use Drupal\views\Plugin\views\query\QueryPluginBase;
+use Drupal\views\ViewExecutable;
 
 /**
  * Implements hook_help().
@@ -648,3 +650,15 @@ function flag_flag_delete(FlagInterface $flag) {
     $action->delete();
   }
 }
+
+/**
+ * Implements hook_views_query_alter().
+ */
+function flag_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
+  if (!empty($view->relationship) && is_array($view->relationship) && isset($view->relationship['flag_relationship']) && isset($view->field['count'])) {
+    $base_table = $view->storage->get('base_table');
+    $base_field = $view->storage->get('base_field');
+    $query->addField($base_table, $base_field, $base_table . '_' . $base_field, ['function' => 'groupby']);
+    $query->addGroupBy($base_table . '.' . $base_field);
+  }
+}
-- 
GitLab