Added specific filters for fields
This commit is contained in:
parent
c40c7b5e3a
commit
e11c0fe697
4 changed files with 36 additions and 19 deletions
|
|
@ -1,5 +1,6 @@
|
|||
from django.db.models import Q
|
||||
from rest_framework import status
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from rest_framework.parsers import FormParser, MultiPartParser
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
|
|
@ -17,19 +18,18 @@ class TrainingFileViewSet(ModelViewSet):
|
|||
parser_classes = [MultiPartParser, FormParser]
|
||||
lookup_field = 'uuid'
|
||||
|
||||
filterset_fields = {
|
||||
'role__organization__uuid': ['exact'],
|
||||
'role__uuid': ['exact'],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
user = self.request.user
|
||||
queryset = TrainingFile.objects.filter(
|
||||
return TrainingFile.objects.filter(
|
||||
Q(role__organization__owner=user) |
|
||||
Q(role__organization__members=user)
|
||||
).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):
|
||||
role_uuid = self.request.data.get('role')
|
||||
|
||||
|
|
@ -70,6 +70,11 @@ class RoleRagDocumentViewSet(ReadOnlyModelViewSet):
|
|||
permission_classes = [IsAuthenticated]
|
||||
lookup_field = 'uuid'
|
||||
|
||||
filterset_fields = {
|
||||
'role__organization__uuid': ['exact'],
|
||||
'role__uuid': ['exact'],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
user = self.request.user
|
||||
return RoleRagDocument.objects.filter(
|
||||
|
|
|
|||
|
|
@ -21,18 +21,16 @@ class OnboardingFlowViewSet(ModelViewSet):
|
|||
permission_classes = [IsAuthenticated]
|
||||
lookup_field = 'uuid'
|
||||
|
||||
filterset_fields = {
|
||||
'role__uuid': ['exact'],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
user = self.request.user
|
||||
queryset = OnboardingFlow.objects.filter(
|
||||
return OnboardingFlow.objects.filter(
|
||||
Q(role__organization__owner=user) |
|
||||
Q(role__organization__members=user)
|
||||
).distinct()
|
||||
|
||||
role_uuid = self.request.query_params.get('role')
|
||||
if role_uuid:
|
||||
queryset = queryset.filter(role__uuid=role_uuid)
|
||||
|
||||
return queryset.order_by('-created_at')
|
||||
).distinct().order_by('-created_at')
|
||||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
flow = self.get_object()
|
||||
|
|
@ -76,6 +74,10 @@ class AgentConfigViewSet(ModelViewSet):
|
|||
permission_classes = [IsAuthenticated]
|
||||
lookup_field = 'uuid'
|
||||
|
||||
filterset_fields = {
|
||||
'organization__uuid': ['exact'],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
return AgentConfig.objects.filter(organization__members=self.request.user).distinct()
|
||||
|
||||
|
|
@ -90,6 +92,10 @@ class OnboardingSessionViewSet(ModelViewSet):
|
|||
permission_classes = [IsAuthenticated]
|
||||
lookup_field = 'uuid'
|
||||
|
||||
filterset_fields = {
|
||||
'role__uuid': ['exact'],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
user = self.request.user
|
||||
if user.is_manager:
|
||||
|
|
@ -97,10 +103,6 @@ class OnboardingSessionViewSet(ModelViewSet):
|
|||
else:
|
||||
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')
|
||||
|
||||
@action(detail=True, methods=['post'], url_path='interact')
|
||||
|
|
@ -165,6 +167,11 @@ class AgentInteractionLogViewSet(ReadOnlyModelViewSet):
|
|||
permission_classes = [IsAuthenticated]
|
||||
lookup_field = 'uuid'
|
||||
|
||||
filterset_fields = {
|
||||
'session__uuid': ['exact'],
|
||||
'session__role__uuid': ['exact'],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
return AgentInteractionLog.objects.filter(
|
||||
Q(session__user=self.request.user) |
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ DJANGO_APPS = [
|
|||
]
|
||||
THIRD_PARTY_APPS = [
|
||||
'rest_framework',
|
||||
'django_filters',
|
||||
'channels',
|
||||
'django_celery_results',
|
||||
'corsheaders',
|
||||
|
|
@ -172,6 +173,9 @@ REST_FRAMEWORK = {
|
|||
'DEFAULT_PERMISSION_CLASSES': [
|
||||
'rest_framework.permissions.AllowAny',
|
||||
],
|
||||
'DEFAULT_FILTER_BACKENDS': [
|
||||
'django_filters.rest_framework.DjangoFilterBackend',
|
||||
],
|
||||
}
|
||||
|
||||
CELERY_BROKER_URL = DJANGO_CELERY_BROKER_URL
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ django==6.0.2
|
|||
django-celery-results==2.6.0
|
||||
django-cors-headers==4.9.0
|
||||
djangorestframework==3.16.1
|
||||
django-filter==25.2
|
||||
django-unfold==0.81.0
|
||||
httpx==0.28.1
|
||||
pgvector==0.4.2
|
||||
|
|
|
|||
Loading…
Reference in a new issue