Adds field search to admin models

- Search hosts by hostname, MAC adress or IP adress.
 - Search domains by domain name.
 - Lists MAC adress and IP address in list of hosts.
This commit is contained in:
nikolark committed 2012-01-13 01:23:43 +01:00
1 parent 5c847bcf3e
commit d3d5bcb27c
2 files changed
+19 -1

No files matched your search

+3 -1
View File
@@ -12,9 +12,10 @@ class InterfaceInline(admin.TabularInline):
class HostAdmin(admin.ModelAdmin):
inlines = [InterfaceInline]
list_display = ['hostname', 'brand', 'owner', 'host_type', 'location', 'serial_number', 'in_domain', 'created_date', 'ipv6_enabled']
list_display = ['hostname', 'brand', 'owner', 'host_type', 'location', 'mac_addresses', 'ip_addresses', 'in_domain', 'ipv6_enabled', 'created_date']
readonly_fields = ['kerberos_principal_name', 'kerberos_principal_created_date',
'kerberos_principal_created']
search_fields = ['hostname', 'location', 'interface__macaddr','interface__ip4address__address']
fieldsets = (
('Owner Information', {
'fields' : ( 'owner', 'location', 'description' )
@@ -63,6 +64,7 @@ class DomainCnameRecordInline(admin.TabularInline):
class DomainAdmin(admin.ModelAdmin):
inlines = [DomainSrvRecordInline, DomainTxtRecordInline, DomainCnameRecordInline]
list_display = ['domain_name', 'domain_soa', 'domain_admin', 'num_records', 'domain_ipaddr']
search_fields = ['domain_name']
class HostTypeAdmin(admin.ModelAdmin):
+16
View File
@@ -444,6 +444,22 @@ class Host(models.Model):
return True
return False
ipv6_enabled.boolean = True
def mac_addresses(self):
addresses = []
for interface in self.interface_set.all():
if interface.macaddr == None: continue
addresses.append( interface.macaddr)
return ",".join(addresses)
def ip_addresses(self):
addresses = []
for interface in self.interface_set.all():
if interface.ip4address == None: continue
addresses.append( interface.ip4address.address )
return ",".join(addresses)
def get_ip_addresses(self):
addresses = []
for interface in self.interface_set.all():