diff --git a/app/assets/stylesheets/specific/uploads.css.scss b/app/assets/stylesheets/specific/uploads.css.scss index eabf737ef..e9d9dbb9f 100644 --- a/app/assets/stylesheets/specific/uploads.css.scss +++ b/app/assets/stylesheets/specific/uploads.css.scss @@ -38,5 +38,9 @@ div#c-uploads { } } } + + div.field_with_errors { + display: inline; + } } } diff --git a/app/models/upload.rb b/app/models/upload.rb index df1ed16b3..9d3ba51c6 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -13,7 +13,7 @@ class Upload < ActiveRecord::Base after_destroy :delete_temp_file validate :uploader_is_not_limited, :on => :create validate :file_or_source_is_present, :on => :create - validates :rating, :presence => true + validate :rating_given attr_accessible :file, :image_width, :image_height, :file_ext, :md5, :file_size, :as_pending, :source, :file_path, :content_type, :rating, :tag_string, :status, :backtrace, :post_id, :md5_confirmation, :parent_id module ValidationMethods @@ -60,6 +60,18 @@ class Upload < ActiveRecord::Base raise "md5 mismatch" end end + + def rating_given + if rating.present? + return true + elsif tag_string =~ /(?:\s|^)rating:[qse](?:\s|$)/i + self.rating = "q" # Dummy just so the upload can be created. The metatag will set the correct rating on the post after upload. + return true + else + self.errors.add(:base, "Must specify a rating") + return false + end + end end module ConversionMethods diff --git a/app/views/uploads/new.html.erb b/app/views/uploads/new.html.erb index 135d74c41..dac76b011 100644 --- a/app/views/uploads/new.html.erb +++ b/app/views/uploads/new.html.erb @@ -35,7 +35,11 @@