Added inventory tree view for AC-360.

This commit is contained in:
Chris Church
2013-08-26 12:57:41 -04:00
parent e343c9386d
commit 2bb5374685
14 changed files with 88 additions and 10 deletions

View File

@@ -550,9 +550,7 @@ class InventoryRootGroupsList(SubListCreateAPIView):
parent = self.get_parent_object()
self.check_parent_access(parent)
qs = self.request.user.get_queryset(self.model)
all_pks = parent.groups.values_list('pk', flat=True)
sublist_qs = parent.groups.exclude(parents__pk__in=all_pks).distinct()
return qs & sublist_qs
return qs & parent.root_groups
class BaseVariableData(RetrieveUpdateAPIView):
@@ -618,6 +616,25 @@ class InventoryScriptView(RetrieveAPIView):
return Response(data)
class InventoryTreeView(RetrieveAPIView):
model = Inventory
filter_backends = ()
new_in_13 = True
def retrieve(self, request, *args, **kwargs):
inventory = self.get_object()
groups_qs = inventory.root_groups.filter(active=True)
data = GroupTreeSerializer(groups_qs, many=True).data
return Response(data)
def get_description_context(self):
d = super(InventoryTreeView, self).get_description_context()
d.update({
'serializer_fields': GroupTreeSerializer().metadata(),
})
return d
class JobTemplateList(ListCreateAPIView):
model = JobTemplate