130 lines
3.8 KiB
Python
130 lines
3.8 KiB
Python
from django.contrib import admin
|
|
#from nested_inline.admin import NestedStackedInline, NestedModelAdmin
|
|
from nested_admin import NestedStackedInline, NestedModelAdmin, NestedTabularInline
|
|
from django import forms
|
|
from mptt.forms import TreeNodeMultipleChoiceField
|
|
from mptt.admin import DraggableMPTTAdmin
|
|
from adminsortable2.admin import SortableInlineAdminMixin, SortableAdminBase
|
|
|
|
# Register your models here.
|
|
from .models import *
|
|
from stichworte.models import Stichwort, Stichworterklaerung
|
|
from referenzen.models import Referenz
|
|
|
|
|
|
|
|
#class ChecklistenForm(forms.ModelForm):
|
|
# class Meta:
|
|
# model=Checklistenfrage
|
|
# fields="__all__"
|
|
# widgets = {
|
|
# 'frage': forms.Textarea(attrs={'rows': 1, 'cols': 100}),
|
|
# }
|
|
|
|
class ChecklistenfragenInline(NestedTabularInline):
|
|
model=Checklistenfrage
|
|
extra=0
|
|
fk_name="vorgabe"
|
|
# form=ChecklistenForm
|
|
classes = ['collapse']
|
|
|
|
|
|
class VorgabeKurztextInline(NestedTabularInline):
|
|
model=VorgabeKurztext
|
|
extra=0
|
|
sortable_field_name = "order"
|
|
show_change_link=True
|
|
classes = ['collapse']
|
|
#inline=inhalt
|
|
|
|
class VorgabeLangtextInline(NestedTabularInline):
|
|
model=VorgabeLangtext
|
|
extra=0
|
|
sortable_field_name = "order"
|
|
show_change_link=True
|
|
classes = ['collapse']
|
|
#inline=inhalt
|
|
|
|
class GeltungsbereichInline(NestedTabularInline):
|
|
model=Geltungsbereich
|
|
extra=0
|
|
sortable_field_name = "order"
|
|
show_change_link=True
|
|
classes = ['collapse']
|
|
classes = ['collapse']
|
|
#inline=inhalt
|
|
|
|
class EinleitungInline(NestedTabularInline):
|
|
model = Einleitung
|
|
extra = 0
|
|
sortable_field_name = "order"
|
|
show_change_link = True
|
|
classes = ['collapse']
|
|
|
|
class VorgabeForm(forms.ModelForm):
|
|
referenzen = TreeNodeMultipleChoiceField(queryset=Referenz.objects.all(), required=False)
|
|
class Meta:
|
|
model = Vorgabe
|
|
fields = '__all__'
|
|
|
|
class VorgabeInline(SortableInlineAdminMixin, NestedTabularInline): # or StackedInline for more vertical layout
|
|
model = Vorgabe
|
|
form = VorgabeForm
|
|
extra = 0
|
|
sortable_field_name = "order" # Add this - make sure your Vorgabe model has an 'order' field
|
|
#show_change_link = True
|
|
inlines = [VorgabeKurztextInline,VorgabeLangtextInline,ChecklistenfragenInline]
|
|
autocomplete_fields = ['stichworte','referenzen','relevanz']
|
|
#search_fields=['nummer','name']ModelAdmin.
|
|
list_filter=['stichworte']
|
|
#classes=["collapse"]
|
|
|
|
class StichworterklaerungInline(NestedTabularInline):
|
|
model=Stichworterklaerung
|
|
extra=0
|
|
sortable_field_name = "order"
|
|
ordering=("order",)
|
|
show_change_link = True
|
|
|
|
@admin.register(Stichwort)
|
|
class StichwortAdmin(NestedModelAdmin):
|
|
search_fields = ('stichwort',)
|
|
ordering=('stichwort',)
|
|
inlines=[StichworterklaerungInline]
|
|
|
|
@admin.register(Person)
|
|
class PersonAdmin(admin.ModelAdmin):
|
|
class Media:
|
|
js = ['admin/js/jquery.init.js', 'custom/js/inline_toggle.js']
|
|
css = {'all': ['custom/css/admin_extras.css']}
|
|
list_display=['name']
|
|
|
|
|
|
|
|
@admin.register(Dokument)
|
|
class DokumentAdmin(SortableAdminBase, NestedModelAdmin):
|
|
actions_on_top=True
|
|
inlines = [EinleitungInline,GeltungsbereichInline,VorgabeInline]
|
|
#filter_horizontal=['autoren','pruefende']
|
|
list_display=['nummer','name','dokumententyp']
|
|
search_fields=['nummer','name']
|
|
class Media:
|
|
# js = ('admin/js/vorgabe_collapse.js',)
|
|
css = {
|
|
'all': ('admin/css/vorgabe_border.css',
|
|
# 'admin/css/vorgabe_collapse.css',
|
|
)
|
|
}
|
|
|
|
|
|
#admin.site.register(Stichwort)
|
|
|
|
admin.site.register(Checklistenfrage)
|
|
admin.site.register(Dokumententyp)
|
|
#admin.site.register(Person)
|
|
admin.site.register(Thema)
|
|
#admin.site.register(Referenz, DraggableM§PTTAdmin)
|
|
admin.site.register(Vorgabe)
|
|
|
|
#admin.site.register(Changelog)
|