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']