Source code for certego_saas.apps.notifications.filters

import rest_framework_filters as filters
from django.db.models import Value

from .models import Notification

__all__ = ["NotificationFilter"]


[docs]class NotificationFilter(filters.FilterSet): """ Used in :class:`~.views.NotificationViewSet`. """ read = filters.BooleanFilter(method="filter_for_read") def filter_for_read(self, queryset, value, read, *args, **kwargs): if read is True: return queryset.filter(read_by_users__in=[self.request.user]).annotate( read=Value(True) ) if read is False: return queryset.exclude(read_by_users__in=[self.request.user]).annotate( read=Value(False) ) return queryset class Meta: model = Notification fields = ["read"]