fine tuning

This commit is contained in:
IGNY8 VPS (Salman)
2025-11-28 12:25:45 +00:00
parent 831b179c49
commit 0839455418
15 changed files with 840 additions and 95 deletions

View File

@@ -0,0 +1,27 @@
# Generated manually on 2025-11-28
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('writer', '0009_add_word_count_to_tasks'),
]
operations = [
migrations.AlterField(
model_name='content',
name='status',
field=models.CharField(
choices=[
('draft', 'Draft'),
('review', 'Review'),
('published', 'Published')
],
db_index=True,
default='draft',
help_text='Content status',
max_length=50
),
),
]

View File

@@ -154,6 +154,9 @@ class ContentSerializer(serializers.ModelSerializer):
cluster_name = serializers.SerializerMethodField()
sector_name = serializers.SerializerMethodField()
taxonomy_terms_data = serializers.SerializerMethodField()
has_image_prompts = serializers.SerializerMethodField()
image_status = serializers.SerializerMethodField()
has_generated_images = serializers.SerializerMethodField()
site_id = serializers.IntegerField(write_only=True, required=False)
sector_id = serializers.IntegerField(write_only=True, required=False)
@@ -181,6 +184,9 @@ class ContentSerializer(serializers.ModelSerializer):
'site_id',
'sector_id',
'account_id',
'has_image_prompts',
'image_status',
'has_generated_images',
'created_at',
'updated_at',
]
@@ -239,6 +245,35 @@ class ContentSerializer(serializers.ModelSerializer):
}
for term in obj.taxonomy_terms.all()
]
def get_has_image_prompts(self, obj):
"""Check if content has any image prompts (images with prompts)"""
return obj.images.filter(prompt__isnull=False).exclude(prompt='').exists()
def get_image_status(self, obj):
"""Get image generation status: 'generated', 'pending', 'failed', or None"""
images = obj.images.all()
if not images.exists():
return None
# Check statuses
has_failed = images.filter(status='failed').exists()
has_generated = images.filter(status='generated').exists()
has_pending = images.filter(status='pending').exists()
# Priority: failed > pending > generated
if has_failed:
return 'failed'
elif has_pending:
return 'pending'
elif has_generated:
return 'generated'
return None
def get_has_generated_images(self, obj):
"""Check if content has any successfully generated images"""
return obj.images.filter(status='generated', image_url__isnull=False).exclude(image_url='').exists()
class ContentTaxonomySerializer(serializers.ModelSerializer):