mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 18:40:01 -03:30
AC-1040 Fix inventory tree view.
This commit is contained in:
parent
6504a8ae40
commit
42e9451742
@ -72,7 +72,7 @@ SUMMARIZABLE_FK_FIELDS = {
|
||||
'last_job_host_summary': DEFAULT_SUMMARY_FIELDS + ('failed',),
|
||||
'last_update': DEFAULT_SUMMARY_FIELDS + ('status', 'failed', 'license_error'),
|
||||
'current_update': DEFAULT_SUMMARY_FIELDS + ('status', 'failed', 'license_error'),
|
||||
'inventory_source': ('source', 'last_updated', 'status'),
|
||||
#'inventory_source': ('source', 'last_updated', 'status'),
|
||||
}
|
||||
|
||||
class ChoiceField(fields.ChoiceField):
|
||||
@ -654,7 +654,8 @@ class GroupTreeSerializer(GroupSerializer):
|
||||
if obj is None:
|
||||
return {}
|
||||
children_qs = obj.children.filter(active=True)
|
||||
children_qs = children_qs.select_related('inventory', 'inventory_source')
|
||||
children_qs = children_qs.select_related('inventory')
|
||||
children_qs = children_qs.prefetch_related('inventory_source')
|
||||
return GroupTreeSerializer(children_qs, many=True).data
|
||||
|
||||
|
||||
|
||||
@ -1152,7 +1152,8 @@ class InventoryTreeView(RetrieveAPIView):
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
inventory = self.get_object()
|
||||
groups_qs = inventory.root_groups.filter(active=True)
|
||||
groups_qs = groups_qs.select_related('inventory', 'inventory_source')
|
||||
groups_qs = groups_qs.select_related('inventory')
|
||||
groups_qs = groups_qs.prefetch_related('inventory_source')
|
||||
data = GroupTreeSerializer(groups_qs, many=True).data
|
||||
return Response(data)
|
||||
|
||||
|
||||
@ -396,8 +396,8 @@ class GroupAccess(BaseAccess):
|
||||
|
||||
def get_queryset(self):
|
||||
qs = self.model.objects.filter(active=True).distinct()
|
||||
qs = qs.select_related('created_by', 'inventory')#, 'inventory_source')
|
||||
qs = qs.prefetch_related('parents', 'children')
|
||||
qs = qs.select_related('created_by', 'inventory')
|
||||
qs = qs.prefetch_related('parents', 'children', 'inventory_source')
|
||||
inventories_qs = self.user.get_queryset(Inventory)
|
||||
return qs.filter(inventory__in=inventories_qs)
|
||||
|
||||
|
||||
@ -807,11 +807,15 @@ class InventoryTest(BaseTest):
|
||||
def test_get_inventory_tree_view(self):
|
||||
# Group A is parent of B, B is parent of C, C is parent of D.
|
||||
g_a = self.inventory_a.groups.create(name='A')
|
||||
g_a.inventory_source
|
||||
g_b = self.inventory_a.groups.create(name='B')
|
||||
g_b.inventory_source
|
||||
g_b.parents.add(g_a)
|
||||
g_c = self.inventory_a.groups.create(name='C')
|
||||
g_c.inventory_source
|
||||
g_c.parents.add(g_b)
|
||||
g_d = self.inventory_a.groups.create(name='D')
|
||||
g_d.inventory_source
|
||||
g_d.parents.add(g_c)
|
||||
|
||||
url = reverse('api:inventory_tree_view', args=(self.inventory_a.pk,))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user