This commit is contained in:
IGNY8 VPS (Salman)
2025-12-01 08:54:52 +00:00
parent b2012e9563
commit ca5451c795
7 changed files with 196 additions and 8 deletions

View File

@@ -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

View File

@@ -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'),
),
]

View File

@@ -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'])