101 lines
2.2 KiB
Python
101 lines
2.2 KiB
Python
from django.contrib import admin
|
|
|
|
from .models import Guest, GuestVisit, GuestVisitEvent
|
|
|
|
|
|
@admin.register(Guest)
|
|
class GuestAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"full_name",
|
|
"organization",
|
|
"email",
|
|
"phone",
|
|
"is_active",
|
|
"is_blacklisted",
|
|
)
|
|
list_filter = ("is_active", "is_blacklisted", "organization")
|
|
search_fields = (
|
|
"id",
|
|
"last_name",
|
|
"first_name",
|
|
"patronymic",
|
|
"email",
|
|
"phone",
|
|
"organization",
|
|
)
|
|
readonly_fields = (
|
|
"id",
|
|
"ldap_last_synced_at",
|
|
"ldap_last_error",
|
|
"created_at",
|
|
"updated_at",
|
|
)
|
|
|
|
|
|
class GuestVisitEventInline(admin.TabularInline):
|
|
model = GuestVisitEvent
|
|
extra = 0
|
|
readonly_fields = (
|
|
"actor",
|
|
"event_type",
|
|
"from_status",
|
|
"to_status",
|
|
"comment",
|
|
"metadata",
|
|
"created_at",
|
|
)
|
|
can_delete = False
|
|
|
|
|
|
@admin.register(GuestVisit)
|
|
class GuestVisitAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"guest",
|
|
"inviter",
|
|
"status",
|
|
"access_starts_at",
|
|
"access_expires_at",
|
|
"unlimited",
|
|
"inviter_inactive",
|
|
)
|
|
list_filter = ("status", "unlimited", "all_day", "inviter_inactive")
|
|
search_fields = (
|
|
"guest__id",
|
|
"guest__last_name",
|
|
"guest__first_name",
|
|
"guest__organization",
|
|
"inviter__email",
|
|
"purpose",
|
|
)
|
|
readonly_fields = (
|
|
"created_at",
|
|
"updated_at",
|
|
"submitted_at",
|
|
"decided_at",
|
|
"cancelled_at",
|
|
"revoked_at",
|
|
"expired_at",
|
|
"inviter_snapshot_name",
|
|
"inviter_snapshot_email",
|
|
)
|
|
inlines = [GuestVisitEventInline]
|
|
|
|
|
|
@admin.register(GuestVisitEvent)
|
|
class GuestVisitEventAdmin(admin.ModelAdmin):
|
|
list_display = ("id", "visit", "event_type", "actor", "created_at")
|
|
list_filter = ("event_type", "created_at")
|
|
search_fields = ("visit__guest__last_name", "visit__guest__id", "comment")
|
|
readonly_fields = (
|
|
"visit",
|
|
"actor",
|
|
"event_type",
|
|
"from_status",
|
|
"to_status",
|
|
"comment",
|
|
"metadata",
|
|
"created_at",
|
|
)
|