about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeong Arm <kjwonmail@gmail.com>2022-04-24 04:47:27 +0900
committerGitHub <noreply@github.com>2022-04-23 21:47:27 +0200
commitea383278160bcee81477e86a95107d4a2dc315ef (patch)
tree565893c09576ebe1e0bcca4ea7094bfc041a276d
parent4884e0ca419b4c2b76612dececd060ab170d4dd9 (diff)
Let votes statuses are also searchable (#18070)
-rw-r--r--app/chewy/statuses_index.rb5
-rw-r--r--app/models/status.rb2
2 files changed, 7 insertions, 0 deletions
diff --git a/app/chewy/statuses_index.rb b/app/chewy/statuses_index.rb
index 1381a96ed..1304aeedb 100644
--- a/app/chewy/statuses_index.rb
+++ b/app/chewy/statuses_index.rb
@@ -55,6 +55,11 @@ class StatusesIndex < Chewy::Index
     data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
   end
 
+  crutch :votes do |collection|
+    data = ::PollVote.joins(:poll).where(poll: { status_id: collection.map(&:id) }).where(account: Account.local).pluck(:status_id, :account_id)
+    data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
+  end
+
   root date_detection: false do
     field :id, type: 'long'
     field :account_id, type: 'long'
diff --git a/app/models/status.rb b/app/models/status.rb
index a71451f50..288d374fd 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -145,11 +145,13 @@ class Status < ApplicationRecord
       ids += favourites.where(account: Account.local).pluck(:account_id)
       ids += reblogs.where(account: Account.local).pluck(:account_id)
       ids += bookmarks.where(account: Account.local).pluck(:account_id)
+      ids += poll.votes.where(account: Account.local).pluck(:account_id) if poll.present?
     else
       ids += preloaded.mentions[id] || []
       ids += preloaded.favourites[id] || []
       ids += preloaded.reblogs[id] || []
       ids += preloaded.bookmarks[id] || []
+      ids += preloaded.votes[id] || []
     end
 
     ids.uniq