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

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