diff --git a/app/javascript/src/javascripts/autocomplete.js.erb b/app/javascript/src/javascripts/autocomplete.js.erb index 233ef9889..1a57746e3 100644 --- a/app/javascript/src/javascripts/autocomplete.js.erb +++ b/app/javascript/src/javascripts/autocomplete.js.erb @@ -117,7 +117,7 @@ Autocomplete.initialize_tag_autocomplete = function() { case "child": case "parent": case "filetype": - case "disapproval": + case "disapproved": case "embedded": results = Autocomplete.static_metatag_source(term, metatag); break; @@ -286,8 +286,8 @@ Autocomplete.static_metatags = { filetype: [ "jpg", "png", "gif", "swf", "zip", "webm", "mp4" ], - disapproval: [ - "any", "none", "disinterest", "poor_quality", "breaks_rules" + disapproved: [ + "disinterest", "poor_quality", "breaks_rules" ] } diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index d5b2a64bc..fc9f8592f 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -266,31 +266,27 @@ class PostQueryBuilder end end - if q[:disapproval] - q[:disapproval].each do |disapproval| - disapprovals = CurrentUser.user.post_disapprovals.select(:post_id) - - if disapproval.in?(%w[none false]) - relation = relation.where.not("posts.id": disapprovals) - elsif disapproval.in?(%w[any all true]) - relation = relation.where("posts.id": disapprovals) + if q[:disapproved] + q[:disapproved].each do |disapproved| + if disapproved == CurrentUser.name + disapprovals = CurrentUser.user.post_disapprovals.select(:post_id) else - relation = relation.where("posts.id": disapprovals.where(reason: disapproval)) + disapprovals = PostDisapproval.where(reason: disapproved) end + + relation = relation.where("posts.id": disapprovals.select(:post_id)) end end - if q[:disapproval_neg] - q[:disapproval_neg].each do |disapproval| - disapprovals = CurrentUser.user.post_disapprovals.select(:post_id) - - if disapproval.in?(%w[none false]) - relation = relation.where("posts.id": disapprovals) - elsif disapproval.in?(%w[any all true]) - relation = relation.where.not("posts.id": disapprovals) + if q[:disapproved_neg] + q[:disapproved_neg].each do |disapproved| + if disapproved == CurrentUser.name + disapprovals = CurrentUser.user.post_disapprovals.select(:post_id) else - relation = relation.where.not("posts.id": disapprovals.where(reason: disapproval)) + disapprovals = PostDisapproval.where(reason: disapproved) end + + relation = relation.where.not("posts.id": disapprovals.select(:post_id)) end end diff --git a/app/models/tag.rb b/app/models/tag.rb index e6b3e4b03..81a682988 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -17,7 +17,7 @@ class Tag < ApplicationRecord -locked locked width height mpixels ratio score favcount filesize source -source id -id date age order limit -status status tagcount parent -parent child pixiv_id pixiv search upvote downvote filetype -filetype flagger - -flagger appealer -appealer disapproval -disapproval embedded + -flagger appealer -appealer disapproved -disapproved embedded ] + TagCategory.short_name_list.map {|x| "#{x}tags"} + COUNT_METATAGS + COUNT_METATAG_SYNONYMS SUBQUERY_METATAGS = %w[commenter comm noter noteupdater artcomm flagger -flagger appealer -appealer] @@ -583,13 +583,13 @@ class Tag < ApplicationRecord user_id = User.name_to_id(g2) q[:artcomm_ids] << user_id unless user_id.blank? - when "disapproval" - q[:disapproval] ||= [] - q[:disapproval] << g2 + when "disapproved" + q[:disapproved] ||= [] + q[:disapproved] << g2 - when "-disapproval" - q[:disapproval_neg] ||= [] - q[:disapproval_neg] << g2 + when "-disapproved" + q[:disapproved_neg] ||= [] + q[:disapproved_neg] << g2 when "-pool" q[:pool_neg] ||= [] diff --git a/test/unit/post_test.rb b/test/unit/post_test.rb index 5f9de2f73..b64ee78ff 100644 --- a/test/unit/post_test.rb +++ b/test/unit/post_test.rb @@ -2374,21 +2374,19 @@ class PostTest < ActiveSupport::TestCase end end - should "return posts for a disapproval: metatag" do + should "return posts for a disapproved: metatag" do CurrentUser.scoped(FactoryBot.create(:mod_user)) do pending = FactoryBot.create(:post, is_pending: true) disapproved = FactoryBot.create(:post, is_pending: true) disapproval = FactoryBot.create(:post_disapproval, user: CurrentUser.user, post: disapproved, reason: "disinterest") - assert_tag_match([pending], "disapproval:none") - assert_tag_match([disapproved], "disapproval:any") - assert_tag_match([disapproved], "disapproval:disinterest") - assert_tag_match([], "disapproval:breaks_rules") + assert_tag_match([disapproved], "disapproved:#{CurrentUser.name}") + assert_tag_match([disapproved], "disapproved:disinterest") + assert_tag_match([], "disapproved:breaks_rules") - assert_tag_match([disapproved], "-disapproval:none") - assert_tag_match([pending], "-disapproval:any") - assert_tag_match([pending], "-disapproval:disinterest") - assert_tag_match([disapproved, pending], "-disapproval:breaks_rules") + assert_tag_match([pending], "-disapproved:#{CurrentUser.name}") + assert_tag_match([pending], "-disapproved:disinterest") + assert_tag_match([disapproved, pending], "-disapproved:breaks_rules") end end