This commit is contained in:
Matt Jankowski 2025-09-03 20:07:44 +00:00 committed by GitHub
commit abae1092a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 35 additions and 22 deletions

View File

@ -6,6 +6,7 @@ class Admin::Reports::ActionsController < Admin::BaseController
def preview
authorize @report, :show?
@moderation_action = action_from_button
@statuses = @report.statuses.includes(:application, :media_attachments)
end
def create

View File

@ -79,6 +79,10 @@ class Report < ApplicationRecord
Status.with_discarded.where(id: status_ids)
end
def deleted_status_ids
status_ids.difference(statuses.pluck(:id))
end
def media_attachments_count
statuses_to_query = []
count = 0

View File

@ -0,0 +1,4 @@
.strike-card__statuses-list__item
.one-liner= t('disputes.strikes.status', id: status_id)
.strike-card__statuses-list__item__meta
= t('disputes.strikes.status_removed')

View File

@ -0,0 +1,13 @@
.strike-card__statuses-list__item
.one-liner
.emojify= one_line_preview(status)
- status.ordered_media_attachments.each do |media|
%abbr{ title: media.description }
= material_symbol 'link'
= media.file_file_name
.strike-card__statuses-list__item__meta
= link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank', rel: 'noopener' do
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- if status.application.present?
·
= status.application.name

View File

@ -50,28 +50,8 @@
%strong= t('user_mailer.warning.statuses')
.strike-card__statuses-list
- status_map = @report.statuses.includes(:application, :media_attachments).index_by(&:id)
- @report.status_ids.each do |status_id|
.strike-card__statuses-list__item
- if (status = status_map[status_id.to_i])
.one-liner
.emojify= one_line_preview(status)
- status.ordered_media_attachments.each do |media_attachment|
%abbr{ title: media_attachment.description }
= material_symbol 'link'
= media_attachment.file_file_name
.strike-card__statuses-list__item__meta
= link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank', rel: 'noopener' do
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- unless status.application.nil?
·
= status.application.name
- else
.one-liner= t('disputes.strikes.status', id: status_id)
.strike-card__statuses-list__item__meta
= t('disputes.strikes.status_removed')
= render partial: 'status', collection: @statuses
= render partial: 'deleted_status', collection: @report.deleted_status_ids, as: :status_id
%hr.spacer/

View File

@ -13,6 +13,17 @@ RSpec.describe Report do
end
end
describe '#deleted_status_ids' do
let!(:status) { Fabricate :status }
let(:report) { Fabricate.build :report, status_ids: [deleted, status.id] }
let(:deleted) { 123_123_123 }
it 'returns ids of stored statuses which no longer exist' do
expect(report.deleted_status_ids)
.to contain_exactly(deleted)
end
end
describe 'media_attachments_count' do
it 'returns count of media attachments in statuses' do
status1 = Fabricate(:status, ordered_media_attachment_ids: [1, 2])