add: add seach for expence-income contract list api
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
@@ -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,12 +44,17 @@ 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')
|
||||||
if counterparty_id:
|
if counterparty_id:
|
||||||
self.queryset = self.queryset.filter(counterparty=counterparty_id)
|
self.queryset = self.queryset.filter(counterparty=counterparty_id)
|
||||||
|
|
||||||
page = self.paginate_queryset(self.queryset)
|
page = self.paginate_queryset(self.queryset)
|
||||||
if page is not None:
|
if page is not None:
|
||||||
serializer = self.serializer_class(page, many=True)
|
serializer = self.serializer_class(page, many=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user