about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2022-02-11 22:20:19 +0100
committerGitHub <noreply@github.com>2022-02-11 22:20:19 +0100
commit8f03b7a2fb4b420eb46942157160816185e81751 (patch)
tree125819d272db5626bbd41406c633ef39ccd334da /app/models
parentd0fcf07436d158bcac2617d076a83d0aa49c39e6 (diff)
Add notifications when a reblogged status has been updated (#17404)
* Add notifications when a reblogged status has been updated

* Change wording to say "edit" instead of "update" and add missing controls

* Replace previous update notifications with the most up-to-date one
Diffstat (limited to 'app/models')
-rw-r--r--app/models/notification.rb6
-rw-r--r--app/models/status.rb1
2 files changed, 5 insertions, 2 deletions
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 3bf9dd483..c14eb8a7e 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -35,6 +35,7 @@ class Notification < ApplicationRecord
     follow_request
     favourite
     poll
+    update
   ).freeze
 
   TARGET_STATUS_INCLUDES_BY_TYPE = {
@@ -43,6 +44,7 @@ class Notification < ApplicationRecord
     mention: [mention: :status],
     favourite: [favourite: :status],
     poll: [poll: :status],
+    update: :status,
   }.freeze
 
   belongs_to :account, optional: true
@@ -76,7 +78,7 @@ class Notification < ApplicationRecord
 
   def target_status
     case type
-    when :status
+    when :status, :update
       status
     when :reblog
       status&.reblog
@@ -110,7 +112,7 @@ class Notification < ApplicationRecord
         cached_status = cached_statuses_by_id[notification.target_status.id]
 
         case notification.type
-        when :status
+        when :status, :update
           notification.status = cached_status
         when :reblog
           notification.status.reblog = cached_status
diff --git a/app/models/status.rb b/app/models/status.rb
index 4fabf24ef..2e3df98a1 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -62,6 +62,7 @@ class Status < ApplicationRecord
   has_many :favourites, inverse_of: :status, dependent: :destroy
   has_many :bookmarks, inverse_of: :status, dependent: :destroy
   has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy
+  has_many :reblogged_by_accounts, through: :reblogs, class_name: 'Account', source: :account
   has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread
   has_many :mentions, dependent: :destroy, inverse_of: :status
   has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status