REFACTOR: Replace score bonuses with low/med/high priorities

We removed score from the UX so it makes more sense to have sites set
priorities instead of score bonuses.
This commit is contained in:
Robin Ward
2019-05-22 17:23:45 -04:00
parent 30961dd875
commit e74cd54fc6
21 changed files with 142 additions and 61 deletions

View File

@ -127,12 +127,12 @@ end
#
# Table name: post_action_types
#
# name_key :string(50) not null
# is_flag :boolean default(FALSE), not null
# icon :string(20)
# created_at :datetime not null
# updated_at :datetime not null
# id :integer not null, primary key
# position :integer default(0), not null
# score_bonus :float default(0.0), not null
# name_key :string(50) not null
# is_flag :boolean default(FALSE), not null
# icon :string(20)
# created_at :datetime not null
# updated_at :datetime not null
# id :integer not null, primary key
# position :integer default(0), not null
# reviewable_priority :integer
#

View File

@ -41,6 +41,15 @@ class Reviewable < ActiveRecord::Base
Jobs.enqueue(:notify_reviewable, reviewable_id: self.id) if pending?
end
# The gaps are in case we want more accuracy in the future
def self.priorities
@priorities ||= Enum.new(
low: 0,
medium: 5,
high: 10
)
end
def self.statuses
@statuses ||= Enum.new(
pending: 0,
@ -157,15 +166,18 @@ class Reviewable < ActiveRecord::Base
rs
end
def self.set_priorities(medium: nil, high: nil)
PluginStore.set('reviewables', 'priority_medium', medium) if medium
PluginStore.set('reviewables', 'priority_high', high) if high
def self.set_priorities(values)
values.each do |k, v|
id = Reviewable.priorities[k]
PluginStore.set('reviewables', "priority_#{id}", v) unless id.nil?
end
end
def self.min_score_for_priority(priority = nil)
priority ||= SiteSetting.reviewable_default_visibility
return 0.0 unless ['medium', 'high'].include?(priority)
return PluginStore.get('reviewables', "priority_#{priority}").to_f
id = Reviewable.priorities[priority.to_sym]
return 0.0 if id.nil?
return PluginStore.get('reviewables', "priority_#{id}").to_f
end
def history
@ -502,6 +514,7 @@ end
# created_by_id :integer not null
# reviewable_by_moderator :boolean default(FALSE), not null
# reviewable_by_group_id :integer
# claimed_by_id :integer
# category_id :integer
# topic_id :integer
# score :float default(0.0), not null

View File

@ -296,6 +296,7 @@ end
# created_by_id :integer not null
# reviewable_by_moderator :boolean default(FALSE), not null
# reviewable_by_group_id :integer
# claimed_by_id :integer
# category_id :integer
# topic_id :integer
# score :float default(0.0), not null

View File

@ -147,6 +147,7 @@ end
# created_by_id :integer not null
# reviewable_by_moderator :boolean default(FALSE), not null
# reviewable_by_group_id :integer
# claimed_by_id :integer
# category_id :integer
# topic_id :integer
# score :float default(0.0), not null

View File

@ -103,6 +103,7 @@ end
# created_by_id :integer not null
# reviewable_by_moderator :boolean default(FALSE), not null
# reviewable_by_group_id :integer
# claimed_by_id :integer
# category_id :integer
# topic_id :integer
# score :float default(0.0), not null

View File

@ -17,6 +17,5 @@ end
#
# Indexes
#
# idx_user_custom_fields_last_reminded_at (name,user_id) UNIQUE WHERE ((name)::text = 'last_reminded_at'::text)
# index_user_custom_fields_on_user_id_and_name (user_id,name)
#