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)
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(
methods=['get'],
detail=False,

View File

@@ -10,19 +10,19 @@ class RancherOrganizationService:
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, ....
"""
if org.type.key != 'ADM':
organizations = get_all_org_child(org)
else:
organizations = Organization.objects.filter(type__key='CO')
organizations = Organization.objects.filter(type__key=org_type_key)
linked_qs = RancherOrganizationLink.objects.select_related(
'rancher',
'organization'
).filter(organization__in=organizations, organization__type__key='CO')
).filter(organization__in=organizations, organization__type__key=org_type_key)
organizations = organizations.annotate(
rancher_count=Count(

View File

@@ -303,9 +303,10 @@ class RancherOrganizationLinkViewSet(
list of organizations with rancher information
"""
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(
methods=['get'],