add: add seach for expence-income contract list api

This commit is contained in:
behruz-dev
2025-09-13 17:41:12 +05:00
parent 8d7133495a
commit 493460b835
2 changed files with 17 additions and 3 deletions

View File

@@ -1,7 +1,9 @@
from django.utils.timezone import now from django.utils.timezone import now
from django.db.models import Sum, Q, F from django.db.models import Sum, Q, F
from rest_framework import generics, views from django_filters.rest_framework.backends import DjangoFilterBackend
from rest_framework import generics, views, filters
from rest_framework.response import Response from rest_framework.response import Response
from core.apps.finance.models import ExpenceContract from core.apps.finance.models import ExpenceContract
@@ -41,6 +43,11 @@ class ExpenceContractListApiView(generics.GenericAPIView):
'project_folder', 'project', 'user', 'expence_type', 'counterparty' 'project_folder', 'project', 'user', 'expence_type', 'counterparty'
) )
permission_classes = [HasRolePermission] permission_classes = [HasRolePermission]
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
search_fields = [
'user__full_name', 'project_folder__name', 'project__name', 'expence_type__name',
'counterparty__name'
]
def get(self, request): def get(self, request):
counterparty_id = request.query_params.get('counterparty') counterparty_id = request.query_params.get('counterparty')

View File

@@ -2,7 +2,9 @@ from django.shortcuts import get_object_or_404
from django.db.models import Sum, Q, F from django.db.models import Sum, Q, F
from django.utils.timezone import now from django.utils.timezone import now
from rest_framework import generics, views from django_filters.rest_framework.backends import DjangoFilterBackend
from rest_framework import generics, views, filters
from rest_framework.response import Response from rest_framework.response import Response
from core.apps.accounts.permissions.permissions import HasRolePermission from core.apps.accounts.permissions.permissions import HasRolePermission
@@ -42,6 +44,11 @@ class IncomeContractListApiView(generics.GenericAPIView):
'project_folder', 'project', 'income_type', 'counterparty', 'project_folder', 'project', 'income_type', 'counterparty',
) )
permission_classes = [HasRolePermission] permission_classes = [HasRolePermission]
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
search_fields = [
'user__full_name', 'project_folder__name', 'project__name', 'expence_type__name',
'counterparty__name'
]
def get(self, request): def get(self, request):
counterparty_id = request.query_params.get('counterparty') counterparty_id = request.query_params.get('counterparty')