loko/streetup/authorizations/admin.py
2026-07-22 14:48:40 +02:00

46 lines
1.7 KiB
Python

from django.contrib import admin
from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _
from .models import RoadAuthorization, RoadAuthorizationDocument, RoadAuthorizationDate, VerifiedEmail, EmailVerificationToken
class RoadAuthorizationDocumentInline(admin.TabularInline):
model = RoadAuthorizationDocument
extra = 0
class RoadAuthorizationDateInline(admin.TabularInline):
model = RoadAuthorizationDate
extra = 0
@admin.register(RoadAuthorization)
class RoadAuthorizationAdmin(admin.ModelAdmin):
list_display = ('code', 'get_type_display', 'status', 'applicant_name', 'applicant_email', 'is_email_verified', 'creation_date')
list_filter = ('status', 'type', 'is_email_verified')
search_fields = ('code', 'description', 'applicant_name', 'applicant_email', 'location')
readonly_fields = ('creation_date', 'update_date', 'is_email_verified')
inlines = [RoadAuthorizationDateInline, RoadAuthorizationDocumentInline]
def get_type_display(self, obj):
return obj.get_type_display()
get_type_display.short_description = _("Type")
@admin.register(VerifiedEmail)
class VerifiedEmailAdmin(admin.ModelAdmin):
list_display = ('email', 'verified_at')
search_fields = ('email',)
readonly_fields = ('verified_at',)
@admin.register(EmailVerificationToken)
class EmailVerificationTokenAdmin(admin.ModelAdmin):
list_display = ('authorization', 'code', 'attempts', 'created_at', 'expires_at', 'is_expired_display')
readonly_fields = ('code', 'attempts', 'created_at', 'expires_at', 'authorization')
def is_expired_display(self, obj):
return obj.is_expired()
is_expired_display.boolean = True
is_expired_display.short_description = _("Expiré")