47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from .models import Article, ArticleComment, ArticleLike, ArticleFavorite
|
|
|
|
|
|
class ArticleCommentInline(admin.TabularInline):
|
|
model = ArticleComment
|
|
extra = 0
|
|
fields = ['user', 'content', 'parent', 'likes', 'created_at']
|
|
readonly_fields = ['created_at']
|
|
|
|
|
|
@admin.register(Article)
|
|
class ArticleAdmin(admin.ModelAdmin):
|
|
list_display = ['title', 'author', 'category', 'status', 'views', 'likes', 'is_top', 'is_featured', 'created_at']
|
|
list_filter = ['status', 'category', 'is_top', 'is_featured', 'editor_mode']
|
|
search_fields = ['title', 'author__username']
|
|
ordering = ['-is_top', '-created_at']
|
|
inlines = [ArticleCommentInline]
|
|
list_editable = ['status', 'is_top', 'is_featured']
|
|
list_per_page = 20
|
|
|
|
|
|
@admin.register(ArticleComment)
|
|
class ArticleCommentAdmin(admin.ModelAdmin):
|
|
list_display = ['article', 'user', 'content', 'parent', 'likes', 'created_at']
|
|
list_filter = ['created_at']
|
|
search_fields = ['content', 'user__username', 'article__title']
|
|
ordering = ['-created_at']
|
|
readonly_fields = ['created_at']
|
|
|
|
|
|
@admin.register(ArticleLike)
|
|
class ArticleLikeAdmin(admin.ModelAdmin):
|
|
list_display = ['user', 'article', 'created_at']
|
|
search_fields = ['user__username', 'article__title']
|
|
ordering = ['-created_at']
|
|
readonly_fields = ['created_at']
|
|
|
|
|
|
@admin.register(ArticleFavorite)
|
|
class ArticleFavoriteAdmin(admin.ModelAdmin):
|
|
list_display = ['user', 'article', 'created_at']
|
|
search_fields = ['user__username', 'article__title']
|
|
ordering = ['-created_at']
|
|
readonly_fields = ['created_at']
|