mirror of https://github.com/tootsuite/mastodon
Move `Account#account_notes` declaration from interactions->associations
parent
37f00fb018
commit
a0a3f7bef9
|
@ -9,9 +9,9 @@ class Api::V1::Accounts::NotesController < Api::BaseController
|
||||||
|
|
||||||
def create
|
def create
|
||||||
if params[:comment].blank?
|
if params[:comment].blank?
|
||||||
AccountNote.find_by(account: current_account, target_account: @account)&.destroy
|
current_account.account_notes.find_by(target_account: @account)&.destroy
|
||||||
else
|
else
|
||||||
@note = AccountNote.find_or_initialize_by(account: current_account, target_account: @account)
|
@note = current_account.account_notes.find_or_initialize_by(target_account: @account)
|
||||||
@note.comment = params[:comment]
|
@note.comment = params[:comment]
|
||||||
@note.save! if @note.changed?
|
@note.save! if @note.changed?
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,8 +16,8 @@ class AccountNote < ApplicationRecord
|
||||||
|
|
||||||
COMMENT_SIZE_LIMIT = 2_000
|
COMMENT_SIZE_LIMIT = 2_000
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account, inverse_of: :account_notes
|
||||||
belongs_to :target_account, class_name: 'Account'
|
belongs_to :target_account, class_name: 'Account', inverse_of: :targeted_account_notes
|
||||||
|
|
||||||
validates :account_id, uniqueness: { scope: :target_account_id }
|
validates :account_id, uniqueness: { scope: :target_account_id }
|
||||||
validates :comment, length: { maximum: COMMENT_SIZE_LIMIT }
|
validates :comment, length: { maximum: COMMENT_SIZE_LIMIT }
|
||||||
|
|
|
@ -9,6 +9,7 @@ module Account::Associations
|
||||||
# Association where account owns record
|
# Association where account owns record
|
||||||
with_options inverse_of: :account do
|
with_options inverse_of: :account do
|
||||||
has_many :account_moderation_notes
|
has_many :account_moderation_notes
|
||||||
|
has_many :account_notes
|
||||||
has_many :account_pins
|
has_many :account_pins
|
||||||
has_many :account_warnings
|
has_many :account_warnings
|
||||||
has_many :aliases, class_name: 'AccountAlias'
|
has_many :aliases, class_name: 'AccountAlias'
|
||||||
|
@ -42,6 +43,7 @@ module Account::Associations
|
||||||
# Association where account is targeted by record
|
# Association where account is targeted by record
|
||||||
with_options foreign_key: :target_account_id, inverse_of: :target_account do
|
with_options foreign_key: :target_account_id, inverse_of: :target_account do
|
||||||
has_many :strikes, class_name: 'AccountWarning'
|
has_many :strikes, class_name: 'AccountWarning'
|
||||||
|
has_many :targeted_account_notes, class_name: 'AccountNote'
|
||||||
has_many :targeted_moderation_notes, class_name: 'AccountModerationNote'
|
has_many :targeted_moderation_notes, class_name: 'AccountModerationNote'
|
||||||
has_many :targeted_reports, class_name: 'Report'
|
has_many :targeted_reports, class_name: 'Report'
|
||||||
end
|
end
|
||||||
|
|
|
@ -88,9 +88,6 @@ module Account::Interactions
|
||||||
has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account
|
has_many :remote_severed_relationships, foreign_key: 'remote_account_id', inverse_of: :remote_account
|
||||||
end
|
end
|
||||||
|
|
||||||
# Account notes
|
|
||||||
has_many :account_notes, dependent: :destroy
|
|
||||||
|
|
||||||
# Block relationships
|
# Block relationships
|
||||||
with_options class_name: 'Block', dependent: :destroy do
|
with_options class_name: 'Block', dependent: :destroy do
|
||||||
has_many :block_relationships, foreign_key: 'account_id', inverse_of: :account
|
has_many :block_relationships, foreign_key: 'account_id', inverse_of: :account
|
||||||
|
|
|
@ -80,17 +80,17 @@ class MoveWorker
|
||||||
end
|
end
|
||||||
|
|
||||||
def copy_account_notes!
|
def copy_account_notes!
|
||||||
AccountNote.where(target_account: @source_account).find_each do |note|
|
@source_account.targeted_account_notes.find_each do |note|
|
||||||
text = I18n.with_locale(note.account.user&.locale.presence || I18n.default_locale) do
|
text = I18n.with_locale(note.account.user&.locale.presence || I18n.default_locale) do
|
||||||
I18n.t('move_handler.copy_account_note_text', acct: @source_account.acct)
|
I18n.t('move_handler.copy_account_note_text', acct: @source_account.acct)
|
||||||
end
|
end
|
||||||
|
|
||||||
new_note = AccountNote.find_by(account: note.account, target_account: @target_account)
|
new_note = note.account.account_notes.find_by(target_account: @target_account)
|
||||||
if new_note.nil?
|
if new_note.nil?
|
||||||
begin
|
begin
|
||||||
AccountNote.create!(account: note.account, target_account: @target_account, comment: [text, note.comment].join("\n"))
|
note.account.account_notes.create!(target_account: @target_account, comment: [text, note.comment].join("\n"))
|
||||||
rescue ActiveRecord::RecordInvalid
|
rescue ActiveRecord::RecordInvalid
|
||||||
AccountNote.create!(account: note.account, target_account: @target_account, comment: note.comment)
|
note.account.account_notes.create!(target_account: @target_account, comment: note.comment)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
new_note.update!(comment: [text, note.comment, "\n", new_note.comment].join("\n"))
|
new_note.update!(comment: [text, note.comment, "\n", new_note.comment].join("\n"))
|
||||||
|
@ -123,11 +123,11 @@ class MoveWorker
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_account_note_if_needed!(account, id)
|
def add_account_note_if_needed!(account, id)
|
||||||
unless AccountNote.exists?(account: account, target_account: @target_account)
|
unless account.account_notes.exists?(target_account: @target_account)
|
||||||
text = I18n.with_locale(account.user&.locale.presence || I18n.default_locale) do
|
text = I18n.with_locale(account.user&.locale.presence || I18n.default_locale) do
|
||||||
I18n.t(id, acct: @source_account.acct)
|
I18n.t(id, acct: @source_account.acct)
|
||||||
end
|
end
|
||||||
AccountNote.create!(account: account, target_account: @target_account, comment: text)
|
account.account_notes.create!(target_account: @target_account, comment: text)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue