about summary refs log tree commit diff
path: root/app/models/status.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-03-28 04:44:59 +0100
committerGitHub <noreply@github.com>2019-03-28 04:44:59 +0100
commitf1bc90ab508cbdebc646324f87db48a9e80036f4 (patch)
treec9e6fff16d8e69ed99e7010cabd4d83d595e5493 /app/models/status.rb
parentf46f67d984e4e2deb4bf98cd5c5de813caf66eca (diff)
Rename :poll to :preloadable_poll and :owned_poll to :poll on Status (#10401)
Also, fix some n+1 queries

Resolve #10365
Diffstat (limited to 'app/models/status.rb')
-rw-r--r--app/models/status.rb19
1 files changed, 10 insertions, 9 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index d3fb83cca..8d31fd382 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -45,7 +45,7 @@ class Status < ApplicationRecord
   belongs_to :account, inverse_of: :statuses
   belongs_to :in_reply_to_account, foreign_key: 'in_reply_to_account_id', class_name: 'Account', optional: true
   belongs_to :conversation, optional: true
-  belongs_to :poll, optional: true
+  belongs_to :preloadable_poll, class_name: 'Poll', foreign_key: 'poll_id', optional: true
 
   belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies, optional: true
   belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs, optional: true
@@ -63,7 +63,7 @@ class Status < ApplicationRecord
   has_one :notification, as: :activity, dependent: :destroy
   has_one :stream_entry, as: :activity, inverse_of: :status
   has_one :status_stat, inverse_of: :status
-  has_one :owned_poll, class_name: 'Poll', inverse_of: :status, dependent: :destroy
+  has_one :poll, inverse_of: :status, dependent: :destroy
 
   validates :uri, uniqueness: true, presence: true, unless: :local?
   validates :text, presence: true, unless: -> { with_media? || reblog? }
@@ -72,7 +72,7 @@ class Status < ApplicationRecord
   validates :reblog, uniqueness: { scope: :account }, if: :reblog?
   validates :visibility, exclusion: { in: %w(direct limited) }, if: :reblog?
 
-  accepts_nested_attributes_for :owned_poll
+  accepts_nested_attributes_for :poll
 
   default_scope { recent }
 
@@ -107,7 +107,7 @@ class Status < ApplicationRecord
                    :tags,
                    :preview_cards,
                    :stream_entry,
-                   :poll,
+                   :preloadable_poll,
                    account: :account_stat,
                    active_mentions: { account: :account_stat },
                    reblog: [
@@ -118,7 +118,7 @@ class Status < ApplicationRecord
                      :media_attachments,
                      :conversation,
                      :status_stat,
-                     :poll,
+                     :preloadable_poll,
                      account: :account_stat,
                      active_mentions: { account: :account_stat },
                    ],
@@ -214,10 +214,11 @@ class Status < ApplicationRecord
 
   def emojis
     return @emojis if defined?(@emojis)
-    fields = [spoiler_text, text]
-    fields += owned_poll.options unless owned_poll.nil?
+
+    fields  = [spoiler_text, text]
+    fields += preloadable_poll.options unless preloadable_poll.nil?
+
     @emojis = CustomEmoji.from_text(fields.join(' '), account.domain)
-    @emojis
   end
 
   def mark_for_mass_destruction!
@@ -453,7 +454,7 @@ class Status < ApplicationRecord
   end
 
   def set_poll_id
-    update_column(:poll_id, owned_poll.id) unless owned_poll.nil?
+    update_column(:poll_id, poll.id) unless poll.nil?
   end
 
   def set_visibility