mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-02-21 18:12:00 +00:00
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from django.contrib import admin
|
|
from django.urls import reverse
|
|
from djangopasswordlessknox.models import CallbackToken
|
|
|
|
|
|
class UserLinkMixin(object):
|
|
"""
|
|
A mixin to add a linkable list_display user field.
|
|
"""
|
|
LINK_TO_USER_FIELD = 'link_to_user'
|
|
|
|
def link_to_user(self, obj):
|
|
link = reverse('admin:users_user_change', args=[obj.user.id])
|
|
return u'<a href={}>{}</a>'.format(link, obj.user.username)
|
|
link_to_user.allow_tags = True
|
|
link_to_user.short_description = 'User'
|
|
|
|
|
|
class AbstractCallbackTokenInline(admin.StackedInline):
|
|
max_num = 0
|
|
extra = 0
|
|
readonly_fields = ('created_at', 'key', 'is_active')
|
|
fields = ('created_at', 'user', 'key', 'is_active')
|
|
|
|
|
|
class CallbackInline(AbstractCallbackTokenInline):
|
|
model = CallbackToken
|
|
|
|
|
|
class AbstractCallbackTokenAdmin(UserLinkMixin, admin.ModelAdmin):
|
|
readonly_fields = ('created_at', 'user', 'key')
|
|
list_display = ('created_at', UserLinkMixin.LINK_TO_USER_FIELD, 'key', 'is_active')
|
|
fields = ('created_at', 'user', 'key', 'is_active')
|
|
extra = 0
|