Parcourir la source

Enhance items fields choice in admin list view

- better fields ordering
- add a « current borrower » field
- merge « serial » and « MAC » fields
Jocelyn Delalande il y a 6 ans
Parent
commit
25fd278838
2 fichiers modifiés avec 15 ajouts et 2 suppressions
  1. 6 2
      hardware_provisioning/admin.py
  2. 9 0
      hardware_provisioning/models.py

+ 6 - 2
hardware_provisioning/admin.py

@@ -59,8 +59,12 @@ class AvailabilityFilter(admin.SimpleListFilter):
 @admin.register(Item)
 class ItemAdmin(admin.ModelAdmin):
     list_display = (
-        'designation', 'mac_address', 'serial', 'owner',
-        'buy_date', 'deployed', 'is_available', 'storage')
+        'designation',
+        'current_borrower',
+        'get_mac_and_serial',
+        'deployed', 'is_available', 'storage',
+        'buy_date', 'owner',
+    )
     list_filter = (
         AvailabilityFilter, 'type', 'storage',
         'buy_date', OwnerFilter)

+ 9 - 0
hardware_provisioning/models.py

@@ -102,6 +102,14 @@ class Item(models.Model):
     is_available.boolean = True
     is_available.short_description = 'disponible'
 
+    def current_borrower(self):
+        current_loan = self.loans.running().first()
+        if current_loan:
+            return current_loan.user
+        else:
+            return None
+    current_borrower.short_description = 'Prêté à'
+
     def get_mac_and_serial(self):
         mac = self.mac_address
         serial = self.serial
@@ -109,6 +117,7 @@ class Item(models.Model):
             return "{} / {}".format(mac, serial)
         else:
             return mac or serial or ''
+    get_mac_and_serial.short_description = 'Adresse MAC / n° de série'
 
     class Meta:
         verbose_name = 'objet'