Enhance Content Management: Add sector name to ContentSerializer, improve Content view with pagination and search filters, and refactor Content page for better data handling and display.

This commit is contained in:
IGNY8 VPS (Salman)
2025-11-11 15:55:32 +00:00
parent 0924a8436c
commit 618ed0543d
9 changed files with 498 additions and 228 deletions

View File

@@ -144,6 +144,7 @@ class ImagesSerializer(serializers.ModelSerializer):
class ContentSerializer(serializers.ModelSerializer):
"""Serializer for Content model"""
task_title = serializers.SerializerMethodField()
sector_name = serializers.SerializerMethodField()
class Meta:
model = Content
@@ -151,6 +152,7 @@ class ContentSerializer(serializers.ModelSerializer):
'id',
'task_id',
'task_title',
'sector_name',
'html_content',
'word_count',
'metadata',
@@ -177,4 +179,15 @@ class ContentSerializer(serializers.ModelSerializer):
except Tasks.DoesNotExist:
return None
return None
def get_sector_name(self, obj):
"""Get sector name from Sector model"""
if obj.sector_id:
try:
from igny8_core.auth.models import Sector
sector = Sector.objects.get(id=obj.sector_id)
return sector.name
except Sector.DoesNotExist:
return None
return None

View File

@@ -440,11 +440,13 @@ class ContentViewSet(SiteSectorModelViewSet):
"""
queryset = Content.objects.all()
serializer_class = ContentSerializer
pagination_class = CustomPageNumberPagination
filter_backends = [DjangoFilterBackend, filters.OrderingFilter]
ordering_fields = ['generated_at', 'updated_at']
filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter]
search_fields = ['title', 'meta_title', 'primary_keyword']
ordering_fields = ['generated_at', 'updated_at', 'word_count', 'status']
ordering = ['-generated_at']
filterset_fields = ['task_id']
filterset_fields = ['task_id', 'status']
def perform_create(self, serializer):
"""Override to automatically set account"""