Source code for nested_admin.tests.admin_widgets.admin
from django.conf import settings
from django.contrib import admin
from nested_admin import NestedStackedInline, NestedTabularInline, NestedModelAdmin
from .models import (
TestAdminWidgetsRoot, TestAdminWidgetsM2M, TestAdminWidgetsRelated1,
TestAdminWidgetsRelated2, TestAdminWidgetsA, TestAdminWidgetsB,
TestAdminWidgetsC0, TestAdminWidgetsC1, TestAdminWidgetsM2MTwo,
TestWidgetMediaOrderRoot, TestWidgetMediaOrderA, TestWidgetMediaOrderB,
TestWidgetMediaOrderC0, TestWidgetMediaOrderC1)
[docs]class TestAdminWidgetsC0Inline(NestedStackedInline):
model = TestAdminWidgetsC0
prepopulated_fields = {'slug': ('name', )}
filter_horizontal = ['m2m']
sortable_field_name = "position"
extra = 0
inline_classes = ("grp-collapse", "grp-open",)
raw_id_fields = ['fk2', 'fk4', 'm2m_two', 'm2m_three']
autocomplete_lookup_fields = {
'fk': ['fk2'],
'm2m': ['m2m_three'],
'generic': [['relation_type', 'relation_id']],
}
autocomplete_fields = ['fk3']
related_lookup_fields = {
'fk': ['fk4'],
'm2m': ['m2m_two'],
'generic': [['content_type', 'object_id']],
}
[docs]class TestAdminWidgetsC1Inline(NestedTabularInline):
model = TestAdminWidgetsC1
prepopulated_fields = {'slug': ('name', )}
filter_horizontal = ['m2m']
sortable_field_name = "position"
extra = 0
inline_classes = ("grp-collapse", "grp-open",)
raw_id_fields = ['fk2', 'fk4', 'm2m_two']
autocomplete_lookup_fields = {'fk': ['fk2']}
autocomplete_fields = ['fk3']
related_lookup_fields = {
'fk': ['fk4'],
'm2m': ['m2m_two'],
'generic': [['content_type', 'object_id']],
}
[docs]class TestAdminWidgetsBInline(NestedStackedInline):
model = TestAdminWidgetsB
inlines = [TestAdminWidgetsC0Inline, TestAdminWidgetsC1Inline]
prepopulated_fields = {'slug': ('name', )}
filter_horizontal = ['m2m']
sortable_field_name = "position"
extra = 1
inline_classes = ("grp-collapse", "grp-open",)
raw_id_fields = ['fk2', 'fk4', 'm2m_two', 'm2m_three']
autocomplete_lookup_fields = {
'fk': ['fk2'],
'm2m': ['m2m_three'],
'generic': [['relation_type', 'relation_id']],
}
autocomplete_fields = ['fk3']
related_lookup_fields = {
'fk': ['fk4'],
'm2m': ['m2m_two'],
'generic': [['content_type', 'object_id']],
}
[docs]class TestAdminWidgetsAInline(NestedStackedInline):
model = TestAdminWidgetsA
inlines = [TestAdminWidgetsBInline]
prepopulated_fields = {'slug': ('name', )}
filter_horizontal = ['m2m']
sortable_field_name = "position"
extra = 1
inline_classes = ("grp-collapse", "grp-open",)
raw_id_fields = ['fk2', 'fk4', 'm2m_two', 'm2m_three']
autocomplete_lookup_fields = {
'fk': ['fk2'],
'm2m': ['m2m_three'],
'generic': [['relation_type', 'relation_id']],
}
autocomplete_fields = ['fk3']
related_lookup_fields = {
'fk': ['fk4'],
'm2m': ['m2m_two'],
'generic': [['content_type', 'object_id']],
}
[docs]@admin.register(TestAdminWidgetsRoot)
class TestAdminWidgetsRootAdmin(NestedModelAdmin):
inlines = [TestAdminWidgetsAInline]
admin.site.register(TestAdminWidgetsRelated1, NestedModelAdmin)
admin.site.register(TestAdminWidgetsM2M, NestedModelAdmin)
admin.site.register(TestAdminWidgetsM2MTwo, NestedModelAdmin)
[docs]@admin.register(TestAdminWidgetsRelated2)
class TestAdminWidgetsRelated2Admin(NestedModelAdmin):
ordering = ['-date_created']
search_fields = ['name']
[docs]class TestWidgetMediaOrderC0Inline(NestedStackedInline):
model = TestWidgetMediaOrderC0
sortable_field_name = "position"
extra = 0
[docs]class TestWidgetMediaOrderC1Inline(NestedTabularInline):
model = TestWidgetMediaOrderC1
prepopulated_fields = {'slug': ('name', )}
filter_horizontal = ['m2m']
extra = 0
inline_classes = ("grp-collapse", "grp-open",)
raw_id_fields = ['fk2']
autocomplete_lookup_fields = {'fk': ['fk2']}
autocomplete_fields = ['fk3']
[docs]class TestWidgetMediaOrderBInline(NestedStackedInline):
model = TestWidgetMediaOrderB
inlines = [TestWidgetMediaOrderC0Inline, TestWidgetMediaOrderC1Inline]
sortable_field_name = "position"
extra = 1
inline_classes = ("grp-collapse", "grp-open",)
[docs]class TestWidgetMediaOrderAInline(NestedStackedInline):
model = TestWidgetMediaOrderA
inlines = [TestWidgetMediaOrderBInline]
sortable_field_name = "position"
extra = 1
inline_classes = ("grp-collapse", "grp-open",)
[docs]@admin.register(TestWidgetMediaOrderRoot)
class TestWidgetMediaOrderRootAdmin(NestedModelAdmin):
inlines = [TestWidgetMediaOrderAInline]