48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
|
from django.contrib import admin
|
||
|
|
from django.contrib.admin import ModelAdmin, TabularInline
|
||
|
|
from .models import OnboardingFlow, OnboardingPage, OnboardingField, OnboardingSession
|
||
|
|
|
||
|
|
|
||
|
|
class OnboardingPageInline(TabularInline):
|
||
|
|
model = OnboardingPage
|
||
|
|
extra = 0
|
||
|
|
|
||
|
|
|
||
|
|
class OnboardingFieldInline(TabularInline):
|
||
|
|
model = OnboardingField
|
||
|
|
extra = 0
|
||
|
|
|
||
|
|
|
||
|
|
@admin.register(OnboardingFlow)
|
||
|
|
class OnboardingFlowAdmin(ModelAdmin):
|
||
|
|
list_display = ('id', 'uuid', 'title', 'role', 'status')
|
||
|
|
search_fields = ('title', 'role__name')
|
||
|
|
list_filter = ('status',)
|
||
|
|
inlines = (OnboardingPageInline,)
|
||
|
|
readonly_fields = ('uuid',)
|
||
|
|
|
||
|
|
|
||
|
|
@admin.register(OnboardingPage)
|
||
|
|
class OnboardingPageAdmin(ModelAdmin):
|
||
|
|
list_display = ('id', 'uuid', 'title', 'flow', 'order')
|
||
|
|
search_fields = ('title', 'flow__title')
|
||
|
|
list_filter = ('flow',)
|
||
|
|
inlines = (OnboardingFieldInline,)
|
||
|
|
readonly_fields = ('uuid',)
|
||
|
|
|
||
|
|
|
||
|
|
@admin.register(OnboardingField)
|
||
|
|
class OnboardingFieldAdmin(ModelAdmin):
|
||
|
|
list_display = ('id', 'uuid', 'label', 'page', 'field_type', 'required')
|
||
|
|
search_fields = ('label', 'page__title')
|
||
|
|
list_filter = ('field_type',)
|
||
|
|
readonly_fields = ('uuid',)
|
||
|
|
|
||
|
|
|
||
|
|
@admin.register(OnboardingSession)
|
||
|
|
class OnboardingSessionAdmin(ModelAdmin):
|
||
|
|
list_display = ('id', 'uuid', 'flow', 'user', 'status', 'current_page_order')
|
||
|
|
search_fields = ('flow__title', 'user__email_address')
|
||
|
|
list_filter = ('status',)
|
||
|
|
readonly_fields = ('uuid',)
|