You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

28 lines
1.1 KiB

from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from unfold.admin import ModelAdmin
from unfold.decorators import display
from unfold.contrib.filters.admin import RangeDateTimeFilter, AutocompleteSelectFilter
from apps.account.models.user import LoginHistory
from utils.admin import project_admin_site
@admin.register(LoginHistory, site=project_admin_site)
class LoginHistoryAdmin(ModelAdmin):
list_display = ('user', 'ip', 'country', 'city', 'device_os', 'display_at_time')
list_display_links = ('user', 'ip', 'display_at_time')
list_filter = [
('user', AutocompleteSelectFilter),
'device_os',
'country',
'city',
('at_time', RangeDateTimeFilter),
]
search_fields = ('user__email', 'user__fullname', 'ip', 'country', 'city', 'user_agent')
readonly_fields = ('at_time',)
ordering = ('-at_time',)
@display(description=_("Date & Time"))
def display_at_time(self, instance: LoginHistory):
return instance.at_time.strftime("%Y-%m-%d %H:%M") if instance.at_time else "-"