mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 22:07:17 +08:00
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:
@ -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
|
||||
#
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
#
|
||||
|
Reference in New Issue
Block a user