37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_dependency "enum_site_setting"
|
|
|
|
class RemindAssignsFrequencySiteSettings < EnumSiteSetting
|
|
def self.valid_value?(val)
|
|
val.to_i.to_s == val.to_s && values.any? { |v| v[:value] == val.to_i }
|
|
end
|
|
|
|
DAILY_MINUTES = 24 * 60 * 1
|
|
WEEKLY_MINUTES = DAILY_MINUTES * 7
|
|
MONTHLY_MINUTES = DAILY_MINUTES * 30
|
|
QUARTERLY_MINUTES = DAILY_MINUTES * 90
|
|
|
|
def self.values
|
|
@values ||= [
|
|
{ name: "discourse_assign.reminders_frequency.never", value: 0 },
|
|
{ name: "discourse_assign.reminders_frequency.daily", value: DAILY_MINUTES },
|
|
{ name: "discourse_assign.reminders_frequency.weekly", value: WEEKLY_MINUTES },
|
|
{ name: "discourse_assign.reminders_frequency.monthly", value: MONTHLY_MINUTES },
|
|
{ name: "discourse_assign.reminders_frequency.quarterly", value: QUARTERLY_MINUTES },
|
|
]
|
|
end
|
|
|
|
def self.translate_names?
|
|
true
|
|
end
|
|
|
|
def self.frequency_for(minutes)
|
|
value = values.detect { |v| v[:value] == minutes }
|
|
|
|
raise Discourse.InvalidParameters(:task_reminders_frequency) if value.nil?
|
|
|
|
I18n.t(value[:name])
|
|
end
|
|
end
|