from django.conf import settings
from django.contrib import admin
import nested_admin
from .models import (
PlainStackedRoot, PlainStackedChild, PlainTabularRoot, PlainTabularChild,
NestedStackedRoot, NestedStackedChild, NestedTabularRoot, NestedTabularChild)
[docs]class InlineMixin(object):
extra = 0
if 'grappelli' in settings.INSTALLED_APPS:
sortable_field_name = "position"
else:
is_sortable = False
inline_classes = ("collapse", "open", )
readonly_fields = ("readonly", )
suit_classes = ''
[docs]class PlainTabularChildInline(InlineMixin, admin.TabularInline):
model = PlainTabularChild
[docs]@admin.register(PlainTabularRoot)
class PlainTabularRootAdmin(admin.ModelAdmin):
inlines = [PlainTabularChildInline]
[docs]class PlainStackedChildInline(InlineMixin, admin.StackedInline):
model = PlainStackedChild
[docs]@admin.register(PlainStackedRoot)
class PlainStackedRootAdmin(admin.ModelAdmin):
inlines = [PlainStackedChildInline]
[docs]class NestedStackedChildInline(InlineMixin, nested_admin.NestedStackedInline):
model = NestedStackedChild
[docs]@admin.register(NestedStackedRoot)
class NestedStackedRootAdmin(nested_admin.NestedModelAdmin):
inlines = [NestedStackedChildInline]
[docs]class NestedTabularChildInline(InlineMixin, nested_admin.NestedTabularInline):
model = NestedTabularChild
[docs]@admin.register(NestedTabularRoot)
class NestedTabularRootAdmin(nested_admin.NestedModelAdmin):
inlines = [NestedTabularChildInline]