keywrods status fixes
This commit is contained in:
71
backend/verify_status_fixes.py
Normal file
71
backend/verify_status_fixes.py
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env python
|
||||
"""Verify all status fixes"""
|
||||
import os
|
||||
import django
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'igny8_core.settings')
|
||||
django.setup()
|
||||
|
||||
from igny8_core.business.planning.models import Keywords, Clusters, ContentIdeas
|
||||
from igny8_core.business.content.models import Tasks
|
||||
from django.db.models import Count
|
||||
|
||||
print("=" * 60)
|
||||
print("STATUS VERIFICATION REPORT")
|
||||
print("=" * 60)
|
||||
|
||||
# Keywords
|
||||
print("\n1. KEYWORDS STATUS:")
|
||||
kw_status = Keywords.objects.values('status').annotate(count=Count('id')).order_by('status')
|
||||
for item in kw_status:
|
||||
print(f" {item['status']}: {item['count']}")
|
||||
print(f" Total: {Keywords.objects.count()}")
|
||||
|
||||
# Clusters
|
||||
print("\n2. CLUSTERS STATUS:")
|
||||
cl_status = Clusters.objects.values('status').annotate(count=Count('id')).order_by('status')
|
||||
for item in cl_status:
|
||||
print(f" {item['status']}: {item['count']}")
|
||||
print(f" Total: {Clusters.objects.count()}")
|
||||
|
||||
# Content Ideas
|
||||
print("\n3. IDEAS STATUS:")
|
||||
idea_status = ContentIdeas.objects.values('status').annotate(count=Count('id')).order_by('status')
|
||||
for item in idea_status:
|
||||
print(f" {item['status']}: {item['count']}")
|
||||
print(f" Total: {ContentIdeas.objects.count()}")
|
||||
|
||||
# Verify idea-task sync
|
||||
print("\n4. IDEA-TASK STATUS SYNC:")
|
||||
completed_tasks = Tasks.objects.filter(status='completed', idea__isnull=False)
|
||||
mismatched = 0
|
||||
for task in completed_tasks:
|
||||
if task.idea and task.idea.status != 'completed':
|
||||
mismatched += 1
|
||||
print(f" MISMATCH: Task {task.id} completed, Idea {task.idea.id} is {task.idea.status}")
|
||||
|
||||
if mismatched == 0:
|
||||
print(f" ✓ All {completed_tasks.count()} completed tasks have ideas with 'completed' status")
|
||||
else:
|
||||
print(f" ✗ {mismatched} mismatches found")
|
||||
|
||||
# Check for old status values
|
||||
print("\n5. OLD STATUS VALUES CHECK:")
|
||||
old_keywords = Keywords.objects.filter(status__in=['pending', 'active', 'archived']).count()
|
||||
old_clusters = Clusters.objects.filter(status__in=['active']).exclude(status='mapped').exclude(status='new').count()
|
||||
old_ideas = ContentIdeas.objects.filter(status__in=['scheduled', 'published']).count()
|
||||
|
||||
if old_keywords == 0 and old_clusters == 0 and old_ideas == 0:
|
||||
print(" ✓ No old status values found")
|
||||
else:
|
||||
print(f" ✗ Found old values:")
|
||||
if old_keywords > 0:
|
||||
print(f" Keywords with pending/active/archived: {old_keywords}")
|
||||
if old_clusters > 0:
|
||||
print(f" Clusters with old 'active': {old_clusters}")
|
||||
if old_ideas > 0:
|
||||
print(f" Ideas with scheduled/published: {old_ideas}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("VERIFICATION COMPLETE")
|
||||
print("=" * 60)
|
||||
Reference in New Issue
Block a user