88 lines
2.4 KiB
Python
88 lines
2.4 KiB
Python
# import django.contrib.auth.admin
|
|
# import django.contrib.auth.models
|
|
import taggit.admin
|
|
|
|
from django.contrib import admin, auth
|
|
|
|
from .models import Post, Event, News, FetMeeting
|
|
from .forms import MyPostForm, MyEventForm, MyNewsForm, MyFetMeetingForm
|
|
|
|
admin.site.unregister(auth.models.User)
|
|
admin.site.unregister(auth.models.Group)
|
|
admin.site.unregister(taggit.models.Tag)
|
|
|
|
|
|
def make_fetmeeting(modeladmin, request, queryset):
|
|
queryset.update(post_type='F')
|
|
|
|
|
|
make_fetmeeting.short_description = "In eine Fachschaftssitzung konvertieren"
|
|
|
|
|
|
class MyPostAdmin(admin.ModelAdmin):
|
|
form = MyPostForm
|
|
model = Post
|
|
list_filter = ['is_pinned', 'is_hidden']
|
|
list_display = ['title', 'slug', 'public_date', 'is_pinned', 'is_hidden']
|
|
ordering = ['is_hidden', '-public_date']
|
|
|
|
def add_view(self, request, form_url='', extra_context=None):
|
|
extra_context = extra_context or {}
|
|
extra_context['help_text'] = "Fette Schriften sind Pflichtfelder."
|
|
return super().add_view(
|
|
request, form_url, extra_context=extra_context,
|
|
)
|
|
|
|
def change_view(self, request, object_id, form_url='', extra_context=None):
|
|
extra_context = extra_context or {}
|
|
extra_context['help_text'] = "Fette Schriften sind Pflichtfelder."
|
|
return super().change_view(
|
|
request, object_id, form_url, extra_context=extra_context,
|
|
)
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
if obj.author is None:
|
|
obj.author = request.user
|
|
super().save_model(request, obj, form, change)
|
|
|
|
class Media:
|
|
css = {
|
|
"all": [
|
|
"jquery-ui/jquery-ui.min.css",
|
|
"jquery-ui/ui-lightness/theme.css",
|
|
]
|
|
}
|
|
js = [
|
|
"jquery-ui/jquery-ui.min.js",
|
|
]
|
|
|
|
|
|
class MyEventAdmin(MyPostAdmin):
|
|
form = MyEventForm
|
|
model = Event
|
|
list_filter = ['is_pinned']
|
|
list_display = ['title', 'slug', 'event_start', 'public_date', 'is_pinned']
|
|
ordering = ['-event_start']
|
|
actions = [make_fetmeeting]
|
|
|
|
|
|
admin.site.register(Event, MyEventAdmin)
|
|
|
|
|
|
class MyNewsAdmin(MyPostAdmin):
|
|
form = MyNewsForm
|
|
model = News
|
|
|
|
|
|
admin.site.register(News, MyNewsAdmin)
|
|
|
|
|
|
class MyFetMeetingAdmin(MyEventAdmin):
|
|
form = MyFetMeetingForm
|
|
model = FetMeeting
|
|
list_filter = []
|
|
list_display = ['title', 'slug', 'event_start', 'public_date']
|
|
|
|
|
|
admin.site.register(FetMeeting, MyFetMeetingAdmin)
|