mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-24 08:25:17 -06:00
9654 add weight fields to devices
This commit is contained in:
parent
844a2085b4
commit
61903dbac4
@ -13,7 +13,7 @@ class Migration(migrations.Migration):
|
|||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='devicetype',
|
model_name='devicetype',
|
||||||
name='_abs_weight',
|
name='_abs_weight',
|
||||||
field=models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True),
|
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='devicetype',
|
model_name='devicetype',
|
||||||
@ -28,7 +28,7 @@ class Migration(migrations.Migration):
|
|||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='moduletype',
|
model_name='moduletype',
|
||||||
name='_abs_weight',
|
name='_abs_weight',
|
||||||
field=models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True),
|
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='moduletype',
|
model_name='moduletype',
|
||||||
@ -43,7 +43,7 @@ class Migration(migrations.Migration):
|
|||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='rack',
|
model_name='rack',
|
||||||
name='_abs_weight',
|
name='_abs_weight',
|
||||||
field=models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True),
|
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='rack',
|
model_name='rack',
|
||||||
|
@ -16,10 +16,10 @@ class DeviceWeightMixin(models.Model):
|
|||||||
choices=DeviceWeightUnitChoices,
|
choices=DeviceWeightUnitChoices,
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
# Stores the normalized length (in meters) for database ordering
|
# Stores the normalized weight (in kilograms) for database ordering
|
||||||
_abs_weight = models.DecimalField(
|
_abs_weight = models.DecimalField(
|
||||||
max_digits=10,
|
max_digits=10,
|
||||||
decimal_places=4,
|
decimal_places=2,
|
||||||
blank=True,
|
blank=True,
|
||||||
null=True
|
null=True
|
||||||
)
|
)
|
||||||
|
@ -453,8 +453,9 @@ class Rack(NetBoxModel, DeviceWeightMixin):
|
|||||||
def get_total_weight(self):
|
def get_total_weight(self):
|
||||||
total_weight = sum(device.device_type._abs_weight for device in self.devices.exclude(device_type___abs_weight__isnull=True).prefetch_related('device_type'))
|
total_weight = sum(device.device_type._abs_weight for device in self.devices.exclude(device_type___abs_weight__isnull=True).prefetch_related('device_type'))
|
||||||
total_weight += sum(module.module_type._abs_weight for module in Module.objects.filter(device__rack=self).exclude(module_type___abs_weight__isnull=True).prefetch_related('module_type'))
|
total_weight += sum(module.module_type._abs_weight for module in Module.objects.filter(device__rack=self).exclude(module_type___abs_weight__isnull=True).prefetch_related('module_type'))
|
||||||
total_weight += self._abs_weight
|
if self._abs_weight:
|
||||||
return total_weight
|
total_weight += self._abs_weight
|
||||||
|
return round(total_weight, 2)
|
||||||
|
|
||||||
|
|
||||||
class RackReservation(NetBoxModel):
|
class RackReservation(NetBoxModel):
|
||||||
|
@ -196,7 +196,13 @@
|
|||||||
<table class="table table-hover attr-table">
|
<table class="table table-hover attr-table">
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Rack Weight</th>
|
<th scope="row">Rack Weight</th>
|
||||||
<td>{{ object.weight }} kg</td>
|
<td>
|
||||||
|
{% if object.weight %}
|
||||||
|
{{ object.weight }}
|
||||||
|
{% else %}
|
||||||
|
{{ ''|placeholder }}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Total Weight</th>
|
<th scope="row">Total Weight</th>
|
||||||
|
Loading…
Reference in New Issue
Block a user