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é")