diff --git a/app/controllers/moderation_reports_controller.rb b/app/controllers/moderation_reports_controller.rb index 906ff9e36..7ea5e08d1 100644 --- a/app/controllers/moderation_reports_controller.rb +++ b/app/controllers/moderation_reports_controller.rb @@ -17,7 +17,6 @@ class ModerationReportsController < ApplicationController def create check_privilege @moderation_report = ModerationReport.create(moderation_report_params) - @moderation_report.create_forum_post! respond_with(@moderation_report) end diff --git a/app/javascript/src/styles/base/040_colors.css b/app/javascript/src/styles/base/040_colors.css index 860fd1663..9c8bf226a 100644 --- a/app/javascript/src/styles/base/040_colors.css +++ b/app/javascript/src/styles/base/040_colors.css @@ -67,6 +67,9 @@ --forum-vote-meh-color: goldenrod; --forum-vote-down-color: red; + --moderation-report-text-color: red; + --moderation-report-border: 2px solid red; + --comment-sticky-background-color: var(--subnav-menu-background-color); --post-tooltip-background-color: var(--body-background-color); @@ -333,6 +336,9 @@ body[data-current-user-theme="dark"] { --forum-vote-meh-color: var(--yellow-1); --forum-vote-down-color: var(--red-1); + --moderation-report-text-color: var(--red-1); + --moderation-report-border: 2px solid var(--red-1); + --jquery-ui-widget-content-text-color: var(--text-color); --jquery-ui-widget-content-background: var(--grey-2); --jquery-ui-dialog-box-shadow: 0 0 8px var(--grey-1); diff --git a/app/javascript/src/styles/specific/comments.scss b/app/javascript/src/styles/specific/comments.scss index 2415df4ae..5bf5d95f9 100644 --- a/app/javascript/src/styles/specific/comments.scss +++ b/app/javascript/src/styles/specific/comments.scss @@ -4,7 +4,7 @@ div.comments-for-post { div.moderation-comments-notice { margin: 1em 0; font-weight: bold; - color: red; + color: var(--moderation-report-text-color); } div.hidden-comments-notice { @@ -20,7 +20,7 @@ div.comments-for-post { } &[data-is-reported="true"] { - border: solid red; + border: var(--moderation-report-border); } &[data-is-voted="true"] { diff --git a/app/javascript/src/styles/specific/forum.scss b/app/javascript/src/styles/specific/forum.scss index e5ec634e3..686ad6e65 100644 --- a/app/javascript/src/styles/specific/forum.scss +++ b/app/javascript/src/styles/specific/forum.scss @@ -1,12 +1,12 @@ div.list-of-forum-posts { div.moderation-forums-notice { font-weight: bold; - color: red; + color: var(--moderation-report-text-color); } article.forum-post { &[data-is-reported="true"] { - border: solid red; + border: var(--moderation-report-border); } a.voted { diff --git a/app/javascript/src/styles/specific/users.scss b/app/javascript/src/styles/specific/users.scss index 3f5ab44aa..ff90e48ea 100644 --- a/app/javascript/src/styles/specific/users.scss +++ b/app/javascript/src/styles/specific/users.scss @@ -3,7 +3,7 @@ div#c-users { div.moderation-users-notice { margin: 1em 0; font-weight: bold; - color: red; + color: var(--moderation-report-text-color); } div.box { diff --git a/app/logical/danbooru_maintenance.rb b/app/logical/danbooru_maintenance.rb index 7d6ff61a7..c0e349a1b 100644 --- a/app/logical/danbooru_maintenance.rb +++ b/app/logical/danbooru_maintenance.rb @@ -17,7 +17,6 @@ module DanbooruMaintenance safely { TagChangeRequestPruner.warn_all } safely { TagChangeRequestPruner.reject_all } safely { Ban.prune! } - safely { ModerationReport.prune! } safely { CuratedPoolUpdater.update_pool! } safely { ActiveRecord::Base.connection.execute("vacuum analyze") unless Rails.env.test? } end diff --git a/app/models/forum_topic.rb b/app/models/forum_topic.rb index 4383f618d..48aa8dd4d 100644 --- a/app/models/forum_topic.rb +++ b/app/models/forum_topic.rb @@ -184,6 +184,6 @@ class ForumTopic < ApplicationRecord end def viewable_moderation_reports - CurrentUser.is_moderator? ? moderation_reports : [] + CurrentUser.is_moderator? ? moderation_reports.recent : [] end end diff --git a/app/models/moderation_report.rb b/app/models/moderation_report.rb index da987a448..5c75176e5 100644 --- a/app/models/moderation_report.rb +++ b/app/models/moderation_report.rb @@ -2,9 +2,13 @@ class ModerationReport < ApplicationRecord belongs_to :model, polymorphic: true belongs_to_creator + validates :reason, presence: true + after_create :create_forum_post! + scope :user, -> { where(model_type: "User") } scope :comment, -> { where(model_type: "Comment") } scope :forum_post, -> { where(model_type: "ForumPost") } + scope :recent, -> { where("moderation_reports.created_at >= ?", 1.week.ago) } def forum_topic_title "Reports requiring moderation" @@ -54,8 +58,4 @@ class ModerationReport < ApplicationRecord q.apply_default_order(params) end - - def self.prune! - where("created_at < ?", 1.week.ago).delete_all - end end diff --git a/app/models/post.rb b/app/models/post.rb index f93c7309e..cf7b5c254 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1814,6 +1814,6 @@ class Post < ApplicationRecord end def viewable_moderation_reports - CurrentUser.is_moderator? ? moderation_reports : [] + CurrentUser.is_moderator? ? moderation_reports.recent : [] end end diff --git a/app/models/user.rb b/app/models/user.rb index 0ae440aca..e325e5304 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -814,6 +814,6 @@ class User < ApplicationRecord end def viewable_moderation_reports - !is_moderator? && CurrentUser.is_moderator? ? moderation_reports : [] + CurrentUser.is_moderator? ? moderation_reports.recent : [] end end diff --git a/app/views/comments/partials/index/_list.html.erb b/app/views/comments/partials/index/_list.html.erb index 9a02546eb..20a2f3422 100644 --- a/app/views/comments/partials/index/_list.html.erb +++ b/app/views/comments/partials/index/_list.html.erb @@ -6,7 +6,7 @@ <% if post.viewable_moderation_reports.present? %>