mirror of
https://github.com/discourse/discourse.git
synced 2025-02-20 09:52:01 +08:00
FIX: Ignored flags should not count in your accuracy score
This commit is contained in:
parent
c463a04c3f
commit
5bf3a00328
|
@ -59,19 +59,14 @@ class ReviewableScore < ActiveRecord::Base
|
|||
user_stat = user&.user_stat
|
||||
return 0.0 if user_stat.blank?
|
||||
|
||||
calc_user_accuracy_bonus(
|
||||
user_stat.flags_agreed,
|
||||
user_stat.flags_disagreed,
|
||||
user_stat.flags_ignored
|
||||
)
|
||||
calc_user_accuracy_bonus(user_stat.flags_agreed, user_stat.flags_disagreed)
|
||||
end
|
||||
|
||||
def self.calc_user_accuracy_bonus(agreed, disagreed, ignored)
|
||||
def self.calc_user_accuracy_bonus(agreed, disagreed)
|
||||
agreed ||= 0
|
||||
disagreed ||= 0
|
||||
ignored ||= 0
|
||||
|
||||
total = (agreed + disagreed + ignored).to_f
|
||||
total = (agreed + disagreed).to_f
|
||||
return 0.0 if total <= 5
|
||||
|
||||
(agreed / total) * 5.0
|
||||
|
|
|
@ -14,11 +14,7 @@ class ReviewableScoreExplanationSerializer < ApplicationSerializer
|
|||
)
|
||||
|
||||
def user_accuracy_bonus
|
||||
ReviewableScore.calc_user_accuracy_bonus(
|
||||
object.flags_agreed,
|
||||
object.flags_disagreed,
|
||||
object.flags_ignored
|
||||
)
|
||||
ReviewableScore.calc_user_accuracy_bonus(object.flags_agreed, object.flags_disagreed)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -107,10 +107,11 @@ RSpec.describe ReviewableScore, type: :model do
|
|||
user_stat.flags_disagreed = 2
|
||||
expect(ReviewableScore.user_accuracy_bonus(user).floor(2)).to eq(3.33)
|
||||
|
||||
# Ignored flags don't count
|
||||
user_stat.flags_agreed = 121
|
||||
user_stat.flags_disagreed = 44
|
||||
user_stat.flags_ignored = 4
|
||||
expect(ReviewableScore.user_accuracy_bonus(user).floor(2)).to eq(3.57)
|
||||
expect(ReviewableScore.user_accuracy_bonus(user).floor(2)).to eq(3.66)
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -137,7 +138,7 @@ RSpec.describe ReviewableScore, type: :model do
|
|||
user_stat.flags_agreed = 12
|
||||
user_stat.flags_disagreed = 2
|
||||
user_stat.flags_ignored = 2
|
||||
expect(ReviewableScore.user_flag_score(user)).to eq(6.75)
|
||||
expect(ReviewableScore.user_flag_score(user).floor(2)).to eq(7.28)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user