feat: added waffle flag for new notification view (#35569)

This commit is contained in:
ayesha waris
2024-10-16 17:27:04 +05:00
committed by GitHub
parent d72e87d3f3
commit d8303a176c
3 changed files with 22 additions and 3 deletions

View File

@@ -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__)

View File

@@ -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.

View File

@@ -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
})