Change old moderation strikes to be displayed in a separate page (#17566)
* Change old moderation strikes to be displayed in a separate page Fixes #17552 This changes the moderation strikes displayed on `/auth/edit` to be those from the past 3 months, and make all moderation strikes targeting the current user available in `/disputes`. * Add short description of what the strikes page is for * Move link to list of strikes to “Account status” instead of navigation item * Normalize i18n file * Fix layout and styling of strikes link * Revert highlights_on regexp * Reintroduce account status summary - this way, “Account status” is never empty - account status is not necessarily bound to strikes, or recent strikes
This commit is contained in:
		
					parent
					
						
							
								50ea54b3ed
							
						
					
				
			
			
				commit
				
					
						14919fe11e
					
				
			
		
					 7 changed files with 34 additions and 4 deletions
				
			
		|  | @ -127,7 +127,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def set_strikes |   def set_strikes | ||||||
|     @strikes = current_account.strikes.active.latest |     @strikes = current_account.strikes.recent.latest | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def require_not_suspended! |   def require_not_suspended! | ||||||
|  |  | ||||||
|  | @ -1,7 +1,11 @@ | ||||||
| # frozen_string_literal: true | # frozen_string_literal: true | ||||||
| 
 | 
 | ||||||
| class Disputes::StrikesController < Disputes::BaseController | class Disputes::StrikesController < Disputes::BaseController | ||||||
|   before_action :set_strike |   before_action :set_strike, only: [:show] | ||||||
|  | 
 | ||||||
|  |   def index | ||||||
|  |     @strikes = current_account.strikes.latest | ||||||
|  |   end | ||||||
| 
 | 
 | ||||||
|   def show |   def show | ||||||
|     authorize @strike, :show? |     authorize @strike, :show? | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ class AccountWarning < ApplicationRecord | ||||||
| 
 | 
 | ||||||
|   scope :latest, -> { order(id: :desc) } |   scope :latest, -> { order(id: :desc) } | ||||||
|   scope :custom, -> { where.not(text: '') } |   scope :custom, -> { where.not(text: '') } | ||||||
|   scope :active, -> { where(overruled_at: nil).or(where('account_warnings.overruled_at >= ?', 30.days.ago)) } |   scope :recent, -> { where('account_warnings.created_at >= ?', 3.months.ago) } | ||||||
| 
 | 
 | ||||||
|   def statuses |   def statuses | ||||||
|     Status.with_discarded.where(id: status_ids || []) |     Status.with_discarded.where(id: status_ids || []) | ||||||
|  |  | ||||||
|  | @ -12,6 +12,22 @@ | ||||||
| 
 | 
 | ||||||
| %h3= t('auth.status.account_status') | %h3= t('auth.status.account_status') | ||||||
| 
 | 
 | ||||||
|  | %p.hint | ||||||
|  |   - if @user.account.suspended? | ||||||
|  |     %span.negative-hint= t('user_mailer.warning.explanation.suspend') | ||||||
|  |   - elsif @user.disabled? | ||||||
|  |     %span.negative-hint= t('user_mailer.warning.explanation.disable') | ||||||
|  |   - elsif @user.account.silenced? | ||||||
|  |     %span.warning-hint= t('user_mailer.warning.explanation.silence') | ||||||
|  |   - else | ||||||
|  |     %span.positive-hint= t('auth.status.functional') | ||||||
|  | 
 | ||||||
| = render partial: 'account_warning', collection: @strikes | = render partial: 'account_warning', collection: @strikes | ||||||
| 
 | 
 | ||||||
|  | - if @user.account.strikes.exists? | ||||||
|  |   %hr.spacer/ | ||||||
|  | 
 | ||||||
|  |   %p.muted-hint | ||||||
|  |     = link_to t('auth.status.view_strikes'), disputes_strikes_path | ||||||
|  | 
 | ||||||
| %hr.spacer/ | %hr.spacer/ | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								app/views/disputes/strikes/index.html.haml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								app/views/disputes/strikes/index.html.haml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | - content_for :page_title do | ||||||
|  |   = t('settings.strikes') | ||||||
|  | 
 | ||||||
|  | %p= t('disputes.strikes.description_html', instance: Rails.configuration.x.local_domain) | ||||||
|  | 
 | ||||||
|  | = render partial: 'auth/registrations/account_warning', collection: @strikes | ||||||
|  | @ -933,8 +933,10 @@ en: | ||||||
|     status: |     status: | ||||||
|       account_status: Account status |       account_status: Account status | ||||||
|       confirming: Waiting for e-mail confirmation to be completed. |       confirming: Waiting for e-mail confirmation to be completed. | ||||||
|  |       functional: Your account is fully operational. | ||||||
|       pending: Your application is pending review by our staff. This may take some time. You will receive an e-mail if your application is approved. |       pending: Your application is pending review by our staff. This may take some time. You will receive an e-mail if your application is approved. | ||||||
|       redirecting_to: Your account is inactive because it is currently redirecting to %{acct}. |       redirecting_to: Your account is inactive because it is currently redirecting to %{acct}. | ||||||
|  |       view_strikes: View past strikes against your account | ||||||
|     too_fast: Form submitted too fast, try again. |     too_fast: Form submitted too fast, try again. | ||||||
|     trouble_logging_in: Trouble logging in? |     trouble_logging_in: Trouble logging in? | ||||||
|     use_security_key: Use security key |     use_security_key: Use security key | ||||||
|  | @ -1010,6 +1012,7 @@ en: | ||||||
|         submit: Submit appeal |         submit: Submit appeal | ||||||
|       associated_report: Associated report |       associated_report: Associated report | ||||||
|       created_at: Dated |       created_at: Dated | ||||||
|  |       description_html: These are actions taken against your account and warnings that have been sent to you by the staff of %{instance}. | ||||||
|       recipient: Addressed to |       recipient: Addressed to | ||||||
|       status: 'Post #%{id}' |       status: 'Post #%{id}' | ||||||
|       status_removed: Post already removed from system |       status_removed: Post already removed from system | ||||||
|  | @ -1391,6 +1394,7 @@ en: | ||||||
|     profile: Profile |     profile: Profile | ||||||
|     relationships: Follows and followers |     relationships: Follows and followers | ||||||
|     statuses_cleanup: Automated post deletion |     statuses_cleanup: Automated post deletion | ||||||
|  |     strikes: Moderation strikes | ||||||
|     two_factor_authentication: Two-factor Auth |     two_factor_authentication: Two-factor Auth | ||||||
|     webauthn_authentication: Security keys |     webauthn_authentication: Security keys | ||||||
|   statuses: |   statuses: | ||||||
|  |  | ||||||
|  | @ -165,7 +165,7 @@ Rails.application.routes.draw do | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   namespace :disputes do |   namespace :disputes do | ||||||
|     resources :strikes, only: [:show] do |     resources :strikes, only: [:show, :index] do | ||||||
|       resource :appeal, only: [:create] |       resource :appeal, only: [:create] | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue