97 lines
2.5 KiB
Python
97 lines
2.5 KiB
Python
import datetime
|
|
|
|
import phonenumbers
|
|
from dynamic_preferences import types
|
|
from dynamic_preferences.registries import global_preferences_registry
|
|
|
|
helper = types.Section("helper")
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class AllowedPhoneCountries(types.MultipleChoicePreference):
|
|
section = helper
|
|
name = "allowed_countries"
|
|
choices = [
|
|
(f"{phonenumbers.country_code_for_region(cc)}", cc)
|
|
for cc in sorted(phonenumbers.SUPPORTED_REGIONS)
|
|
]
|
|
default = [49, 41, 43]
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class SendSMS(types.BooleanPreference):
|
|
section = helper
|
|
name = "send_sms"
|
|
default = True
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class EventState(types.ChoicePreference):
|
|
section = helper
|
|
name = "event_state"
|
|
choices = [
|
|
("BEFORE", "before event"),
|
|
("RUNNING", "event is running"),
|
|
("AFTER", "event is over"),
|
|
]
|
|
default = "BEFORE"
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class ShiftReminder(types.DurationPreference):
|
|
section = helper
|
|
name = "reminder_time"
|
|
default = datetime.timedelta(minutes=30)
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class CancelMin(types.DurationPreference):
|
|
section = helper
|
|
name = "min_cancel_time"
|
|
default = datetime.timedelta(hours=6)
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class SMSRate(types.IntegerPreference):
|
|
section = helper
|
|
name = "sms_rate"
|
|
default = 2
|
|
help_text = "Number of SMS sent per minute"
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class EnableRegistration(types.BooleanPreference):
|
|
section = helper
|
|
name = "enable_registration"
|
|
default = True
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class EnableAsta(types.BooleanPreference):
|
|
section = helper
|
|
name = "enable_asta"
|
|
default = True
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class FallbackQuota(types.FloatPreference):
|
|
section = helper
|
|
name = "fallback_quota"
|
|
default = 0.7
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class EventStartAt(types.DatePreference):
|
|
section = helper
|
|
name = "event_start_at"
|
|
default = datetime.date(2024, 5, 24)
|
|
help_text = "The start date and time of the event. Date navigation will only show days between start and end time."
|
|
|
|
|
|
@global_preferences_registry.register
|
|
class EventEndAt(types.DatePreference):
|
|
section = helper
|
|
name = "event_end_at"
|
|
default = datetime.date(2025, 5, 28)
|
|
help_text = "The end date and time of the event. Date navigation will only show days between start and end time."
|