diff --git a/app/jobs/scheduled/pending_reviewables_reminder.rb b/app/jobs/scheduled/pending_reviewables_reminder.rb index a0b4c6597cc..92642b03271 100644 --- a/app/jobs/scheduled/pending_reviewables_reminder.rb +++ b/app/jobs/scheduled/pending_reviewables_reminder.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_dependency 'flag_query' - module Jobs class PendingReviewablesReminder < Jobs::Scheduled diff --git a/lib/flag_query.rb b/lib/flag_query.rb index 148477286a7..c03763d74ba 100644 --- a/lib/flag_query.rb +++ b/lib/flag_query.rb @@ -220,15 +220,4 @@ module FlagQuery users: User.where(id: user_ids) } end - - def self.excerpt(cooked) - excerpt = Post.excerpt(cooked, 200, keep_emoji_images: true) - # remove the first link if it's the first node - fragment = Nokogiri::HTML.fragment(excerpt) - if fragment.children.first == fragment.css("a:first").first && fragment.children.first - fragment.children.first.remove - end - fragment.to_html.strip - end - end diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb index 7fe0198ada4..96bdcc3e339 100644 --- a/lib/plugin/instance.rb +++ b/lib/plugin/instance.rb @@ -129,12 +129,6 @@ class Plugin::Instance end end - def whitelist_flag_post_custom_field(field) - reloadable_patch do |plugin| - ::FlagQuery.register_plugin_post_custom_field(field, plugin) # plugin.enabled? is checked at runtime - end - end - def whitelist_staff_user_custom_field(field) reloadable_patch do |plugin| ::User.register_plugin_staff_custom_field(field, plugin) # plugin.enabled? is checked at runtime diff --git a/lib/reviewable/conversation.rb b/lib/reviewable/conversation.rb index 4fc44c0adfc..1b867888f3b 100644 --- a/lib/reviewable/conversation.rb +++ b/lib/reviewable/conversation.rb @@ -11,7 +11,17 @@ class Reviewable < ActiveRecord::Base def initialize(post) @user = post.user @id = post.id - @excerpt = FlagQuery.excerpt(post.cooked) + @excerpt = self.class.excerpt(post.cooked) + end + + def self.excerpt(cooked) + excerpt = ::Post.excerpt(cooked, 200, keep_emoji_images: true) + # remove the first link if it's the first node + fragment = Nokogiri::HTML.fragment(excerpt) + if fragment.children.first == fragment.css("a:first").first && fragment.children.first + fragment.children.first.remove + end + fragment.to_html.strip end end diff --git a/lib/tasks/posts.rake b/lib/tasks/posts.rake index 5bcdf2983e8..fec5a4f0077 100644 --- a/lib/tasks/posts.rake +++ b/lib/tasks/posts.rake @@ -277,26 +277,6 @@ task 'posts:delete_all_likes' => :environment do puts "", "#{likes_deleted} likes deleted!", "" end -desc 'Defer all flags' -task 'posts:defer_all_flags' => :environment do - - active_flags = FlagQuery.flagged_post_actions('active') - - flags_deferred = 0 - total = active_flags.count - - active_flags.each do |post_action| - begin - PostAction.defer_flags!(Post.find(post_action.post_id), Discourse.system_user) - print_status(flags_deferred += 1, total) - rescue - # skip - end - end - - puts "", "#{flags_deferred} flags deferred!", "" -end - desc 'Refreshes each post that was received via email' task 'posts:refresh_emails', [:topic_id] => [:environment] do |_, args| posts = Post.where.not(raw_email: nil).where(via_email: true) diff --git a/spec/components/flag_query_spec.rb b/spec/components/flag_query_spec.rb deleted file mode 100644 index 6e37008265e..00000000000 --- a/spec/components/flag_query_spec.rb +++ /dev/null @@ -1,150 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' -require_dependency 'flag_query' - -describe FlagQuery do - fab!(:admin) { Fabricate(:admin) } - fab!(:moderator) { Fabricate(:moderator) } - fab!(:codinghorror) { Fabricate(:coding_horror) } - - describe "flagged_topics" do - it "respects `reviewable_default_visibility`" do - Reviewable.set_priorities(medium: 10.0) - - post = create_post - - SiteSetting.reviewable_default_visibility = 'low' - PostActionCreator.spam(moderator, post) - - result = FlagQuery.flagged_topics - expect(result[:flagged_topics]).to be_present - ft = result[:flagged_topics].first - expect(ft.topic).to eq(post.topic) - expect(ft.flag_counts).to eq(PostActionType.types[:spam] => 1) - - SiteSetting.reviewable_default_visibility = 'medium' - - result = FlagQuery.flagged_topics - expect(result[:flagged_topics]).to be_blank - - PostActionCreator.create(admin, post, :inappropriate) - result = FlagQuery.flagged_topics - expect(result[:flagged_topics]).to be_present - ft = result[:flagged_topics].first - expect(ft.topic).to eq(post.topic) - expect(ft.flag_counts).to eq( - PostActionType.types[:spam] => 1, - PostActionType.types[:inappropriate] => 1 - ) - end - end - - describe "flagged_post_actions" do - - it "returns the proper count" do - post = create_post - PostActionCreator.spam(moderator, post) - expect(FlagQuery.flagged_post_actions(topic_id: post.topic_id).count).to eq(1) - expect(FlagQuery.flagged_post_actions(topic_id: post.topic_id, filter: 'old').count).to eq(0) - end - end - - describe "flagged_posts_report" do - it "does not return flags on system posts" do - post = create_post(user: Discourse.system_user) - PostActionCreator.create(codinghorror, post, :spam) - posts, topics, users = FlagQuery.flagged_posts_report(admin) - - expect(posts).to be_blank - expect(topics).to be_blank - expect(users).to be_blank - end - - it "operates correctly" do - post = create_post - post2 = create_post - - user2 = Fabricate(:user) - user3 = Fabricate(:user) - - PostActionCreator.spam(codinghorror, post) - PostActionCreator.create(user2, post, :spam) - result = PostActionCreator.new( - user3, - post, - PostActionType.types[:notify_moderators], - message: "this is a :one::zero:" - ).perform - mod_message = result.post_action - - PostActionCreator.spam(codinghorror, post2) - PostActionCreator.spam(user2, post2) - - posts, topics, users, all_actions = FlagQuery.flagged_posts_report(admin) - - expect(posts.count).to eq(2) - first = posts.first - - expect(users.count).to eq(5) - expect(first[:post_action_ids].count).to eq(2) - - expect(topics.count).to eq(2) - - second = posts[1] - expect(second[:post_action_ids].count).to eq(3) - - action = all_actions.find { |a| a[:id] == second[:post_action_ids][0] } - expect(action[:permalink]).to eq(mod_message.related_post.topic.relative_url) - expect(action[:conversation][:response][:excerpt]).to match("