diff --git a/apps/article/admin.py b/apps/article/admin.py index 6c3c11d..fbe60a7 100755 --- a/apps/article/admin.py +++ b/apps/article/admin.py @@ -165,7 +165,7 @@ class MiddleArticleCollectionAdmin(ArticleCollectionAdminBase): class ArticleCategoryAdmin(ModelAdmin): - list_display = ('display_header', 'slug', 'status', 'order', 'count_articles', 'created_at') + list_display = ('title', 'slug', 'status', 'order', 'count_articles', 'created_at') list_filter = ('status', 'created_at', 'updated_at') search_fields = ('title', 'slug') @@ -186,7 +186,7 @@ class ArticleCategoryAdmin(ModelAdmin): @display(description=_("Category"), header=True) def display_header(self, obj): - return obj.title + return list(obj.title) class ArticleAdmin(ModelAdmin): diff --git a/apps/video/admin.py b/apps/video/admin.py index b22bff5..518505a 100755 --- a/apps/video/admin.py +++ b/apps/video/admin.py @@ -125,10 +125,15 @@ class VideoCategoryAdmin(ModelAdmin): @admin.display(description=_('Number of Videos')) def count_videos(self, obj): - count = obj.videos.count() + # Count videos through playlists: Category -> Playlist -> PlaylistItem -> Video + count = Video.objects.filter( + playlist_appearances__playlist__categories=obj + ).distinct().count() + if count > 0: - url = reverse('admin:video_video_changelist') + f'?category__id__exact={obj.id}' - return format_html('{}', url, count) + # Note: Direct filtering by category in admin might not work due to the relationship + # We'll just display the count without a clickable link for now + return count return count def get_form(self, request, obj=None, change=False, **kwargs):