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