feat: added waffle flag for new notification view (#35569)
This commit is contained in:
@@ -49,3 +49,13 @@ ENABLE_ORA_GRADE_NOTIFICATION = CourseWaffleFlag(f"{WAFFLE_NAMESPACE}.enable_ora
|
||||
# .. toggle_warning: When the flag is ON, Notifications Grouping feature is enabled.
|
||||
# .. toggle_tickets: INF-1472
|
||||
ENABLE_NOTIFICATION_GROUPING = CourseWaffleFlag(f'{WAFFLE_NAMESPACE}.enable_notification_grouping', __name__)
|
||||
|
||||
# .. toggle_name: notifications.enable_new_notification_view
|
||||
# .. toggle_implementation: WaffleFlag
|
||||
# .. toggle_default: False
|
||||
# .. toggle_description: Waffle flag to enable new notification view
|
||||
# .. toggle_use_cases: temporary, open_edx
|
||||
# .. toggle_creation_date: 2024-09-30
|
||||
# .. toggle_target_removal_date: 2025-10-10
|
||||
# .. toggle_tickets: INF-1603
|
||||
ENABLE_NEW_NOTIFICATION_VIEW = WaffleFlag(f"{WAFFLE_NAMESPACE}.enable_new_notification_view", __name__)
|
||||
|
||||
@@ -5,7 +5,7 @@ from typing import Dict, List
|
||||
|
||||
from common.djangoapps.student.models import CourseAccessRole, CourseEnrollment
|
||||
from openedx.core.djangoapps.django_comment_common.models import Role
|
||||
from openedx.core.djangoapps.notifications.config.waffle import ENABLE_NOTIFICATIONS
|
||||
from openedx.core.djangoapps.notifications.config.waffle import ENABLE_NOTIFICATIONS, ENABLE_NEW_NOTIFICATION_VIEW
|
||||
from openedx.core.lib.cache_utils import request_cached
|
||||
|
||||
|
||||
@@ -47,6 +47,13 @@ def get_show_notifications_tray(user):
|
||||
return show_notifications_tray
|
||||
|
||||
|
||||
def get_is_new_notification_view_enabled():
|
||||
"""
|
||||
Returns True if the waffle flag for the new notification view is enabled, False otherwise.
|
||||
"""
|
||||
return ENABLE_NEW_NOTIFICATION_VIEW.is_enabled()
|
||||
|
||||
|
||||
def get_list_in_batches(input_list, batch_size):
|
||||
"""
|
||||
Divides the list of objects into list of list of objects each of length batch_size.
|
||||
|
||||
@@ -39,7 +39,7 @@ from .serializers import (
|
||||
UserCourseNotificationPreferenceSerializer,
|
||||
UserNotificationPreferenceUpdateSerializer,
|
||||
)
|
||||
from .utils import get_show_notifications_tray
|
||||
from .utils import get_show_notifications_tray, get_is_new_notification_view_enabled
|
||||
|
||||
|
||||
@allow_any_authenticated_user()
|
||||
@@ -329,6 +329,7 @@ class NotificationCountView(APIView):
|
||||
)
|
||||
count_total = 0
|
||||
show_notifications_tray = get_show_notifications_tray(self.request.user)
|
||||
is_new_notification_view_enabled = get_is_new_notification_view_enabled()
|
||||
count_by_app_name_dict = {
|
||||
app_name: 0
|
||||
for app_name in COURSE_NOTIFICATION_APPS
|
||||
@@ -344,7 +345,8 @@ class NotificationCountView(APIView):
|
||||
"show_notifications_tray": show_notifications_tray,
|
||||
"count": count_total,
|
||||
"count_by_app_name": count_by_app_name_dict,
|
||||
"notification_expiry_days": settings.NOTIFICATIONS_EXPIRY
|
||||
"notification_expiry_days": settings.NOTIFICATIONS_EXPIRY,
|
||||
"is_new_notification_view_enabled": is_new_notification_view_enabled
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user