feat: use authoritative organization directory
Some checks failed
CI/CD Pipeline / Quality Gate (push) Failing after 9s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Deploy Dev via Compose (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 0s

This commit is contained in:
2026-06-07 16:04:43 +02:00
parent 79f0f8ebf7
commit 6ba8fa8d88
41 changed files with 2781 additions and 1058 deletions

View File

@@ -14,7 +14,6 @@ from django.db.models.functions import Cast
from django_filters import rest_framework as filters
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
from registers.models import RegistryMembershipPeriod
from rest_framework.decorators import action
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.permissions import AllowAny, IsAuthenticated
@@ -531,39 +530,14 @@ class OrganizationSourceRecordViewSet(ReadOnlyModelViewSet):
@staticmethod
def _registry_search_query(search_term: str) -> Q:
registry_membership = (
RegistryMembershipPeriod.objects.filter(
ended_at__isnull=True,
)
.order_by()
.annotate(
registry_inn_text=Cast(
"organization__mn_inn",
output_field=CharField(),
),
registry_kpp_text=Cast(
"organization__in_kpp",
output_field=CharField(),
),
registry_ogrn_text=Cast(
"organization__mn_ogrn",
output_field=CharField(),
),
)
.filter(
Q(organization__pn_name__icontains=search_term)
| Q(registry_inn_text__icontains=search_term)
| Q(registry_kpp_text__icontains=search_term)
| Q(registry_ogrn_text__icontains=search_term),
)
)
inn_values = registry_membership.values_list("registry_inn_text", flat=True)
ogrn_values = registry_membership.values_list("registry_ogrn_text", flat=True)
return (
Q(extension__organization__inn__in=inn_values)
| Q(extension__organization__ogrn__in=ogrn_values)
| Q(extension__organization__ogrip__in=ogrn_values)
Q(extension__organization__name__icontains=search_term)
| Q(extension__organization__full_name__icontains=search_term)
| Q(extension__organization__short_name__icontains=search_term)
| Q(extension__organization__inn__icontains=search_term)
| Q(extension__organization__kpp__icontains=search_term)
| Q(extension__organization__ogrn__icontains=search_term)
| Q(extension__organization__okpo__icontains=search_term)
)
@swagger_auto_schema(