diff --git a/app/models/post.rb b/app/models/post.rb index ebeee8274..8795beed2 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1724,12 +1724,19 @@ class Post < ApplicationRecord def added_tags_are_valid new_tags = added_tags.select { |t| t.post_count <= 1 } new_general_tags = new_tags.select { |t| t.category == Tag.categories.general } + new_artist_tags = new_tags.select { |t| t.category == Tag.categories.artist } if new_general_tags.present? n = new_general_tags.size tag_wiki_links = new_general_tags.map { |tag| "[[#{tag.name}]]" } self.warnings[:base] << "Created #{n} new #{n == 1 ? "tag" : "tags"}: #{tag_wiki_links.join(", ")}" end + + new_artist_tags.each do |tag| + if tag.artist.blank? + self.warnings[:base] << "Artist [[#{tag.name}]] requires an artist entry. \"Create new artist entry\":[/artists/new?name=#{CGI::escape(tag.name)}]" + end + end end end diff --git a/app/models/tag.rb b/app/models/tag.rb index 5f3a3fdc2..1cffddc6a 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -6,6 +6,7 @@ class Tag < ApplicationRecord attr_accessible :category, :as => [:moderator, :gold, :platinum, :member, :anonymous, :default, :builder, :admin] attr_accessible :is_locked, :as => [:moderator, :admin] has_one :wiki_page, :foreign_key => "title", :primary_key => "name" + has_one :artist, :foreign_key => "name", :primary_key => "name" has_one :antecedent_alias, lambda {active}, :class_name => "TagAlias", :foreign_key => "antecedent_name", :primary_key => "name" has_many :consequent_aliases, lambda {active}, :class_name => "TagAlias", :foreign_key => "consequent_name", :primary_key => "name" has_many :antecedent_implications, lambda {active}, :class_name => "TagImplication", :foreign_key => "antecedent_name", :primary_key => "name"