fine tuning
This commit is contained in:
@@ -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
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user