mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 09:07:54 +08:00
FIX: Better tracking of topic visibility changes (#26709)
This commit introduces a few changes as a result of customer issues with finding why a topic was relisted. In one case, if a user edited the OP of a topic that was unlisted and hidden because of too many flags, the topic would get relisted by directly changing topic.visible, instead of going via TopicStatusUpdater. To improve tracking we: * Introduce a visibility_reason_id to topic which functions in a similar way to hidden_reason_id on post, this column is set from the various places we change topic visibility * Fix Post#unhide! which was directly modifying topic.visible, instead we use TopicStatusUpdater which sets visibility_reason_id and also makes a small action post * Show the reason topic visibility changed when hovering the unlisted icon in topic status on topic titles
This commit is contained in:
@ -235,7 +235,14 @@ class PostActionCreator
|
||||
return if not_auto_action_flag_type && !@queue_for_review
|
||||
|
||||
if @queue_for_review
|
||||
@post.topic.update_status("visible", false, @created_by) if @post.is_first_post?
|
||||
if @post.is_first_post?
|
||||
@post.topic.update_status(
|
||||
"visible",
|
||||
false,
|
||||
@created_by,
|
||||
{ visibility_reason_id: Topic.visibility_reasons[:op_flag_threshold_reached] },
|
||||
)
|
||||
end
|
||||
|
||||
@post.hide!(
|
||||
@post_action_type_id,
|
||||
|
Reference in New Issue
Block a user