Skip to content

Commit

Permalink
feat: add new filters on room list
Browse files Browse the repository at this point in the history
feat: remove is_active filter from room endpoint as it will only work for active rooms
  • Loading branch information
helllllllder committed Oct 22, 2024
1 parent b351e26 commit e01940a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 12 deletions.
17 changes: 6 additions & 11 deletions chats/apps/api/v1/rooms/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
class RoomFilter(filters.FilterSet):
class Meta:
model = Room
fields = ["queue", "is_active"]
fields = ["queue", "is_waiting"]

project = filters.CharFilter(
field_name="project",
Expand All @@ -21,11 +21,9 @@ class Meta:
help_text=_("Project's UUID"),
)

is_active = filters.BooleanFilter(
field_name="is_active",
attending = filters.BooleanFilter(
required=False,
method="filter_is_active",
help_text=_("Is active?"),
method="filter_attending",
)

def filter_project(self, queryset, name, value):
Expand All @@ -43,17 +41,14 @@ def filter_project(self, queryset, name, value):

if project_permission.is_admin:
user_filter = Q(user=user) | Q(user__isnull=True)
return queryset.filter(
user_filter, is_active=True, queue__in=project_permission.queue_ids
)
return queryset.filter(user_filter, queue__in=project_permission.queue_ids)
user_project = Q(user=user) & Q(project_uuid=value)
queue_filter = Q(user__isnull=True) & Q(queue__in=project_permission.queue_ids)
ff = user_project | queue_filter
queryset = queryset.filter(
ff,
is_active=True,
)
return queryset

def filter_is_active(self, queryset, name, value):
return queryset.filter(is_active=value)
def filter_attending(self, queryset, name, value):
return queryset.filter(user__isnull=not value)
2 changes: 1 addition & 1 deletion chats/apps/api/v1/rooms/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class RoomViewset(
mixins.UpdateModelMixin,
GenericViewSet,
):
queryset = Room.objects.all()
queryset = Room.objects.filter(is_active=True)
serializer_class = RoomSerializer
filter_backends = [
DjangoFilterBackend,
Expand Down

0 comments on commit e01940a

Please sign in to comment.