def notification_infinite_scroll_view(request: WSGIRequest) -> TemplateResponse:
if isinstance(request.user, AnonymousUser):
notifications = []
else:
notifications = (
AppNotification.objects.active()
.is_sent()
.annotate_is_viewed_by_user(request.user)
.select_related('notification')
.distinct()
.ordered_by_priority_and_sent_datetime()
)
body_data = json.loads(request.body.decode('utf-8'))
return infinite_scrolling_view(
request,
queryset=notifications,
queryset_name='notifications',
context_data={
'app_notification_list_url': body_data.get('app_notification_list_url'),
},
template='django_spire/notification/app/scroll/item/items.html',
)