Instead of going up the stacktrace to find the module names of waffle
flags and switches, we manually pass the module __name__ whenever the
flag is created. This is similar to `logging.getLogger(__name__)`
standard behaviour.
As the waffle classes are used outside of edx-platform, we make the new
module_name argument an optional keyword argument. This will change once
we pull waffle_utils outside of edx-platform.
Note that the module name is normally only required to view the list of
existing waffle flags and switches. The module name should not be
necessary to verify if a flag is enabled. Thus, maybe it would make
sense to create a `add` class methor similar to:
class WaffleFlag:
@classmethod
def add(cls, namespace, flag, module):
instance = cls(namespace, flag)
cls._class_instances.add((instance, module))
33 lines
892 B
Python
33 lines
892 B
Python
"""
|
|
Contains configuration for schedules app
|
|
"""
|
|
|
|
|
|
from openedx.core.djangoapps.waffle_utils import (
|
|
WaffleFlagNamespace, CourseWaffleFlag, WaffleFlag,
|
|
WaffleSwitch, WaffleSwitchNamespace,
|
|
)
|
|
|
|
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='schedules')
|
|
WAFFLE_SWITCH_NAMESPACE = WaffleSwitchNamespace(name='schedules')
|
|
|
|
CREATE_SCHEDULE_WAFFLE_FLAG = CourseWaffleFlag(
|
|
waffle_namespace=WAFFLE_FLAG_NAMESPACE,
|
|
flag_name='create_schedules_for_course',
|
|
module_name=__name__,
|
|
)
|
|
|
|
COURSE_UPDATE_WAFFLE_FLAG = CourseWaffleFlag(
|
|
waffle_namespace=WAFFLE_FLAG_NAMESPACE,
|
|
flag_name='send_updates_for_course',
|
|
module_name=__name__,
|
|
)
|
|
|
|
DEBUG_MESSAGE_WAFFLE_FLAG = WaffleFlag(WAFFLE_FLAG_NAMESPACE, 'enable_debugging', __name__)
|
|
|
|
COURSE_UPDATE_SHOW_UNSUBSCRIBE_WAFFLE_SWITCH = WaffleSwitch(
|
|
WAFFLE_SWITCH_NAMESPACE,
|
|
'course_update_show_unsubscribe',
|
|
__name__
|
|
)
|