53 lines
1.2 KiB
Ruby
53 lines
1.2 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
|