* Implement Assignment of Reports (#6967) * Change translation of admin.report.comment.label to "Report Comment" for clarity As we'll soon add the ability for reports to have comments on them, this clarification makes sense. * Implement notes for Reports This enables moderators to leave comments about a report whilst they work on it * Fix display of report moderation notes * Allow reports to be reopened / marked as unresolved * Redirect to reports listing upon resolution of report * Implement "resolve with note" functionality * Add inverse relationship for report notes * Remove additional database querying when loading report notes * Fix tests for reports * Fix localisations for report notes / reports
This commit is contained in:
parent
36eac8ba90
commit
e85cffb236
17 changed files with 290 additions and 25 deletions
|
@ -95,6 +95,8 @@ class Account < ApplicationRecord
|
|||
has_many :reports
|
||||
has_many :targeted_reports, class_name: 'Report', foreign_key: :target_account_id
|
||||
|
||||
has_many :report_notes, dependent: :destroy
|
||||
|
||||
# Moderation notes
|
||||
has_many :account_moderation_notes, dependent: :destroy
|
||||
has_many :targeted_moderation_notes, class_name: 'AccountModerationNote', foreign_key: :target_account_id, dependent: :destroy
|
||||
|
|
|
@ -12,12 +12,16 @@
|
|||
# account_id :integer not null
|
||||
# action_taken_by_account_id :integer
|
||||
# target_account_id :integer not null
|
||||
# assigned_account_id :integer
|
||||
#
|
||||
|
||||
class Report < ApplicationRecord
|
||||
belongs_to :account
|
||||
belongs_to :target_account, class_name: 'Account'
|
||||
belongs_to :action_taken_by_account, class_name: 'Account', optional: true
|
||||
belongs_to :assigned_account, class_name: 'Account', optional: true
|
||||
|
||||
has_many :notes, class_name: 'ReportNote', foreign_key: :report_id, inverse_of: :report, dependent: :destroy
|
||||
|
||||
scope :unresolved, -> { where(action_taken: false) }
|
||||
scope :resolved, -> { where(action_taken: true) }
|
||||
|
|
21
app/models/report_note.rb
Normal file
21
app/models/report_note.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
# frozen_string_literal: true
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: report_notes
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# content :text not null
|
||||
# report_id :integer not null
|
||||
# account_id :integer not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
|
||||
class ReportNote < ApplicationRecord
|
||||
belongs_to :account
|
||||
belongs_to :report, inverse_of: :notes
|
||||
|
||||
scope :latest, -> { reorder('created_at ASC') }
|
||||
|
||||
validates :content, presence: true, length: { maximum: 500 }
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue