X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/fc0096289dce3c89c1a9d3f7af4e2620f347df11..2d915b0e244d9507e8a642e39e451120c222640d:/app/models/report.rb diff --git a/app/models/report.rb b/app/models/report.rb index cc9605dea..eda70f865 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -2,27 +2,40 @@ # # Table name: reports # -# id :integer not null, primary key -# issue_id :integer -# reporter_user_id :integer -# details :text not null -# created_at :datetime not null -# updated_at :datetime not null +# id :integer not null, primary key +# issue_id :integer +# user_id :integer +# details :text not null +# category :string not null +# created_at :datetime not null +# updated_at :datetime not null # # Indexes # -# index_reports_on_issue_id (issue_id) -# index_reports_on_reporter_user_id (reporter_user_id) +# index_reports_on_issue_id (issue_id) +# index_reports_on_user_id (user_id) # # Foreign Keys # -# reports_issue_id_fkey (issue_id => issues.id) ON DELETE => cascade -# reports_reporter_user_id_fkey (reporter_user_id => users.id) ON DELETE => cascade +# reports_issue_id_fkey (issue_id => issues.id) ON DELETE => cascade +# reports_user_id_fkey (user_id => users.id) ON DELETE => cascade # class Report < ActiveRecord::Base belongs_to :issue, :counter_cache => true - belongs_to :user, :class_name => "User", :foreign_key => :reporter_user_id + belongs_to :user validates :details, :presence => true + validates :category, :presence => true + + def self.categories_for(reportable) + case reportable.class.name + when "DiaryEntry" then %w[spam offensive threat other] + when "DiaryComment" then %w[spam offensive threat other] + when "User" then %w[spam offensive threat vandal other] + when "Changeset" then %w[undiscussed_import mechanical_edit edit_error spam vandalism other] + when "Note" then %w[spam vandalism personal abusive other] + else %w[other] + end + end end