fixes
This commit is contained in:
@@ -217,6 +217,7 @@ class Content(SiteSectorBaseModel):
|
||||
external_id = models.CharField(max_length=255, blank=True, null=True, db_index=True, help_text="WordPress/external platform post ID")
|
||||
external_url = models.URLField(blank=True, null=True, help_text="WordPress/external platform URL")
|
||||
external_type = models.CharField(max_length=100, blank=True, null=True, help_text="WordPress post type (post, page, product, etc.)")
|
||||
external_metadata = models.JSONField(blank=True, null=True, default=dict, help_text="External platform metadata (WordPress term IDs, etc.)")
|
||||
sync_status = models.CharField(max_length=50, blank=True, null=True, help_text="Sync status with WordPress")
|
||||
|
||||
# Source tracking
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 5.2.8 on 2025-12-01 08:21
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('igny8_core_auth', '0003_add_sync_event_model'),
|
||||
('publishing', '0001_initial'),
|
||||
('writer', '0010_add_review_status_to_content'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='publishingrecord',
|
||||
name='content',
|
||||
field=models.ForeignKey(blank=True, help_text='Content being published', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='publishing_records', to='writer.content'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='deploymentrecord',
|
||||
index=models.Index(fields=['site', 'status'], name='igny8_deplo_site_id_0de333_idx'),
|
||||
),
|
||||
]
|
||||
@@ -173,11 +173,15 @@ class PublisherService:
|
||||
|
||||
# NEW: Save term_ids to external_metadata if available
|
||||
if result.get('metadata') and result['metadata'].get('term_ids'):
|
||||
if not content.external_metadata:
|
||||
content.external_metadata = {}
|
||||
content.external_metadata['wordpress_term_ids'] = result['metadata']['term_ids']
|
||||
logger.info(f"[PublisherService._publish_to_destination] 🏷️ Saved term_ids to external_metadata: {result['metadata']['term_ids']}")
|
||||
content.save(update_fields=['status', 'external_id', 'external_url', 'external_metadata', 'updated_at'])
|
||||
if not hasattr(content, 'external_metadata'):
|
||||
logger.warning(f"[PublisherService._publish_to_destination] ⚠️ Content model missing external_metadata field - run migrations")
|
||||
content.save(update_fields=['status', 'external_id', 'external_url', 'updated_at'])
|
||||
else:
|
||||
if content.external_metadata is None:
|
||||
content.external_metadata = {}
|
||||
content.external_metadata['wordpress_term_ids'] = result['metadata']['term_ids']
|
||||
logger.info(f"[PublisherService._publish_to_destination] 🏷️ Saved term_ids to external_metadata: {result['metadata']['term_ids']}")
|
||||
content.save(update_fields=['status', 'external_id', 'external_url', 'external_metadata', 'updated_at'])
|
||||
else:
|
||||
content.save(update_fields=['status', 'external_id', 'external_url', 'updated_at'])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user