mirror of
https://github.com/discourse/discourse.git
synced 2025-06-29 10:42:51 +08:00
FEATURE: Count only approved flagged posts in user pages (#22799)
FEATURE: Only approved flags for post counters * Why was this change necessary? The counters for flagged posts in the user's profile and user index from the admin view include flags that were rejected, ignored or pending review. This introduces unnecessary noise. Also the flagged posts counter in the user's profile includes custom flags which add further noise to this signal. * How does it address the problem? * Modifying User#flags_received_count to return posts with only approved standard flags * Refactoring User#number_of_flagged_posts to alias to User#flags_received_count * Updating the flagged post staff counter hyperlink to navigate to a filtered view of that user's approved flagged posts to maintain consistency with the counter * Adding system tests for the profile page to cover the flagged posts staff counter
This commit is contained in:
@ -17,4 +17,43 @@ describe "Viewing user staff info as an admin", type: :system do
|
||||
expect(user_page).to have_warning_messages_path(user)
|
||||
end
|
||||
end
|
||||
|
||||
context "for flagged posts" do
|
||||
before do
|
||||
%i[disagree ignore delete_and_ignore].each do |review_action|
|
||||
PostActionCreator
|
||||
.off_topic(admin, Fabricate(:post, user: user))
|
||||
.reviewable
|
||||
.perform(admin, review_action)
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are no approved flagged posts" do
|
||||
it "should not display a flagged-posts staff counter" do
|
||||
user_page.visit(user)
|
||||
expect(user_page).to have_no_staff_info_flagged_posts_counter
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are approved flagged posts" do
|
||||
before do
|
||||
2.times do
|
||||
PostActionCreator
|
||||
.off_topic(admin, Fabricate(:post, user: user))
|
||||
.reviewable
|
||||
.perform(admin, :agree_and_keep)
|
||||
end
|
||||
end
|
||||
|
||||
it "should display a flagged-posts staff counter with the right count and link to user's flagged posts" do
|
||||
user_page.visit(user)
|
||||
|
||||
expect(user_page).to have_staff_info_flagged_posts_count(count: 2)
|
||||
|
||||
user_page.staff_info_flagged_posts_counter.click
|
||||
|
||||
expect(user_page).to have_reviewable_flagged_posts_path(user)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user