mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-05 17:31:12 +00:00
Compare commits
2 Commits
59b3773d46
...
cd6d24ebe7
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cd6d24ebe7 | ||
![]() |
04cd30273c |
|
@ -9,9 +9,9 @@ class Api::V1::Accounts::NotesController < Api::BaseController
|
|||
|
||||
def create
|
||||
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
|
||||
@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.save! if @note.changed?
|
||||
end
|
||||
|
|
|
@ -9,6 +9,7 @@ module Account::Associations
|
|||
# Association where account owns record
|
||||
with_options inverse_of: :account do
|
||||
has_many :account_moderation_notes
|
||||
has_many :account_notes
|
||||
has_many :account_pins
|
||||
has_many :account_warnings
|
||||
has_many :aliases, class_name: 'AccountAlias'
|
||||
|
@ -43,6 +44,7 @@ module Account::Associations
|
|||
# Association where account is targeted by record
|
||||
with_options foreign_key: :target_account_id, inverse_of: :target_account do
|
||||
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_reports, class_name: 'Report'
|
||||
end
|
||||
|
|
|
@ -23,9 +23,6 @@ module Account::Interactions
|
|||
# Hashtag follows
|
||||
has_many :tag_follows, inverse_of: :account, dependent: :destroy
|
||||
|
||||
# Account notes
|
||||
has_many :account_notes, dependent: :destroy
|
||||
|
||||
# Block relationships
|
||||
with_options class_name: 'Block', dependent: :destroy do
|
||||
has_many :block_relationships, foreign_key: 'account_id', inverse_of: :account
|
||||
|
|
|
@ -80,17 +80,17 @@ class MoveWorker
|
|||
end
|
||||
|
||||
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
|
||||
I18n.t('move_handler.copy_account_note_text', acct: @source_account.acct)
|
||||
end
|
||||
|
||||
new_note = AccountNote.find_by(account: note.account, target_account: @target_account)
|
||||
new_note = @target_account.targeted_account_notes.find_by(account: note.account)
|
||||
if new_note.nil?
|
||||
begin
|
||||
AccountNote.create!(account: note.account, target_account: @target_account, comment: [text, note.comment].join("\n"))
|
||||
@target_account.targeted_account_notes.create!(account: note.account, comment: [text, note.comment].join("\n"))
|
||||
rescue ActiveRecord::RecordInvalid
|
||||
AccountNote.create!(account: note.account, target_account: @target_account, comment: note.comment)
|
||||
@target_account.targeted_account_notes.create!(account: note.account, comment: note.comment)
|
||||
end
|
||||
else
|
||||
new_note.update!(comment: [text, note.comment, "\n", new_note.comment].join("\n"))
|
||||
|
@ -125,7 +125,7 @@ class MoveWorker
|
|||
end
|
||||
|
||||
def add_account_note_if_needed!(account, id)
|
||||
return if AccountNote.exists?(account: account, target_account: @target_account)
|
||||
return if @target_account.targeted_account_notes.exists?(account:)
|
||||
|
||||
text = I18n.with_locale(account.user_locale.presence || I18n.default_locale) do
|
||||
I18n.t(id, acct: @source_account.acct)
|
||||
|
|
|
@ -6,6 +6,11 @@ RSpec.describe Account do
|
|||
it_behaves_like 'Account::Search'
|
||||
it_behaves_like 'Reviewable'
|
||||
|
||||
describe 'Associations' do
|
||||
it { is_expected.to have_many(:account_notes).inverse_of(:account) }
|
||||
it { is_expected.to have_many(:targeted_account_notes).inverse_of(:target_account) }
|
||||
end
|
||||
|
||||
context 'with an account record' do
|
||||
subject { Fabricate(:account) }
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user