Implement exchange imports and frontend reporting APIs
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m50s
CI/CD Pipeline / Run Tests (push) Successful in 3m57s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m50s
CI/CD Pipeline / Run Tests (push) Successful in 3m57s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
This commit is contained in:
109
src/apps/external_data/api.py
Normal file
109
src/apps/external_data/api.py
Normal file
@@ -0,0 +1,109 @@
|
||||
"""Read-only APIs for external data registries."""
|
||||
|
||||
from django_filters import rest_framework as filters
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
from apps.core.viewsets import ClassicReadOnlyViewSet
|
||||
from apps.external_data.models import (
|
||||
ArbitrationCase,
|
||||
IndustrialProduct,
|
||||
ProsecutorCheck,
|
||||
PublicProcurement,
|
||||
)
|
||||
from apps.external_data.serializers import (
|
||||
ArbitrationCaseSerializer,
|
||||
IndustrialProductSerializer,
|
||||
ProsecutorCheckSerializer,
|
||||
PublicProcurementSerializer,
|
||||
)
|
||||
|
||||
|
||||
class IndustrialProductFilter(filters.FilterSet):
|
||||
organization = filters.UUIDFilter(field_name="organization_id")
|
||||
product_class = filters.CharFilter(lookup_expr="exact")
|
||||
|
||||
class Meta:
|
||||
model = IndustrialProduct
|
||||
fields = ["organization", "product_class"]
|
||||
|
||||
|
||||
class ProsecutorCheckFilter(filters.FilterSet):
|
||||
organization = filters.UUIDFilter(field_name="organization_id")
|
||||
law_type = filters.CharFilter(lookup_expr="exact")
|
||||
start_date_from = filters.DateFilter(field_name="start_date", lookup_expr="gte")
|
||||
start_date_to = filters.DateFilter(field_name="start_date", lookup_expr="lte")
|
||||
|
||||
class Meta:
|
||||
model = ProsecutorCheck
|
||||
fields = ["organization", "law_type", "start_date_from", "start_date_to"]
|
||||
|
||||
|
||||
class PublicProcurementFilter(filters.FilterSet):
|
||||
organization = filters.UUIDFilter(field_name="organization_id")
|
||||
law_type = filters.CharFilter(lookup_expr="exact")
|
||||
contract_date_from = filters.DateFilter(
|
||||
field_name="contract_date", lookup_expr="gte"
|
||||
)
|
||||
contract_date_to = filters.DateFilter(field_name="contract_date", lookup_expr="lte")
|
||||
|
||||
class Meta:
|
||||
model = PublicProcurement
|
||||
fields = ["organization", "law_type", "contract_date_from", "contract_date_to"]
|
||||
|
||||
|
||||
class ArbitrationCaseFilter(filters.FilterSet):
|
||||
organization = filters.UUIDFilter(field_name="organization_id")
|
||||
party_role = filters.CharFilter(lookup_expr="exact")
|
||||
decision_date_from = filters.DateFilter(
|
||||
field_name="decision_date", lookup_expr="gte"
|
||||
)
|
||||
decision_date_to = filters.DateFilter(field_name="decision_date", lookup_expr="lte")
|
||||
|
||||
class Meta:
|
||||
model = ArbitrationCase
|
||||
fields = [
|
||||
"organization",
|
||||
"party_role",
|
||||
"decision_date_from",
|
||||
"decision_date_to",
|
||||
]
|
||||
|
||||
|
||||
class IndustrialProductViewSet(ClassicReadOnlyViewSet[IndustrialProduct]):
|
||||
queryset = IndustrialProduct.objects.select_related("organization").all()
|
||||
serializer_class = IndustrialProductSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
filterset_class = IndustrialProductFilter
|
||||
search_fields = ["product_name", "okpd2_code", "tnved_code", "registry_number"]
|
||||
ordering_fields = ["product_name", "created_at"]
|
||||
ordering = ["product_name"]
|
||||
|
||||
|
||||
class ProsecutorCheckViewSet(ClassicReadOnlyViewSet[ProsecutorCheck]):
|
||||
queryset = ProsecutorCheck.objects.select_related("organization").all()
|
||||
serializer_class = ProsecutorCheckSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
filterset_class = ProsecutorCheckFilter
|
||||
search_fields = ["registration_number", "control_authority", "prosecutor_office"]
|
||||
ordering_fields = ["start_date", "created_at"]
|
||||
ordering = ["-start_date"]
|
||||
|
||||
|
||||
class PublicProcurementViewSet(ClassicReadOnlyViewSet[PublicProcurement]):
|
||||
queryset = PublicProcurement.objects.select_related("organization").all()
|
||||
serializer_class = PublicProcurementSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
filterset_class = PublicProcurementFilter
|
||||
search_fields = ["purchase_number", "purchase_name"]
|
||||
ordering_fields = ["contract_date", "created_at", "contract_amount"]
|
||||
ordering = ["-contract_date"]
|
||||
|
||||
|
||||
class ArbitrationCaseViewSet(ClassicReadOnlyViewSet[ArbitrationCase]):
|
||||
queryset = ArbitrationCase.objects.select_related("organization").all()
|
||||
serializer_class = ArbitrationCaseSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
filterset_class = ArbitrationCaseFilter
|
||||
search_fields = ["case_number", "court_name"]
|
||||
ordering_fields = ["decision_date", "created_at"]
|
||||
ordering = ["-decision_date"]
|
||||
Reference in New Issue
Block a user