feat: use authoritative organization directory
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user