From 811b4bc0aa32404d79653da72bf010efb77baeab Mon Sep 17 00:00:00 2001
From: echarp <manu@echarp.org>
Date: Tue, 4 Feb 2020 19:17:38 +0100
Subject: [PATCH] Slightly reworked cloud tag and tag page, to display
 organisation with similar name

---
 app/controllers/digests_controller.rb |  3 +--
 app/controllers/tags_controller.rb    | 25 +++++++++----------------
 config/application.rb                 |  2 +-
 3 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/app/controllers/digests_controller.rb b/app/controllers/digests_controller.rb
index ae0f0a299..b003d346c 100644
--- a/app/controllers/digests_controller.rb
+++ b/app/controllers/digests_controller.rb
@@ -2,7 +2,6 @@
 class DigestsController < ApplicationController
   has_scope :region, :locality, :tag
   has_scope :near, type: :hash, using: %i[location distance]
-  has_scope :moderated, default: nil, allow_blank: true
   has_scope :period, allow_blank: true, type: :hash, using: %i[year week],
                      default: (
                        lambda do
@@ -28,6 +27,6 @@ class DigestsController < ApplicationController
 
   def set_events
     @week ||= Time.zone.today + 7.days
-    @events = apply_scopes Event
+    @events = apply_scopes Event.moderated
   end
 end
diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb
index 34769bc62..81f476043 100644
--- a/app/controllers/tags_controller.rb
+++ b/app/controllers/tags_controller.rb
@@ -2,6 +2,7 @@
 class TagsController < InheritedResources::Base
   has_scope :region, :locality, :daylimit
   has_scope :tag, as: :id
+  before_action :set_orgas, if: -> { params[:id].present? }
 
   def index
     @tags = ActsAsTaggableOn::Tag.where('taggings_count > ?',
@@ -21,7 +22,6 @@ class TagsController < InheritedResources::Base
   def show
     @events_future = apply_scopes Event.moderated.future
     @events_past = apply_scopes Event.moderated.past
-    @orgas = apply_scopes Orga.moderated.active
 
     respond_to do |format|
       format.html
@@ -29,23 +29,16 @@ class TagsController < InheritedResources::Base
     end
   end
 
-  def orgas
-    @tags = organise_tags apply_scopes(Orga.moderated)
-
-    respond_to do |format|
-      format.html
-      format.json { render json: @tags }
-    end
-  end
-
   private
 
   # Splits, groups, rejects the less used
-  def organise_tags(tags)
-    tags.where.not(tags: '').pluck(:tags).map(&:split).flatten
-        .group_by { |i| i }
-        .map { |k, v| [k, v.size] }
-        .reject { |_k, v| v <= 3 }
-        .sort { |t| -t[1] }
+  def set_orgas
+    @orgas = (apply_scopes(Orga.moderated.active) +
+              Orga.moderated.active
+                 .where(
+                   'lower(name) like lower(?)',
+                   "%#{params[:id].tr '-', '%'}%"
+                 )
+             ).uniq
   end
 end
diff --git a/config/application.rb b/config/application.rb
index 9fb323bc0..46f043998 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -49,6 +49,6 @@ module AgendaDuLibreRails
     # TODO
     config.action_controller.per_form_csrf_tokens = false
 
-    config.cloud_threshold = 3
+    config.cloud_threshold = 5
   end
 end
-- 
GitLab