Skip to content

Commit

Permalink
feat: [ACI-222] feature flag for badges (#52)
Browse files Browse the repository at this point in the history
  • Loading branch information
kyrylo-kh authored and wowkalucky committed Feb 23, 2024
1 parent 337ff7a commit 39bc6e7
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 6 deletions.
6 changes: 6 additions & 0 deletions credentials/apps/badges/admin.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
"""
Admin section configuration.
"""

from .toggles import is_badges_enabled

if is_badges_enabled():
# TODO: Define registering admin classes here `admin.site.register(...)`
pass
8 changes: 4 additions & 4 deletions credentials/apps/badges/apps.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
from django.apps import AppConfig

from .toggles import is_badges_enabled
from .toggles import check_badges_enabled


class BadgesConfig(AppConfig):
name = "credentials.apps.badges"
verbose_name = "Badges"

@check_badges_enabled
def ready(self):
"""
Performs initial registrations for checks, signals, etc.
"""
if is_badges_enabled():
from . import signals # pylint: disable=unused-import,import-outside-toplevel
from . checks import badges_checks # pylint: disable=unused-import,import-outside-toplevel
from . import signals # pylint: disable=unused-import,import-outside-toplevel
from . checks import badges_checks # pylint: disable=unused-import,import-outside-toplevel
26 changes: 25 additions & 1 deletion credentials/apps/badges/toggles.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,31 @@
"""


from edx_toggles.toggles import SettingToggle

# .. toggle_name: BADGES_ENABLED
# .. toggle_implementation: DjangoSetting
# .. toggle_default: False
# .. toggle_description: Determines if the Credentials IDA uses badges functionality.
# .. toggle_life_expectancy: permanent
# .. toggle_permanent_justification: Badges are optional for usage.
# .. toggle_creation_date: 2024-01-12
# .. toggle_use_cases: open_edx
ENABLE_BADGES = SettingToggle('BADGES_ENABLED', default=False, module_name=__name__)


def is_badges_enabled():
"""
Checks if badges app enabled.
"""
return ENABLE_BADGES.is_enabled()


def check_badges_enabled(func):
"""
Decorator for checking the applicability of a badges app.
"""
return True
def wrapper(*args, **kwargs):
if is_badges_enabled():
return func(*args, **kwargs)
return wrapper
7 changes: 6 additions & 1 deletion credentials/apps/badges/urls.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
"""
URLs for badges.
"""
urlpatterns = []

from .toggles import is_badges_enabled

urlpatterns = [] if not is_badges_enabled else [
# Define urls here
]

0 comments on commit 39bc6e7

Please sign in to comment.