import / fix --> unions list / paginate orgs list in rancher link

This commit is contained in:
2025-12-23 11:37:51 +03:30
parent 056f4722f1
commit 846e57dd41
3 changed files with 26 additions and 5 deletions

View File

@@ -388,6 +388,26 @@ class OrganizationViewSet(BaseViewSet, ModelViewSet, DynamicSearchMixin):
serializer = self.serializer_class(page, many=True) serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
@action(
methods=['get'],
detail=False,
url_path='get_union_orgs',
url_name='get_union_orgs',
name='get_union_orgs',
)
def get_union_orgs(self, request):
"""
list of unions
"""
unions = self.get_queryset(visibility_by_org_scope=True)
page = self.paginate_queryset(unions.filter(type__key='U'))
if page is not None: # noqa
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)
return Response(status=status.HTTP_200_OK)
@action( @action(
methods=['get'], methods=['get'],
detail=False, detail=False,

View File

@@ -10,19 +10,19 @@ class RancherOrganizationService:
different services of ranchers linked to organization different services of ranchers linked to organization
""" """
def orgs_linked_rancher(self, org: Organization = None): def orgs_linked_rancher(self, org: Organization = None, org_type_key: str = None):
""" """
list of organizations with their information of rancher, herd, .... list of organizations with their information of rancher, herd, ....
""" """
if org.type.key != 'ADM': if org.type.key != 'ADM':
organizations = get_all_org_child(org) organizations = get_all_org_child(org)
else: else:
organizations = Organization.objects.filter(type__key='CO') organizations = Organization.objects.filter(type__key=org_type_key)
linked_qs = RancherOrganizationLink.objects.select_related( linked_qs = RancherOrganizationLink.objects.select_related(
'rancher', 'rancher',
'organization' 'organization'
).filter(organization__in=organizations, organization__type__key='CO') ).filter(organization__in=organizations, organization__type__key=org_type_key)
organizations = organizations.annotate( organizations = organizations.annotate(
rancher_count=Count( rancher_count=Count(

View File

@@ -303,9 +303,10 @@ class RancherOrganizationLinkViewSet(
list of organizations with rancher information list of organizations with rancher information
""" """
org = get_organization_by_user(request.user) org = get_organization_by_user(request.user)
result = self.orgs_linked_rancher(org=org) result = self.orgs_linked_rancher(org=org, org_type_key='CO')
return Response(result) page = self.paginate_queryset(result) # paginate queryset
return self.get_paginated_response(result)
@action( @action(
methods=['get'], methods=['get'],