fix: added serializer_class to views needed

This commit is contained in:
2025-08-07 17:06:37 +05:00
parent 09a418aae9
commit 4fa754012d
8 changed files with 33 additions and 10 deletions

View File

@@ -64,7 +64,6 @@ class User(auth_models.AbstractUser):
_("Email Address"),
blank=True,
)
role = models.CharField(
_("Role"),
max_length=255,

View File

@@ -5,8 +5,8 @@ from . import views
router = DefaultRouter()
router.register(r"company-accounts", views.CompanyAccountCrudViewSet, "company-account-view-set") # type: ignore
router.register(r"company-folders", views.CompanyFolderCrudViewSet, "company-folders-view-set") # type: ignore
router.register(r"company-accounts", views.CompanyAccountViewSet, "company-account-view-set") # type: ignore
router.register(r"company-folders", views.CompanyFolderViewSet, "company-folders-view-set") # type: ignore
router.register(r"companies", views.CompanyCrudViewSet, "companies-view-set") # type: ignore

View File

@@ -16,7 +16,7 @@ from core.apps.companies.serializers.accounts import (
# @view-set | ALL - /company-accounts
###################################################################################
@extend_schema(tags=["Company Accounts"])
class CompanyAccountCrudViewSet(BaseViewSetMixin, ModelViewSet):
class CompanyAccountViewSet(BaseViewSetMixin, ModelViewSet):
queryset = CompanyAccountModel.objects.all()
serializer_class = ListCompanyAccountSerializer
permission_classes = [AllowAny]

View File

@@ -28,6 +28,7 @@ from core.apps.companies.serializers import (
from core.apps.contracts.serializers import (
RetrieveContractSerializer,
BaseContractSerializer,
RetrieveContractQuerySerializer,
)
from core.apps.contracts.models import ContractModel
@@ -79,7 +80,8 @@ class CompanyContractApiView(BaseApiViewMixin, GenericAPIView): # type: ignore
#! TODO: status should be added.
@extend_schema(
summary="Company Contracts",
description="Get List Company Contracts"
description="Get List Company Contracts",
parameters=[RetrieveContractQuerySerializer]
)
def get(
self,
@@ -88,9 +90,13 @@ class CompanyContractApiView(BaseApiViewMixin, GenericAPIView): # type: ignore
**kwargs: object,
) -> Response:
company = self.get_object()
contracts = ContractModel.objects.filter(
owners__legal_entity__phone=company.phone,
).distinct()
contracts = (
ContractModel.objects.filter(
owners__legal_entity__phone=company.phone,
)
.select_related("owners")
.distinct()
)
folders_param = request.data.get("folders")
if folders_param:

View File

@@ -28,8 +28,9 @@ from core.apps.companies.serializers.folders import (
# @view-set | ALL - /company-folders
###################################################################################
@extend_schema(tags=["Company Folders"])
class CompanyFolderCrudViewSet(BaseViewSetMixin, ModelViewSet):
class CompanyFolderViewSet(BaseViewSetMixin, ModelViewSet):
queryset = CompanyFolderModel.objects.all()
serializer_class = ListCompanyFolderSerializer
permission_classes = [AllowAny]
action_permission_classes = { # type: ignore

View File

@@ -154,3 +154,20 @@ class CreateContractSerializer(BaseContractSerializer):
attached_files.save() # type: ignore
return contract
###########################################################
# Query Serializers
###########################################################
class RetrieveContractQuerySerializer(serializers.Serializer):
folders = serializers.ListField(
child=serializers.CharField(),
required=False,
help_text="Company Folders that contract should be allocated to."
)
status = serializers.ListField(
child=serializers.CharField(),
required=False,
help_text="Contract Status which contract have related to current owner."
)
only_my_contracts = serializers.BooleanField(default=False)

View File

@@ -61,6 +61,7 @@ class ContractOwnerViewSet(BaseViewSetMixin, ModelViewSet):
@extend_schema(tags=["Contract Files"])
class ContractOwnerAttachedFileApiView(BaseApiViewMixin, GenericAPIView): # type: ignore
permission_classes = [AllowAny]
serializer_class = ListContractOwnerSerializer
queryset = ContractOwnerModel.objects.all()
method_permission_classes = {"delete": [AllowAny]}

View File

@@ -68,7 +68,6 @@ Testers will write `done`, `not ok` and developers will define status that is no
* `PATCH /company-accounts/<uuid:pk>` — admin — ok
* `DELETE /company-accounts/<uuid:pk>` — admin — ok
* `POST /accounts/verify` — user — TODO
* required: `phone`, `code`
---