This commit is contained in:
IGNY8 VPS (Salman)
2025-12-03 16:15:06 +00:00
parent 39df00e5ae
commit c36b70f31f
2 changed files with 63 additions and 12 deletions

View File

@@ -226,12 +226,16 @@ class AutomationService:
stage_number, f"Validation: {keywords_processed} keywords processed, {clusters_created} clusters created" stage_number, f"Validation: {keywords_processed} keywords processed, {clusters_created} clusters created"
) )
# Save results # Save results with timestamps
from django.utils import timezone
self.run.stage_1_result = { self.run.stage_1_result = {
'keywords_processed': keywords_processed, 'keywords_processed': keywords_processed,
'clusters_created': clusters_created, 'clusters_created': clusters_created,
'batches_run': batches_run, 'batches_run': batches_run,
'credits_used': credits_used 'credits_used': credits_used,
'started_at': self.run.started_at.isoformat(),
'completed_at': timezone.now().isoformat(),
'time_elapsed': time_elapsed
} }
self.run.current_stage = 2 self.run.current_stage = 2
self.run.total_credits_used += credits_used self.run.total_credits_used += credits_used
@@ -353,11 +357,15 @@ class AutomationService:
stage_number, clusters_processed, time_elapsed, credits_used stage_number, clusters_processed, time_elapsed, credits_used
) )
# Save results # Save results with timestamps
from django.utils import timezone
self.run.stage_2_result = { self.run.stage_2_result = {
'clusters_processed': clusters_processed, 'clusters_processed': clusters_processed,
'ideas_created': ideas_created, 'ideas_created': ideas_created,
'credits_used': credits_used 'credits_used': credits_used,
'started_at': self.run.started_at.isoformat(),
'completed_at': timezone.now().isoformat(),
'time_elapsed': time_elapsed
} }
self.run.current_stage = 3 self.run.current_stage = 3
self.run.total_credits_used += credits_used self.run.total_credits_used += credits_used
@@ -488,11 +496,15 @@ class AutomationService:
stage_number, ideas_processed, time_elapsed, 0 # No credits for local operation stage_number, ideas_processed, time_elapsed, 0 # No credits for local operation
) )
# Save results # Save results with timestamps
from django.utils import timezone
self.run.stage_3_result = { self.run.stage_3_result = {
'ideas_processed': ideas_processed, 'ideas_processed': ideas_processed,
'tasks_created': tasks_created, 'tasks_created': tasks_created,
'batches_run': batches_run 'batches_run': batches_run,
'started_at': self.run.started_at.isoformat(),
'completed_at': timezone.now().isoformat(),
'time_elapsed': time_elapsed
} }
self.run.current_stage = 4 self.run.current_stage = 4
self.run.save() self.run.save()
@@ -637,12 +649,16 @@ class AutomationService:
stage_number, "Post-stage validation passed: 0 tasks remaining" stage_number, "Post-stage validation passed: 0 tasks remaining"
) )
# Save results # Save results with timestamps
from django.utils import timezone
self.run.stage_4_result = { self.run.stage_4_result = {
'tasks_processed': tasks_processed, 'tasks_processed': tasks_processed,
'content_created': content_created, 'content_created': content_created,
'total_words': total_words, 'total_words': total_words,
'credits_used': credits_used 'credits_used': credits_used,
'started_at': self.run.started_at.isoformat(),
'completed_at': timezone.now().isoformat(),
'time_elapsed': time_elapsed
} }
self.run.current_stage = 5 self.run.current_stage = 5
self.run.total_credits_used += credits_used self.run.total_credits_used += credits_used
@@ -775,11 +791,15 @@ class AutomationService:
stage_number, content_processed, time_elapsed, credits_used stage_number, content_processed, time_elapsed, credits_used
) )
# Save results # Save results with timestamps
from django.utils import timezone
self.run.stage_5_result = { self.run.stage_5_result = {
'content_processed': content_processed, 'content_processed': content_processed,
'prompts_created': prompts_created, 'prompts_created': prompts_created,
'credits_used': credits_used 'credits_used': credits_used,
'started_at': self.run.started_at.isoformat(),
'completed_at': timezone.now().isoformat(),
'time_elapsed': time_elapsed
} }
self.run.current_stage = 6 self.run.current_stage = 6
self.run.total_credits_used += credits_used self.run.total_credits_used += credits_used
@@ -914,12 +934,17 @@ class AutomationService:
stage_number, images_processed, time_elapsed, credits_used stage_number, images_processed, time_elapsed, credits_used
) )
# Save results # Save results with timestamps
from django.utils import timezone
stage_6_start = start_time # Capture stage start time
self.run.stage_6_result = { self.run.stage_6_result = {
'images_processed': images_processed, 'images_processed': images_processed,
'images_generated': images_generated, 'images_generated': images_generated,
'content_moved_to_review': content_moved_to_review, 'content_moved_to_review': content_moved_to_review,
'credits_used': credits_used 'credits_used': credits_used,
'started_at': self.run.started_at.isoformat(),
'completed_at': timezone.now().isoformat(),
'time_elapsed': time_elapsed
} }
self.run.current_stage = 7 self.run.current_stage = 7
self.run.total_credits_used += credits_used self.run.total_credits_used += credits_used

View File

@@ -468,6 +468,19 @@ const AutomationPage: React.FC = () => {
{stage.pending} {stage.pending}
</span> </span>
</div> </div>
{/* Credits and Time - Section 6 Enhancement */}
{result && result.credits_used !== undefined && (
<div className="flex justify-between pt-1.5 border-t border-slate-200 dark:border-gray-700">
<span className="text-gray-600 dark:text-gray-400">Credits Used:</span>
<span className="font-bold text-amber-600 dark:text-amber-400">{result.credits_used}</span>
</div>
)}
{result && result.time_elapsed && (
<div className="flex justify-between">
<span className="text-gray-600 dark:text-gray-400">Duration:</span>
<span className="font-semibold text-gray-700 dark:text-gray-300">{result.time_elapsed}</span>
</div>
)}
</div> </div>
{/* Progress Bar */} {/* Progress Bar */}
@@ -548,6 +561,19 @@ const AutomationPage: React.FC = () => {
{stage.pending} {stage.pending}
</span> </span>
</div> </div>
{/* Credits and Time - Section 6 Enhancement */}
{result && result.credits_used !== undefined && (
<div className="flex justify-between pt-1.5 border-t border-slate-200 dark:border-gray-700">
<span className="text-gray-600 dark:text-gray-400">Credits Used:</span>
<span className="font-bold text-amber-600 dark:text-amber-400">{result.credits_used}</span>
</div>
)}
{result && result.time_elapsed && (
<div className="flex justify-between">
<span className="text-gray-600 dark:text-gray-400">Duration:</span>
<span className="font-semibold text-gray-700 dark:text-gray-300">{result.time_elapsed}</span>
</div>
)}
</div> </div>
{(isActive || isComplete || processed > 0) && ( {(isActive || isComplete || processed > 0) && (