Source code for django_otp.plugins.otp_email.admin

from django.contrib import admin
from django.contrib.admin.sites import AlreadyRegistered
from django.contrib.auth import get_user_model

from django_otp.admin import user_model_search_fields

from .models import EmailDevice


def _search_fields():
    User = get_user_model()
    candidate_search_field = [User.USERNAME_FIELD, 'email']

    search_fields, search_help_text = user_model_search_fields(candidate_search_field)
    search_fields += ['email']

    return search_fields, search_help_text


[docs] class EmailDeviceAdmin(admin.ModelAdmin): """ :class:`~django.contrib.admin.ModelAdmin` for :class:`~django_otp.plugins.otp_email.models.EmailDevice`. """ list_display = ['user', 'name', 'created_at', 'last_used_at', 'confirmed'] list_filter = ['created_at', 'last_used_at', 'confirmed'] raw_id_fields = ['user'] readonly_fields = ['created_at', 'last_used_at'] search_fields, search_help_text = _search_fields() fieldsets = [ ( 'Identity', { 'fields': ['user', 'name', 'confirmed'], }, ), ( 'Timestamps', { 'fields': ['created_at', 'last_used_at'], }, ), ( 'Configuration', { 'fields': ['email'], }, ), ]
# Somehow this is getting imported twice, triggering a useless exception. try: admin.site.register(EmailDevice, EmailDeviceAdmin) except AlreadyRegistered: pass