Added specific filters for fields

This commit is contained in:
Viswamedha Nalabotu 2026-02-27 14:23:26 +00:00
parent c40c7b5e3a
commit e11c0fe697
4 changed files with 36 additions and 19 deletions

View file

@ -1,5 +1,6 @@
from django.db.models import Q from django.db.models import Q
from rest_framework import status from rest_framework import status
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.parsers import FormParser, MultiPartParser from rest_framework.parsers import FormParser, MultiPartParser
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response from rest_framework.response import Response
@ -17,19 +18,18 @@ class TrainingFileViewSet(ModelViewSet):
parser_classes = [MultiPartParser, FormParser] parser_classes = [MultiPartParser, FormParser]
lookup_field = 'uuid' lookup_field = 'uuid'
filterset_fields = {
'role__organization__uuid': ['exact'],
'role__uuid': ['exact'],
}
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
queryset = TrainingFile.objects.filter( return TrainingFile.objects.filter(
Q(role__organization__owner=user) | Q(role__organization__owner=user) |
Q(role__organization__members=user) Q(role__organization__members=user)
).distinct() ).distinct()
organization_uuid = self.request.query_params.get('organization_uuid')
if organization_uuid:
queryset = queryset.filter(role__organization__uuid=organization_uuid)
return queryset
def perform_create(self, serializer): def perform_create(self, serializer):
role_uuid = self.request.data.get('role') role_uuid = self.request.data.get('role')
@ -70,6 +70,11 @@ class RoleRagDocumentViewSet(ReadOnlyModelViewSet):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
lookup_field = 'uuid' lookup_field = 'uuid'
filterset_fields = {
'role__organization__uuid': ['exact'],
'role__uuid': ['exact'],
}
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
return RoleRagDocument.objects.filter( return RoleRagDocument.objects.filter(

View file

@ -21,18 +21,16 @@ class OnboardingFlowViewSet(ModelViewSet):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
lookup_field = 'uuid' lookup_field = 'uuid'
filterset_fields = {
'role__uuid': ['exact'],
}
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
queryset = OnboardingFlow.objects.filter( return OnboardingFlow.objects.filter(
Q(role__organization__owner=user) | Q(role__organization__owner=user) |
Q(role__organization__members=user) Q(role__organization__members=user)
).distinct() ).distinct().order_by('-created_at')
role_uuid = self.request.query_params.get('role')
if role_uuid:
queryset = queryset.filter(role__uuid=role_uuid)
return queryset.order_by('-created_at')
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
flow = self.get_object() flow = self.get_object()
@ -76,6 +74,10 @@ class AgentConfigViewSet(ModelViewSet):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
lookup_field = 'uuid' lookup_field = 'uuid'
filterset_fields = {
'organization__uuid': ['exact'],
}
def get_queryset(self): def get_queryset(self):
return AgentConfig.objects.filter(organization__members=self.request.user).distinct() return AgentConfig.objects.filter(organization__members=self.request.user).distinct()
@ -90,6 +92,10 @@ class OnboardingSessionViewSet(ModelViewSet):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
lookup_field = 'uuid' lookup_field = 'uuid'
filterset_fields = {
'role__uuid': ['exact'],
}
def get_queryset(self): def get_queryset(self):
user = self.request.user user = self.request.user
if user.is_manager: if user.is_manager:
@ -97,10 +103,6 @@ class OnboardingSessionViewSet(ModelViewSet):
else: else:
queryset = OnboardingSession.objects.filter(user=user) queryset = OnboardingSession.objects.filter(user=user)
role_uuid = self.request.query_params.get('role')
if role_uuid:
queryset = queryset.filter(role__uuid=role_uuid)
return queryset.order_by('-created_at') return queryset.order_by('-created_at')
@action(detail=True, methods=['post'], url_path='interact') @action(detail=True, methods=['post'], url_path='interact')
@ -165,6 +167,11 @@ class AgentInteractionLogViewSet(ReadOnlyModelViewSet):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
lookup_field = 'uuid' lookup_field = 'uuid'
filterset_fields = {
'session__uuid': ['exact'],
'session__role__uuid': ['exact'],
}
def get_queryset(self): def get_queryset(self):
return AgentInteractionLog.objects.filter( return AgentInteractionLog.objects.filter(
Q(session__user=self.request.user) | Q(session__user=self.request.user) |

View file

@ -64,6 +64,7 @@ DJANGO_APPS = [
] ]
THIRD_PARTY_APPS = [ THIRD_PARTY_APPS = [
'rest_framework', 'rest_framework',
'django_filters',
'channels', 'channels',
'django_celery_results', 'django_celery_results',
'corsheaders', 'corsheaders',
@ -172,6 +173,9 @@ REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [ 'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny', 'rest_framework.permissions.AllowAny',
], ],
'DEFAULT_FILTER_BACKENDS': [
'django_filters.rest_framework.DjangoFilterBackend',
],
} }
CELERY_BROKER_URL = DJANGO_CELERY_BROKER_URL CELERY_BROKER_URL = DJANGO_CELERY_BROKER_URL

View file

@ -6,6 +6,7 @@ django==6.0.2
django-celery-results==2.6.0 django-celery-results==2.6.0
django-cors-headers==4.9.0 django-cors-headers==4.9.0
djangorestframework==3.16.1 djangorestframework==3.16.1
django-filter==25.2
django-unfold==0.81.0 django-unfold==0.81.0
httpx==0.28.1 httpx==0.28.1
pgvector==0.4.2 pgvector==0.4.2