add: add new api for counterparty folder

This commit is contained in:
behruz-dev
2025-09-09 15:14:50 +05:00
parent e98e40a3c7
commit 4f023b5c4b
2 changed files with 18 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ urlpatterns = [
path('create/', folder_views.CounterpartyCreateApiView.as_view()),
path('<uuid:id>/delete/', folder_views.CounterpartyDeleteApiView.as_view()),
path('<uuid:id>/update/', folder_views.CounterpartyUpdateApiView.as_view()),
path('<uuid:folder_id>/counterparty/list/', cp_views.FolderCounterpartyListApiView.as_view()),
]
))
]

View File

@@ -6,13 +6,14 @@ from django_filters.rest_framework.backends import DjangoFilterBackend
from core.apps.accounts.permissions.permissions import HasRolePermission
from core.apps.shared.paginations.custom import CustomPageNumberPagination
from core.apps.counterparty.models import Counterparty
from core.apps.counterparty.models import Counterparty, CounterpartyFolder
from core.apps.counterparty.serializers import counterparty as serializers
from core.apps.counterparty.filters.counterparty import CounterpartyFilter
class CounterpartyListApiView(generics.ListAPIView):
serializer_class = serializers.CounterpartyListSerializer
queryset = Counterparty.objects.exclude(is_archived=True)
queryset = Counterparty.objects.exclude(is_archived=True).exclude(folder__isnull=True)
pagination_class = [HasRolePermission]
required_permissions = []
pagination_class = CustomPageNumberPagination
@@ -81,3 +82,17 @@ class CounterpartyUpdateApiView(generics.UpdateAPIView):
lookup_field = 'id'
serializer_class = serializers.CounterpartyUpdateSerializer
queryset = Counterparty.objects.all()
class FolderCounterpartyListApiView(generics.GenericAPIView):
serializer_class = serializers.CounterpartyListSerializer
queryset = Counterparty.objects.exclude(is_archived=True)
permission_classes = [HasRolePermission]
def get(self, reuqest, folder_id):
folder = get_object_or_404(CounterpartyFolder, id=folder_id)
queryset = self.queryset.filter(fodler=folder).exclude(folder__isnull=False)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)