diff --git a/app/models/post.rb b/app/models/post.rb index 0af8f472f..622997271 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -22,6 +22,7 @@ class Post < ApplicationRecord validate :removed_tags_are_valid validate :has_artist_tag validate :has_copyright_tag + validate :has_enough_tags validate :post_is_not_its_own_parent validate :updater_can_change_rating before_save :update_tag_post_counts @@ -1793,6 +1794,14 @@ class Post < ApplicationRecord self.warnings[:base] << "Copyright tag is required. Consider adding [[copyright request]] or [[original]]" end + + def has_enough_tags + return if !new_record? + + if tags.count { |t| t.category == Tag.categories.general } < 10 + self.warnings[:base] << "Uploads must have at least 10 general tags. Read [[howto:tag]] for guidelines on tagging your uploads" + end + end end include FileMethods diff --git a/test/unit/post_test.rb b/test/unit/post_test.rb index c2b3ca0f9..a25534c5e 100644 --- a/test/unit/post_test.rb +++ b/test/unit/post_test.rb @@ -1636,6 +1636,11 @@ class PostTest < ActiveSupport::TestCase should "warn when missing a copyright tag" do assert_match(/Copyright tag is required/, @post.warnings.full_messages.join) end + + should "warn when an upload doesn't have enough tags" do + post = FactoryGirl.create(:post, tag_string: "tagme") + assert_match(/Uploads must have at least \d+ general tags/, post.warnings.full_messages.join) + end end end end