def netbox_list(request): """Controller for showing all netboxes""" info = NetboxInfo() query = (Netbox.objects.select_related( "room", "category", "type", "organization").prefetch_related("profiles").annotate( profile=ArrayAgg("profiles__name"))) filter_form = NetboxFilterForm(request.GET) value_list = ( 'sysname', 'room', 'ip', 'category', 'organization', 'profile', 'type__name', ) return render_list( request, query, value_list, 'seeddb-netbox-edit', edit_url_attr='pk', filter_form=filter_form, template='seeddb/list_netbox.html', extra_context=info.template_context, )
def patch_list(request): """The view used when listing all patches""" query = Patch.objects.none() info = PatchInfo() value_list = ( 'cabling__room', 'interface__netbox__sysname', 'interface__ifname', 'interface__ifalias', 'cabling__jack', 'split', ) context = info.template_context context.update({ 'rooms': Room.objects.all(), 'netboxes': Netbox.objects.all() }) return render_list( request, query, value_list, 'seeddb-patch-edit', template='seeddb/list_patches.html', extra_context=context, )
def vlan_list(request): info = VlanInfo() query = (Vlan.objects.extra( select={ 'prefixes': ("array_to_string(" "ARRAY(SELECT netaddr FROM prefix " "WHERE vlanid=vlan.vlanid), ', ')") }).select_related("net_type", "organization", "usage").all()) filter_form = VlanFilterForm(request.GET) value_list = ( 'net_type', 'vlan', 'organization', 'usage', 'net_ident', 'description', 'prefixes', ) return render_list( request, query, value_list, 'seeddb-vlan-edit', filter_form=filter_form, extra_context=info.template_context, )
def patch_list(request): query = Patch.objects.all() info = PatchInfo() value_list = ( 'interface__netbox__sysname', 'interface__ifname', 'cabling__room', 'cabling__jack', 'split') return render_list(request, query, value_list, 'seeddb-patch-edit', extra_context=info.template_context)
def location_list(request): info = LocationInfo() value_list = ('id', 'description') query = Location.objects.all() return render_list(request, query, value_list, 'seeddb-location-edit', extra_context=info.template_context)
def netboxtype_list(request): info = NetboxTypeInfo() query = NetboxType.objects.all() filter_form = NetboxTypeFilterForm(request.GET) value_list = ( 'name', 'vendor', 'description', 'sysobjectid') return render_list(request, query, value_list, 'seeddb-type-edit', filter_form=filter_form, extra_context=info.template_context)
def netboxgroup_list(request): info = NetboxGroupInfo() query = NetboxGroup.objects.all() value_list = ('id', 'description') return render_list(request, query, value_list, 'seeddb-netboxgroup-edit', extra_context=info.template_context)
def organization_list(request): info = OrganizationInfo() query = Organization.objects.all() filter_form = OrganizationFilterForm(request.GET) value_list = ( 'id', 'parent', 'description', 'data') return render_list(request, query, value_list, 'seeddb-organization-edit', filter_form=filter_form, extra_context=info.template_context)
def prefix_list(request): """Controller for listing prefixes""" info = PrefixInfo() query = Prefix.objects.filter(vlan__net_type__edit=True) value_list = ( 'net_address', 'vlan__net_type', 'vlan__organization', 'vlan__net_ident', 'vlan__usage', 'vlan__description', 'vlan__vlan') return render_list(request, query, value_list, 'seeddb-prefix-edit', extra_context=info.template_context)
def vendor_list(request): info = VendorInfo() query = Vendor.objects.all() value_list = ('id', ) return render_list(request, query, value_list, None, extra_context=info.template_context)
def service_list(request): info = ServiceInfo() query = Service.objects.all() value_list = ('netbox__sysname', 'handler', 'version') return render_list(request, query, value_list, 'seeddb-service-edit', extra_context=info.template_context)
def room_list(request): """Controller for listing rooms. Used in room()""" info = RoomInfo() value_list = ( 'id', 'location', 'description', 'position', 'data') query = Room.objects.all() filter_form = RoomFilterForm(request.GET) return render_list(request, query, value_list, 'seeddb-room-edit', filter_form=filter_form, extra_context=info.template_context)
def patch_list(request): query = Patch.objects.all() info = PatchInfo() value_list = ('interface__netbox__sysname', 'interface__ifname', 'cabling__room', 'cabling__jack', 'split') return render_list(request, query, value_list, 'seeddb-patch-edit', extra_context=info.template_context)
def vendor_list(request): """The view used when listing all vendors""" info = VendorInfo() query = Vendor.objects.all() value_list = ('id', ) return render_list(request, query, value_list, None, extra_context=info.template_context)
def usage_list(request): """The view used when listing all usages""" info = UsageInfo() query = Usage.objects.all() value_list = ('id', 'description') return render_list(request, query, value_list, 'seeddb-usage-edit', extra_context=info.template_context)
def organization_list(request): info = OrganizationInfo() query = Organization.objects.all() filter_form = OrganizationFilterForm(request.GET) value_list = ('id', 'parent', 'description', 'data') return render_list(request, query, value_list, 'seeddb-organization-edit', filter_form=filter_form, extra_context=info.template_context)
def netboxtype_list(request): info = NetboxTypeInfo() query = NetboxType.objects.all() filter_form = NetboxTypeFilterForm(request.GET) value_list = ('name', 'vendor', 'description', 'sysobjectid') return render_list(request, query, value_list, 'seeddb-type-edit', filter_form=filter_form, extra_context=info.template_context)
def management_profile_list(request): """Controller for listing management profiles. Used in management_profile()""" info = ManagementProfileInfo() value_list = ( 'name', 'description', 'get_protocol_display') query = ManagementProfile.objects.all() filter_form = ManagementProfileFilterForm(request.GET) return render_list(request, query, value_list, edit_url='seeddb-management-profile-edit', filter_form=filter_form, extra_context=info.template_context)
def cabling_list(request): info = CablingInfo() query = Cabling.objects.all() filter_form = CablingFilterForm(request.GET) value_list = ('room', 'jack', 'building', 'target_room', 'category', 'description') return render_list(request, query, value_list, 'seeddb-cabling-edit', filter_form=filter_form, extra_context=info.template_context)
def cabling_list(request): info = CablingInfo() query = Cabling.objects.none() # Everything is fetched by API value_list = ('room', 'jack', 'building', 'target_room', 'category', 'description') context = info.template_context context.update({'rooms': Room.objects.all().order_by('id')}) return render_list(request, query, value_list, 'seeddb-cabling-edit', template='seeddb/list_cables.html', extra_context=context)
def management_profile_list(request): """Controller for listing management profiles. Used in management_profile()""" info = ManagementProfileInfo() value_list = ( 'name', 'description', 'get_protocol_display', 'related') netbox_link = reverse('seeddb-netbox') queryset = ManagementProfile.objects.annotate(related=Count('netbox')) filter_form = ManagementProfileFilterForm(request.GET) return render_list(request, queryset, value_list, edit_url='seeddb-management-profile-edit', filter_form=filter_form, extra_context=info.template_context, add_related=add_netbox_links)
def vlan_list(request): info = VlanInfo() query = Vlan.objects.extra( select={ 'prefixes': "array_to_string(ARRAY(SELECT netaddr FROM prefix WHERE vlanid=vlan.vlanid), ', ')" } ).all() filter_form = VlanFilterForm(request.GET) value_list = ( 'net_type', 'vlan', 'organization', 'usage', 'net_ident', 'description', 'prefixes') return render_list(request, query, value_list, 'seeddb-vlan-edit', filter_form=filter_form, extra_context=info.template_context)
def netbox_list(request): """Controller for showing all netboxes""" info = NetboxInfo() query = Netbox.objects.all() filter_form = NetboxFilterForm(request.GET) value_list = ('sysname', 'room', 'ip', 'category', 'organization', 'read_only', 'read_write', 'snmp_version', 'type__name') return render_list(request, query, value_list, 'seeddb-netbox-edit', edit_url_attr='pk', filter_form=filter_form, template='seeddb/list_netbox.html', extra_context=info.template_context, censor_list=create_index_list( value_list, ['read_only', 'read_write']))
def usage_list(request): info = UsageInfo() query = Usage.objects.all() value_list = ('id', 'description') return render_list(request, query, value_list, 'seeddb-usage-edit', extra_context=info.template_context)
def vendor_list(request): info = VendorInfo() query = Vendor.objects.all() value_list = ('id',) return render_list(request, query, value_list, None, extra_context=info.template_context)