X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/1956ab59130096c19a4f041290b1e933258fb025..a4d3d324ecc2e4535dd1e8fa62bac2bdd2951d5b:/app/models/report.rb?ds=sidebyside diff --git a/app/models/report.rb b/app/models/report.rb index e32e09721..1475197fe 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -3,9 +3,10 @@ # Table name: reports # # id :integer not null, primary key -# issue_id :integer -# user_id :integer +# issue_id :integer not null +# user_id :integer not null # details :text not null +# category :string not null # created_at :datetime not null # updated_at :datetime not null # @@ -16,13 +17,27 @@ # # Foreign Keys # -# reports_issue_id_fkey (issue_id => issues.id) ON DELETE => cascade -# reports_user_id_fkey (user_id => users.id) ON DELETE => cascade +# reports_issue_id_fkey (issue_id => issues.id) +# reports_user_id_fkey (user_id => users.id) # -class Report < ActiveRecord::Base +class Report < ApplicationRecord belongs_to :issue, :counter_cache => true belongs_to :user - validates :details, :presence => true + validates :details, :presence => true, :characters => true + validates :category, :presence => true + + def self.categories_for(reportable) + case reportable.class.name + when "DiaryEntry", "DiaryComment" then %w[spam offensive threat other] + when "User" then %w[spam offensive threat vandal other] + when "Note" then %w[spam personal abusive other] + else %w[other] + end + end + + def details + RichText.new("markdown", self[:details]) + end end