]> git.openstreetmap.org Git - rails.git/blob - app/models/report.rb
Implement allow list for account creation
[rails.git] / app / models / report.rb
1 # == Schema Information
2 #
3 # Table name: reports
4 #
5 #  id         :integer          not null, primary key
6 #  issue_id   :integer          not null
7 #  user_id    :integer          not null
8 #  details    :text             not null
9 #  category   :string           not null
10 #  created_at :datetime         not null
11 #  updated_at :datetime         not null
12 #
13 # Indexes
14 #
15 #  index_reports_on_issue_id  (issue_id)
16 #  index_reports_on_user_id   (user_id)
17 #
18 # Foreign Keys
19 #
20 #  reports_issue_id_fkey  (issue_id => issues.id)
21 #  reports_user_id_fkey   (user_id => users.id)
22 #
23
24 class Report < ApplicationRecord
25   belongs_to :issue, :counter_cache => true
26   belongs_to :user
27
28   validates :details, :presence => true, :characters => true
29   validates :category, :presence => true
30
31   def self.categories_for(reportable)
32     case reportable.class.name
33     when "DiaryEntry", "DiaryComment" then %w[spam offensive threat other]
34     when "User" then %w[spam offensive threat vandal other]
35     when "Note" then %w[spam personal abusive other]
36     else %w[other]
37     end
38   end
39
40   def details
41     RichText.new("markdown", self[:details])
42   end
43 end