FIX: Show topic titles in deleted-posts (#19610)
Show topic titles in deleted-posts
This commit is contained in:
parent
06db264f24
commit
d914ea8366
|
@ -52,15 +52,15 @@ class AdminUserActionSerializer < ApplicationSerializer
|
|||
end
|
||||
|
||||
def slug
|
||||
object.topic&.slug
|
||||
topic&.slug
|
||||
end
|
||||
|
||||
def title
|
||||
object.topic&.title
|
||||
topic&.title
|
||||
end
|
||||
|
||||
def category_id
|
||||
object.topic&.category_id
|
||||
topic&.category_id
|
||||
end
|
||||
|
||||
def moderator_action
|
||||
|
@ -80,4 +80,14 @@ class AdminUserActionSerializer < ApplicationSerializer
|
|||
.select { |ua| [UserAction::REPLY, UserAction::RESPONSE].include? ua.action_type }
|
||||
.first.try(:action_type)
|
||||
end
|
||||
|
||||
# we need this to handle deleted topics which aren't loaded via
|
||||
# Topic.unscoped do
|
||||
# Post.includes(:topic)
|
||||
# end
|
||||
# because Rails 4 "unscoped" support is still bugged (cf. https://github.com/rails/rails/issues/13775)
|
||||
def topic
|
||||
return @topic if @topic
|
||||
@topic = object.topic || Topic.with_deleted.find_by_id(object.topic_id)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
describe AdminUserActionSerializer do
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
fab!(:admin) { Fabricate(:admin) }
|
||||
let(:guardian) { Guardian.new(admin) }
|
||||
|
||||
fab!(:topic) { Fabricate(:topic) }
|
||||
fab!(:post) { Fabricate(:post, topic: topic) }
|
||||
|
||||
it "includes the slug/title/category ID for a post's deleted topic" do
|
||||
topic.trash!
|
||||
|
||||
json = AdminUserActionSerializer.new(post, scope: guardian, root: false).as_json
|
||||
|
||||
expect(json[:slug]).to eq(topic.slug)
|
||||
expect(json[:title]).to eq(topic.title)
|
||||
expect(json[:category_id]).to eq(topic.category_id)
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue