discourse-assign/app/models/remind_assigns_frequency_si...

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