add HardwareModel to the device app
devices like computers etc. usually have a hardware model/type. E.g. Dell Precision 5530. In order to use the same name consistently we have the option to select the model name from a drop down.
This commit is contained in:
parent
e450ee755f
commit
441fda2e1f
|
@ -7,6 +7,7 @@ class ComputersTable(tables.Table):
|
|||
serialnumber = tables.Column()
|
||||
owner = tables.Column()
|
||||
manufacturer = tables.Column()
|
||||
model = tables.Column()
|
||||
location = tables.Column()
|
||||
user = tables.Column('User', linkify=True)
|
||||
installation_date = tables.Column()
|
||||
|
|
|
@ -7,6 +7,7 @@ from .models import (
|
|||
DeviceCategory,
|
||||
DeviceInNet,
|
||||
DeviceManufacturer,
|
||||
HardwareModel,
|
||||
Warranty,
|
||||
WarrantyType
|
||||
)
|
||||
|
@ -28,6 +29,14 @@ class DeviceManufacturerAdmin(admin.ModelAdmin):
|
|||
return {}
|
||||
|
||||
|
||||
class HardwareModelAdmin(admin.ModelAdmin):
|
||||
def get_model_perms(self, request):
|
||||
"""
|
||||
Return empty perms dict thus hiding the model from admin index.
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
class DeviceInNetInline(nested_admin.NestedStackedInline):
|
||||
model = DeviceInNet
|
||||
extra = 0
|
||||
|
@ -47,5 +56,6 @@ admin.site.register(Device)
|
|||
admin.site.register(DeviceCategory, DeviceCategoryAdmin)
|
||||
admin.site.register(DeviceInNet)
|
||||
admin.site.register(DeviceManufacturer, DeviceManufacturerAdmin)
|
||||
admin.site.register(HardwareModel, HardwareModelAdmin)
|
||||
admin.site.register(Warranty)
|
||||
admin.site.register(WarrantyType, WarrantyTypeAdmin)
|
||||
|
|
|
@ -5,4 +5,5 @@ from .device import (
|
|||
DeviceCategory,
|
||||
DeviceInNet,
|
||||
DeviceManufacturer,
|
||||
HardwareModel,
|
||||
)
|
||||
|
|
|
@ -17,16 +17,28 @@ class DeviceCategory(Category):
|
|||
verbose_name_plural = "Device Categories"
|
||||
|
||||
|
||||
class HardwareModel(models.Model):
|
||||
name = models.CharField(max_length=50)
|
||||
manufacturer = models.ForeignKey(DeviceManufacturer,
|
||||
on_delete=models.CASCADE)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Device(models.Model):
|
||||
name = models.CharField(max_length=50)
|
||||
description = models.TextField(blank=True)
|
||||
serialnumber = models.CharField(max_length=50, blank=True)
|
||||
category = models.ForeignKey(DeviceCategory, on_delete=models.SET_NULL,
|
||||
null=True, blank=True)
|
||||
owner = models.ForeignKey(Owner, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
owner = models.ForeignKey(Owner, on_delete=models.SET_NULL, null=True,
|
||||
blank=True)
|
||||
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
|
||||
manufacturer = models.ForeignKey(DeviceManufacturer, models.SET_NULL,
|
||||
null=True, blank=True)
|
||||
model = models.ForeignKey(HardwareModel, models.SET_NULL, null=True,
|
||||
blank=True)
|
||||
location = models.ForeignKey(Location, models.SET_NULL, null=True,
|
||||
blank=True)
|
||||
user = models.ForeignKey(User, models.SET_NULL, null=True, blank=True)
|
||||
|
|
|
@ -28,6 +28,11 @@
|
|||
<th><b>Manufacturer:</b></th>
|
||||
<td>{{ device.manufacturer }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><b>Model:</b></th>
|
||||
<td>{{ device.model }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th><b>Location:</b></th>
|
||||
<td>{{ device.location }}</td>
|
||||
|
|
|
@ -16,6 +16,7 @@ def test_device_detail_view_not_logged_in():
|
|||
def test_device_detail_view(create_admin_user):
|
||||
fixture = create_admin_user()
|
||||
mixer.blend('devices.DeviceCategory')
|
||||
mixer.blend('devices.HardwareModel')
|
||||
mixer.blend('customers.Owner')
|
||||
mixer.blend('customers.Location')
|
||||
device = mixer.blend('devices.Device',
|
||||
|
@ -23,6 +24,7 @@ def test_device_detail_view(create_admin_user):
|
|||
owner=mixer.SELECT,
|
||||
category=mixer.SELECT,
|
||||
manufacturer=mixer.SELECT,
|
||||
hardware_model=mixer.SELECT,
|
||||
location=mixer.SELECT)
|
||||
client = Client()
|
||||
client.login(username="novartis-admin", password="password")
|
||||
|
@ -34,6 +36,7 @@ def test_device_detail_view(create_admin_user):
|
|||
and helper.in_content(response, device.owner)
|
||||
and helper.in_content(response, device.customer)
|
||||
and helper.in_content(response, device.manufacturer)
|
||||
and helper.in_content(response, device.hardware_model)
|
||||
and helper.in_content(response, device.location))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue