1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Location model cleanup

This commit is contained in:
jeremystretch
2021-04-05 11:04:12 -04:00
parent 4883bc3dd4
commit 7b8bd2d4ce
6 changed files with 34 additions and 14 deletions

View File

@@ -134,12 +134,13 @@ class LocationSerializer(NestedGroupModelSerializer):
site = NestedSiteSerializer()
parent = NestedLocationSerializer(required=False, allow_null=True)
rack_count = serializers.IntegerField(read_only=True)
device_count = serializers.IntegerField(read_only=True)
class Meta:
model = Location
fields = [
'id', 'url', 'display', 'name', 'slug', 'site', 'parent', 'description', 'custom_fields', 'created',
'last_updated', 'rack_count', '_depth',
'last_updated', 'rack_count', 'device_count', '_depth',
]

View File

@@ -146,7 +146,13 @@ class SiteViewSet(CustomFieldModelViewSet):
class LocationViewSet(CustomFieldModelViewSet):
queryset = Location.objects.add_related_count(
Location.objects.all(),
Location.objects.add_related_count(
Location.objects.all(),
Device,
'location',
'device_count',
cumulative=True
),
Rack,
'location',
'rack_count',
@@ -174,7 +180,7 @@ class RackRoleViewSet(CustomFieldModelViewSet):
class RackViewSet(CustomFieldModelViewSet):
queryset = Rack.objects.prefetch_related(
'site', 'location__site', 'role', 'tenant', 'tags'
'site', 'location', 'role', 'tenant', 'tags'
).annotate(
device_count=count_related(Device, 'rack'),
powerfeed_count=count_related(PowerFeed, 'rack')

View File

@@ -315,6 +315,7 @@ class Location(NestedGroupModel):
)
csv_headers = ['site', 'parent', 'name', 'slug', 'description']
clone_fields = ['site', 'parent', 'description']
class Meta:
ordering = ['site', 'name']

View File

@@ -272,6 +272,13 @@ class SiteView(generic.ObjectView):
'location',
'rack_count',
cumulative=True
)
locations = Location.objects.add_related_count(
locations,
Device,
'location',
'device_count',
cumulative=True
).restrict(request.user, 'view').filter(site=instance)
return {