From 01b847d07fca63d4e6ddc86dc9898af1e4b172a2 Mon Sep 17 00:00:00 2001 From: Toks Date: Fri, 7 Mar 2014 20:21:07 -0500 Subject: [PATCH] #1383: Remove banned_artist tag --- app/models/artist.rb | 7 +++++-- app/views/artists/_secondary_links.html.erb | 2 +- test/unit/artist_test.rb | 3 +++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/models/artist.rb b/app/models/artist.rb index 1cb33042b..11e2309c2 100644 --- a/app/models/artist.rb +++ b/app/models/artist.rb @@ -205,16 +205,19 @@ class Artist < ActiveRecord::Base def unban! Post.transaction do CurrentUser.without_safe_mode do + ti = TagImplication.where(:antecedent_name => name, :consequent_name => "banned_artist").first + ti.destroy if ti + begin Post.tag_match(name).each do |post| post.unban! + fixed_tags = post.tag_string.sub(/(?:\A| )banned_artist(?:\Z| )/, " ").strip + post.update_attributes(:tag_string => fixed_tags) end rescue Post::SearchError # swallow end - ti = TagImplication.where(:antecedent_name => name, :consequent_name => "banned_artist").first - ti.destroy if ti update_column(:is_banned, false) end end diff --git a/app/views/artists/_secondary_links.html.erb b/app/views/artists/_secondary_links.html.erb index 85857241d..3d929d606 100644 --- a/app/views/artists/_secondary_links.html.erb +++ b/app/views/artists/_secondary_links.html.erb @@ -22,7 +22,7 @@ <% end %> <% if CurrentUser.is_admin? %> <% if @artist.is_banned? %> -
  • <%= link_to "unban", unban_artist_path(@artist), :method => :put, :confirm => "Are you sure you want to unban this artist?" %>
  • +
  • <%= link_to "Unban", unban_artist_path(@artist), :method => :put, :confirm => "Are you sure you want to unban this artist?" %>
  • <% else %>
  • <%= link_to "Ban", ban_artist_path(@artist), :method => :put, :confirm => "Are you sure you want to ban this artist?" %>
  • diff --git a/test/unit/artist_test.rb b/test/unit/artist_test.rb index cfa3255a3..0b81cb587 100644 --- a/test/unit/artist_test.rb +++ b/test/unit/artist_test.rb @@ -7,6 +7,7 @@ class ArtistTest < ActiveSupport::TestCase CurrentUser.user = user CurrentUser.ip_addr = "127.0.0.1" MEMCACHE.flush_all + Delayed::Worker.delay_jobs = false end teardown do @@ -45,6 +46,7 @@ class ArtistTest < ActiveSupport::TestCase @artist.reload assert(!@artist.is_banned?, "artist should not be banned") assert(!@post.is_banned?, "post should not be banned") + assert_equal("aaa", @post.tag_string) end should "ban the post" do @@ -57,6 +59,7 @@ class ArtistTest < ActiveSupport::TestCase should "create a new tag implication" do assert_equal(1, TagImplication.where(:antecedent_name => "aaa", :consequent_name => "banned_artist").count) + assert_equal("aaa banned_artist", @post.tag_string) end end