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:
1 parent
5c847bcf3e
commit
d3d5bcb27c
2 files changed
+19
-1
No files matched your search
+3
-1
@@ -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):
|
||||
|
||||
@@ -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():
|
||||
|
||||
Reference in new issue
Block a user