FIX: Missing pending queued posts from topic view (#22838)

A previous change updated `ReviewableQueuedPost`'s `created_by`
to be consistent with other reviewable types. It assigns
the the creator of the post being queued to `target_created_by` and sets
the `created_by` to the creator of the reviewable itself.

This fix updates some of the `created_by` references missed during the
intial fix.
This commit is contained in:
Selase Krakani 2023-07-28 16:16:23 +00:00 committed by GitHub
parent 3bee2a41f4
commit 81cf481b16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 10 deletions

View File

@ -459,7 +459,7 @@ module Jobs
# Most Reviewable fields staff-private, but post content needs to be exported. # Most Reviewable fields staff-private, but post content needs to be exported.
ReviewableQueuedPost ReviewableQueuedPost
.where(created_by: @current_user.id) .where(target_created_by_id: @current_user.id)
.order(:created_at) .order(:created_at)
.each do |rev| .each do |rev|
yield( yield(

View File

@ -101,7 +101,8 @@ class Reviewable < ActiveRecord::Base
created_by:, created_by:,
payload: nil, payload: nil,
reviewable_by_moderator: false, reviewable_by_moderator: false,
potential_spam: true potential_spam: true,
target_created_by: nil
) )
reviewable = reviewable =
new( new(
@ -111,6 +112,7 @@ class Reviewable < ActiveRecord::Base
reviewable_by_moderator: reviewable_by_moderator, reviewable_by_moderator: reviewable_by_moderator,
payload: payload, payload: payload,
potential_spam: potential_spam, potential_spam: potential_spam,
target_created_by: target_created_by,
) )
reviewable.created_new! reviewable.created_new!

View File

@ -1543,7 +1543,7 @@ class User < ActiveRecord::Base
end end
def number_of_rejected_posts def number_of_rejected_posts
ReviewableQueuedPost.rejected.where(created_by_id: self.id).count ReviewableQueuedPost.rejected.where(target_created_by_id: self.id).count
end end
def number_of_flags_given def number_of_flags_given

View File

@ -575,7 +575,7 @@ class TopicView
def pending_posts def pending_posts
@pending_posts ||= @pending_posts ||=
ReviewableQueuedPost.pending.where(created_by: @user, topic: @topic).order(:created_at) ReviewableQueuedPost.pending.where(target_created_by: @user, topic: @topic).order(:created_at)
end end
def actions_summary def actions_summary

View File

@ -522,9 +522,11 @@ RSpec.describe Jobs::ExportUserArchive do
describe "queued posts" do describe "queued posts" do
let(:component) { "queued_posts" } let(:component) { "queued_posts" }
let(:reviewable_post) { Fabricate(:reviewable_queued_post, topic: topic, created_by: user) } let(:reviewable_post) do
Fabricate(:reviewable_queued_post, topic: topic, target_created_by: user)
end
let(:reviewable_topic) do let(:reviewable_topic) do
Fabricate(:reviewable_queued_post_topic, category: category, created_by: user) Fabricate(:reviewable_queued_post_topic, category: category, target_created_by: user)
end end
it "correctly exports queued posts" do it "correctly exports queued posts" do

View File

@ -547,7 +547,7 @@ RSpec.describe User do
fab!(:posts) { [post1, post2, post3] } fab!(:posts) { [post1, post2, post3] }
fab!(:post_ids) { [post1.id, post2.id, post3.id] } fab!(:post_ids) { [post1.id, post2.id, post3.id] }
let(:guardian) { Guardian.new(Fabricate(:admin)) } let(:guardian) { Guardian.new(Fabricate(:admin)) }
fab!(:reviewable_queued_post) { Fabricate(:reviewable_queued_post, created_by: user) } fab!(:reviewable_queued_post) { Fabricate(:reviewable_queued_post, target_created_by: user) }
it "deletes only one batch of posts" do it "deletes only one batch of posts" do
post2 post2
@ -1981,13 +1981,21 @@ RSpec.describe User do
describe "#number_of_rejected_posts" do describe "#number_of_rejected_posts" do
it "counts rejected posts" do it "counts rejected posts" do
Fabricate(:reviewable_queued_post, created_by: user, status: Reviewable.statuses[:rejected]) Fabricate(
:reviewable_queued_post,
target_created_by: user,
status: Reviewable.statuses[:rejected],
)
expect(user.number_of_rejected_posts).to eq(1) expect(user.number_of_rejected_posts).to eq(1)
end end
it "ignore non-rejected posts" do it "ignore non-rejected posts" do
Fabricate(:reviewable_queued_post, created_by: user, status: Reviewable.statuses[:approved]) Fabricate(
:reviewable_queued_post,
target_created_by: user,
status: Reviewable.statuses[:approved],
)
expect(user.number_of_rejected_posts).to eq(0) expect(user.number_of_rejected_posts).to eq(0)
end end

View File

@ -357,7 +357,8 @@ RSpec.describe TopicViewSerializer do
payload: { payload: {
raw: "hello my raw contents", raw: "hello my raw contents",
}, },
created_by: user, created_by: Discourse.system_user,
target_created_by: user,
) )
end end