I think it can be useful in some scenarios to prevent a topic from getting too much heat in the first place if caught early by moderation. Specially in instances with a lot of users.
If the topic is already heated and the discussion self-sustaining, slow mode will probably do a better job since the notifications the users receive from interactions in the topic will (probably) keep it going.
I was checking the source code and aside from changing the models, would change bypass_bump? be enough to prevent them from being bumped?
Maybe add a field in Topic, something like min_seconds_between_bumps for example and another condition in `bypass_bump?:
def bypass_bump?
!@post_successfully_saved ||
@topic_changes.errored? ||
@opts[:bypass_bump] == true ||
@post.whisper? ||
only_hidden_tags_changed? ||
@topic.min_seconds_between_bumps == 0 ||
(@topic.min_seconds_between_bumps > 0 &&
(Time.now - @topic.bumped_at) / 60 < @topic.min_seconds_between_bumps)
end
Not sure about the 0 value indicating that the topic should not be bumped at all. It can confuse some users. If done this way, I think if it would be better UX if the webapp does not expose the zero directly to the user.