|
@@ -26,9 +26,9 @@ class ResourceInUseFilter(admin.SimpleListFilter):
|
|
|
now = timezone.now()
|
|
|
active_filter = get_active_filter('allocation')
|
|
|
if self.value() == '0': # non disponible
|
|
|
- return queryset.filter(active_filter)
|
|
|
+ return queryset.filter(active_filter | models.Q(reserved=True))
|
|
|
if self.value() == '1': # disponible
|
|
|
- return queryset.exclude(active_filter)
|
|
|
+ return queryset.exclude(reserved=True).exclude(active_filter)
|
|
|
|
|
|
|
|
|
class AllocationStatusFilter(admin.SimpleListFilter):
|
|
@@ -118,7 +118,7 @@ class ServiceAdmin(admin.ModelAdmin):
|
|
|
|
|
|
|
|
|
class IPResourceAdmin(admin.ModelAdmin):
|
|
|
- list_display = ('__str__', 'in_use_display')
|
|
|
+ list_display = ('__str__', 'available_display')
|
|
|
list_filter = (
|
|
|
ResourceInUseFilter,
|
|
|
('prefixes', admin.RelatedOnlyFieldListFilter),
|
|
@@ -128,10 +128,10 @@ class IPResourceAdmin(admin.ModelAdmin):
|
|
|
search_fields = ('ip',)
|
|
|
inlines = (AllocationInline,)
|
|
|
|
|
|
- def in_use_display(self, obj):
|
|
|
- return not obj.in_use
|
|
|
- in_use_display.short_description = 'Disponible'
|
|
|
- in_use_display.boolean = True
|
|
|
+ def available_display(self, obj):
|
|
|
+ return not obj.reserved and not obj.in_use
|
|
|
+ available_display.short_description = 'Disponible'
|
|
|
+ available_display.boolean = True
|
|
|
|
|
|
def get_actions(self, request):
|
|
|
actions = super().get_actions(request)
|