reaminig 5-t-9

This commit is contained in:
alorig
2025-11-18 06:36:56 +05:00
parent 9facd12082
commit 68a98208b1
31 changed files with 5210 additions and 153 deletions

View File

@@ -72,6 +72,63 @@ class SiteBlueprintViewSet(SiteSectorModelViewSet):
)
return Response(result, status=status.HTTP_202_ACCEPTED if 'task_id' in result else status.HTTP_200_OK)
@action(detail=True, methods=['post'])
def generate_all_pages(self, request, pk=None):
"""
Generate content for all pages in blueprint.
Request body:
{
"page_ids": [1, 2, 3], # Optional: specific pages, or all if omitted
"force": false # Optional: force regenerate existing content
}
"""
blueprint = self.get_object()
page_ids = request.data.get('page_ids')
force = request.data.get('force', False)
service = PageGenerationService()
try:
result = service.bulk_generate_pages(
blueprint,
page_ids=page_ids,
force_regenerate=force
)
response_status = status.HTTP_202_ACCEPTED if result.get('success') else status.HTTP_400_BAD_REQUEST
return success_response(result, request=request, status_code=response_status)
except Exception as e:
return error_response(str(e), status.HTTP_400_BAD_REQUEST, request)
@action(detail=True, methods=['post'])
def create_tasks(self, request, pk=None):
"""
Create Writer tasks for pages without generating content.
Request body:
{
"page_ids": [1, 2, 3] # Optional: specific pages, or all if omitted
}
Useful for:
- Previewing what tasks will be created
- Manual task management
- Integration with existing Writer UI
"""
blueprint = self.get_object()
page_ids = request.data.get('page_ids')
service = PageGenerationService()
try:
tasks = service.create_tasks_for_pages(blueprint, page_ids=page_ids)
# Serialize tasks
from igny8_core.business.content.serializers import TasksSerializer
serializer = TasksSerializer(tasks, many=True)
return success_response({'tasks': serializer.data, 'count': len(tasks)}, request=request)
except Exception as e:
return error_response(str(e), status.HTTP_400_BAD_REQUEST, request)
class PageBlueprintViewSet(SiteSectorModelViewSet):
"""