|
@@ -14,9 +14,10 @@ from django.db.models.functions import Cast
|
|
from django.contrib.postgres.aggregates import StringAgg
|
|
from django.contrib.postgres.aggregates import StringAgg
|
|
from django.db import connection
|
|
from django.db import connection
|
|
from django.core.cache import cache
|
|
from django.core.cache import cache
|
|
-from urllib.parse import urlencode
|
|
|
|
|
|
+from django.contrib.humanize.templatetags.humanize import naturaltime
|
|
|
|
|
|
from djgeojson.views import GeoJSONLayerView
|
|
from djgeojson.views import GeoJSONLayerView
|
|
|
|
+from urllib.parse import urlencode
|
|
|
|
|
|
from functools import partial, update_wrapper
|
|
from functools import partial, update_wrapper
|
|
|
|
|
|
@@ -249,7 +250,7 @@ class IPPrefixAdmin(admin.ModelAdmin):
|
|
|
|
|
|
|
|
|
|
class IPResourceAdmin(admin.ModelAdmin):
|
|
class IPResourceAdmin(admin.ModelAdmin):
|
|
- list_display = ('__str__', 'available_display', 'last_use', 'last_time_up',)
|
|
|
|
|
|
+ list_display = ('__str__', 'available_display', 'last_use', 'last_time_up_display',)
|
|
list_filter = (
|
|
list_filter = (
|
|
'category',
|
|
'category',
|
|
ResourceInUseFilter,
|
|
ResourceInUseFilter,
|
|
@@ -257,8 +258,8 @@ class IPResourceAdmin(admin.ModelAdmin):
|
|
('prefixes', admin.RelatedOnlyFieldListFilter),
|
|
('prefixes', admin.RelatedOnlyFieldListFilter),
|
|
RouteFilter,
|
|
RouteFilter,
|
|
)
|
|
)
|
|
- fields = ('ip', 'reserved', 'last_time_up', 'last_check', 'notes')
|
|
|
|
- readonly_fields = ('ip', 'reserved', 'last_time_up', 'last_check',)
|
|
|
|
|
|
+ fields = ('ip', 'reserved', 'last_use', 'last_time_up', 'last_check', 'notes')
|
|
|
|
+ readonly_fields = ('ip', 'reserved', 'last_use', 'last_time_up', 'last_check',)
|
|
search_fields = ('=ip', 'notes',)
|
|
search_fields = ('=ip', 'notes',)
|
|
|
|
|
|
def get_inline_instances(self, request, obj=None):
|
|
def get_inline_instances(self, request, obj=None):
|
|
@@ -285,14 +286,14 @@ class IPResourceAdmin(admin.ModelAdmin):
|
|
available_display.boolean = True
|
|
available_display.boolean = True
|
|
|
|
|
|
def last_use(self, obj):
|
|
def last_use(self, obj):
|
|
- return obj.last_use
|
|
|
|
|
|
+ return naturaltime(obj.last_use)
|
|
last_use.short_description = 'Dernière utilisation'
|
|
last_use.short_description = 'Dernière utilisation'
|
|
last_use.admin_order_field = 'last_use'
|
|
last_use.admin_order_field = 'last_use'
|
|
|
|
|
|
- def last_time_up(self, obj):
|
|
|
|
- return obj.last_time_up
|
|
|
|
- last_time_up.short_description = 'Dernier Ping'
|
|
|
|
- last_time_up.admin_order_field = 'last_time_up'
|
|
|
|
|
|
+ def last_time_up_display(self, obj):
|
|
|
|
+ return naturaltime(obj.last_time_up)
|
|
|
|
+ last_time_up_display.short_description = 'Dernier Ping'
|
|
|
|
+ last_time_up_display.admin_order_field = 'last_time_up'
|
|
|
|
|
|
def get_actions(self, request):
|
|
def get_actions(self, request):
|
|
actions = super().get_actions(request)
|
|
actions = super().get_actions(request)
|