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 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
|
||||||
|
|
@ -16,20 +17,19 @@ class TrainingFileViewSet(ModelViewSet):
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
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')
|
||||||
|
|
||||||
|
|
@ -69,6 +69,11 @@ class RoleRagDocumentViewSet(ReadOnlyModelViewSet):
|
||||||
serializer_class = RoleRagDocumentSerializer
|
serializer_class = RoleRagDocumentSerializer
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -20,19 +20,17 @@ class OnboardingFlowViewSet(ModelViewSet):
|
||||||
serializer_class = OnboardingFlowSerializer
|
serializer_class = OnboardingFlowSerializer
|
||||||
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()
|
||||||
|
|
@ -75,6 +73,10 @@ class AgentConfigViewSet(ModelViewSet):
|
||||||
serializer_class = AgentConfigSerializer
|
serializer_class = AgentConfigSerializer
|
||||||
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()
|
||||||
|
|
@ -89,6 +91,10 @@ class OnboardingSessionViewSet(ModelViewSet):
|
||||||
serializer_class = OnboardingSessionSerializer
|
serializer_class = OnboardingSessionSerializer
|
||||||
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
|
||||||
|
|
@ -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')
|
||||||
|
|
@ -164,6 +166,11 @@ class AgentInteractionLogViewSet(ReadOnlyModelViewSet):
|
||||||
serializer_class = AgentInteractionLogSerializer
|
serializer_class = AgentInteractionLogSerializer
|
||||||
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(
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue