FIX: Don't hide/close topics if they don't meet minimum visibility
There are situations where depending on site settings, actions could be taken due to flags (for example, hiding a post) but those actions were not visibile in the review queue due to visibility settings. This patch makes sure that the minimum score required for an action such as hiding a post needs to meet the visibility for a moderator to see it.
This commit is contained in:
parent
44ad8ee39b
commit
f1b3e72581
|
@ -188,7 +188,7 @@ class Reviewable < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.sensitivity_score(sensitivity, scale: 1.0)
|
def self.sensitivity_score_value(sensitivity, scale)
|
||||||
return Float::MAX if sensitivity == 0
|
return Float::MAX if sensitivity == 0
|
||||||
|
|
||||||
ratio = sensitivity / Reviewable.sensitivity[:low].to_f
|
ratio = sensitivity / Reviewable.sensitivity[:low].to_f
|
||||||
|
@ -199,6 +199,13 @@ class Reviewable < ActiveRecord::Base
|
||||||
(high.to_f * ratio) * scale
|
(high.to_f * ratio) * scale
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.sensitivity_score(sensitivity, scale: 1.0)
|
||||||
|
# If the score is less than the default visibility, bring it up to that level.
|
||||||
|
# Otherwise we have the confusing situation where a post might be hidden and
|
||||||
|
# moderators would never see it!
|
||||||
|
[sensitivity_score_value(sensitivity, scale), min_score_for_priority].max
|
||||||
|
end
|
||||||
|
|
||||||
def self.score_to_auto_close_topic
|
def self.score_to_auto_close_topic
|
||||||
sensitivity_score(SiteSetting.auto_close_topic_sensitivity, scale: 2.5)
|
sensitivity_score(SiteSetting.auto_close_topic_sensitivity, scale: 2.5)
|
||||||
end
|
end
|
||||||
|
|
|
@ -302,6 +302,13 @@ RSpec.describe Reviewable, type: :model do
|
||||||
end
|
end
|
||||||
|
|
||||||
context ".score_required_to_hide_post" do
|
context ".score_required_to_hide_post" do
|
||||||
|
|
||||||
|
it "will return the default visibility if it's higher" do
|
||||||
|
Reviewable.set_priorities(low: 40.0, high: 100.0)
|
||||||
|
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:high]
|
||||||
|
expect(Reviewable.score_required_to_hide_post).to eq(40.0)
|
||||||
|
end
|
||||||
|
|
||||||
it "returns 10 if we can't calculated any percentiles" do
|
it "returns 10 if we can't calculated any percentiles" do
|
||||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||||
expect(Reviewable.score_required_to_hide_post).to eq(10.0)
|
expect(Reviewable.score_required_to_hide_post).to eq(10.0)
|
||||||
|
@ -346,6 +353,7 @@ RSpec.describe Reviewable, type: :model do
|
||||||
end
|
end
|
||||||
|
|
||||||
context ".score_to_auto_close_topic" do
|
context ".score_to_auto_close_topic" do
|
||||||
|
|
||||||
it "returns 25 if we can't calculated any percentiles" do
|
it "returns 25 if we can't calculated any percentiles" do
|
||||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
||||||
expect(Reviewable.score_to_auto_close_topic).to eq(25.0)
|
expect(Reviewable.score_to_auto_close_topic).to eq(25.0)
|
||||||
|
|
Loading…
Reference in New Issue