diff --git a/core/apps/companies/views/companies.py b/core/apps/companies/views/companies.py index a529373..5f295ee 100644 --- a/core/apps/companies/views/companies.py +++ b/core/apps/companies/views/companies.py @@ -83,12 +83,7 @@ class CompanyContractApiView(BaseApiViewMixin, GenericAPIView): # type: ignore description="Get List Company Contracts", parameters=[RetrieveContractQuerySerializer] ) - def get( - self, - request: HttpRequest, - *args: object, - **kwargs: object, - ) -> Response: + def get(self, request: HttpRequest, *args: object, **kwargs: object) -> Response: company = self.get_object() contracts = ( ContractModel.objects.filter( diff --git a/core/apps/contracts/migrations/0002_contractmodel_document_url.py b/core/apps/contracts/migrations/0002_contractmodel_document_url.py new file mode 100644 index 0000000..a6eb23b --- /dev/null +++ b/core/apps/contracts/migrations/0002_contractmodel_document_url.py @@ -0,0 +1,19 @@ +# Generated by Django 5.2.4 on 2025-08-08 05:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("contracts", "0001_initial"), + ] + + operations = [ + migrations.AddField( + model_name="contractmodel", + name="document_url", + field=models.FileField(default=1, max_length=2048, upload_to="", verbose_name="Document"), + preserve_default=False, + ), + ] diff --git a/core/apps/contracts/migrations/0003_rename_document_url_contractmodel_document.py b/core/apps/contracts/migrations/0003_rename_document_url_contractmodel_document.py new file mode 100644 index 0000000..98c8475 --- /dev/null +++ b/core/apps/contracts/migrations/0003_rename_document_url_contractmodel_document.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.4 on 2025-08-08 05:17 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("contracts", "0002_contractmodel_document_url"), + ] + + operations = [ + migrations.RenameField( + model_name="contractmodel", + old_name="document_url", + new_name="document", + ), + ] diff --git a/core/apps/contracts/models/contracts.py b/core/apps/contracts/models/contracts.py index d1f887f..16b921f 100644 --- a/core/apps/contracts/models/contracts.py +++ b/core/apps/contracts/models/contracts.py @@ -9,7 +9,6 @@ from core.apps.contracts.validators.contracts import ( class ContractModel(UUIDPrimaryKeyBaseModel): - name = models.CharField( _("name"), validators=[ @@ -17,13 +16,17 @@ class ContractModel(UUIDPrimaryKeyBaseModel): ], max_length=255 ) - + document = models.FileField( + _("Document"), + null=False, + blank=False, + max_length=2048, + ) identifier = models.CharField( _("Identifier"), null=False, blank=False ) - allow_add_files = models.BooleanField(default=False) allow_delete_files = models.BooleanField(default=False) diff --git a/core/apps/contracts/serializers/contracts/contracts.py b/core/apps/contracts/serializers/contracts/contracts.py index 5bfc705..6093930 100644 --- a/core/apps/contracts/serializers/contracts/contracts.py +++ b/core/apps/contracts/serializers/contracts/contracts.py @@ -165,9 +165,14 @@ class RetrieveContractQuerySerializer(serializers.Serializer): 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) + + created = serializers.BooleanField(required=False) + signed_by_counterparty = serializers.BooleanField(required=False) + signed_by_all_parts = serializers.BooleanField(required=False) + signed_by_counterparties = serializers.BooleanField(required=False) + + rejected_by_counterparty = serializers.BooleanField(required=False) + rejected_by_me = serializers.BooleanField(required=False) + rejected = serializers.BooleanField(required=False) + + only_my_contracts = serializers.BooleanField(required=False) diff --git a/core/apps/contracts/views/contracts.py b/core/apps/contracts/views/contracts.py index f64a561..925af59 100644 --- a/core/apps/contracts/views/contracts.py +++ b/core/apps/contracts/views/contracts.py @@ -4,13 +4,13 @@ from drf_spectacular.utils import extend_schema from rest_framework.permissions import AllowAny, IsAdminUser # type: ignore from rest_framework.viewsets import ModelViewSet # type: ignore from rest_framework.generics import GenericAPIView # type: ignore -from core.utils.views import BaseApiViewMixin - +from rest_framework.parsers import MultiPartParser # type: ignore from rest_framework.request import HttpRequest # type: ignore from rest_framework.response import Response # type: ignore from rest_framework import status # type: ignore from django_core.mixins import BaseViewSetMixin # type: ignore +from core.utils.views import BaseApiViewMixin from core.apps.contracts.models import ( ContractModel, ContractAttachedFileModel, @@ -36,6 +36,7 @@ class ContractViewSet(BaseViewSetMixin, ModelViewSet): queryset = ContractModel.objects.all() serializer_class = ListContractSerializer permission_classes = [AllowAny] + parser_classes = [MultiPartParser] action_permission_classes = { # type: ignore "list": [IsAdminUser],