diff --git a/app/assets/javascripts/uploads.js b/app/assets/javascripts/uploads.js index c1a74f5ca..391f0e489 100644 --- a/app/assets/javascripts/uploads.js +++ b/app/assets/javascripts/uploads.js @@ -62,7 +62,7 @@ var new_artist_link = 'new'; if (data.danbooru_id) { - $("#source-record").html('' + data.danbooru_name + ''); + $("#source-record").html('' + data.danbooru_name + ' ' + new_artist_link); } else { $("#source-record").html(new_artist_link); } diff --git a/app/models/artist.rb b/app/models/artist.rb index 89a1cd296..6a7eada16 100644 --- a/app/models/artist.rb +++ b/app/models/artist.rb @@ -3,6 +3,7 @@ class Artist < ActiveRecord::Base before_save :normalize_name after_save :create_version after_save :save_url_string + after_create :categorize_tag validates_uniqueness_of :name belongs_to :creator, :class_name => "User" has_many :members, :class_name => "Artist", :foreign_key => "group_name", :primary_key => "name" @@ -10,6 +11,7 @@ class Artist < ActiveRecord::Base has_many :versions, :order => "artist_versions.id ASC", :class_name => "ArtistVersion" has_one :wiki_page, :foreign_key => "title", :primary_key => "name" has_one :tag_alias, :foreign_key => "antecedent_name", :primary_key => "name" + has_one :tag, :foreign_key => "name", :primary_key => "name" accepts_nested_attributes_for :wiki_page attr_accessible :body, :name, :url_string, :other_names, :other_names_comma, :group_name, :wiki_page_attributes, :notes, :as => [:member, :gold, :builder, :platinum, :contributor, :janitor, :moderator, :default, :admin] attr_accessible :is_active, :as => [:builder, :contributor, :janitor, :moderator, :default, :admin] @@ -174,6 +176,10 @@ class Artist < ActiveRecord::Base def tag_alias_name TagAlias.find_by_antecedent_name(name).consequent_name end + + def categorize_tag + Tag.find_or_create_by_name("artist:#{name}") + end end module BanMethods diff --git a/test/unit/artist_test.rb b/test/unit/artist_test.rb index 561cff717..5de5b6e62 100644 --- a/test/unit/artist_test.rb +++ b/test/unit/artist_test.rb @@ -205,5 +205,12 @@ class ArtistTest < ActiveSupport::TestCase artist.reload assert_equal("yyy", artist.other_names) end + + should "update the category of the tag" do + tag = FactoryGirl.create(:tag, :name => "abc") + artist = FactoryGirl.create(:artist, :name => "abc") + tag.reload + assert_equal(Tag.categories.artist, tag.category) + end end end