diff options
Diffstat (limited to 'weblog/admin.py')
-rw-r--r-- | weblog/admin.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/weblog/admin.py b/weblog/admin.py new file mode 100644 index 0000000..1b4e128 --- /dev/null +++ b/weblog/admin.py @@ -0,0 +1,46 @@ +from django.contrib import admin +from django_summernote.admin import SummernoteModelAdmin, SummernoteInlineModelAdmin +from .apps import SETTINGS as blog_settings +from .models import BlogPost, Translation, PostComment, Category, CategoryTranslation + + +blogPostInlines = [] +categoryInlines = [] + +class TranslationInline(admin.StackedInline, SummernoteInlineModelAdmin): + model = Translation + extra = 1 + +class CategoryTranslationInline(admin.StackedInline): + model = CategoryTranslation + extra = 1 + +class PostCommentInline(admin.StackedInline): + model = PostComment + extra = 0 + +if blog_settings['multilingual']: + blogPostInlines.append(TranslationInline) + categoryInlines.append(CategoryTranslationInline) + +if blog_settings['enable_comments']: + blogPostInlines.append(PostCommentInline) + +class BlogPostAdmin(SummernoteModelAdmin): + list_display = ['title', 'author', 'publish_date'] + list_filter = ['publish_date', 'categories'] + inlines = blogPostInlines + summer_note_fields = '__all__' + + def get_form(self, request, obj=None, **kwargs): + if not blog_settings['multilingual']: + self.exclude = ('original_language', ) + form = super(BlogPostAdmin, self).get_form(request, obj, **kwargs) + return form + +class CategoryAdmin(admin.ModelAdmin): + list_display = ['name'] + inlines = categoryInlines + +admin.site.register(BlogPost, BlogPostAdmin) +admin.site.register(Category, CategoryAdmin) |