import django, os, json
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from apps.editor.models import Project

p = Project.objects.get(pk=25)
draft = p.editor_draft or {}
seqs = draft.get('sequences', [])
seq = next((s for s in seqs if 'editorial-approved' in str(s.get('id',''))), None)

blocks = seq.get('blocks', [])
af = seq.get('autoFrame', {})
tracking = af.get('tracking', {})

print(f"blocks: {len(blocks)}")
print(f"autoFrame enabled: {af.get('enabled')}")
print(f"tracking blocks: {len(tracking)}")
print(f"manual block ids: {seq.get('manualClipDisplayBlockIds', [])}")

modes = seq.get('clipDisplayModes', {})
adjustments = seq.get('clipDisplayAdjustments', {})

for b in blocks[:6]:
    bid = b.get('id', '?')
    m = modes.get(bid, {})
    if isinstance(m, dict):
        m_port = (m.get('byAspect') or {}).get('portrait', '?')
    else:
        m_port = m
    t = tracking.get(bid, {})
    has_traj = bool(t.get('trajectory'))
    traj_len = len(t.get('trajectory', []))
    eng_modes = t.get('engine_modes', {})
    print(f"  block {bid}: mode(port)={m_port}, has_traj={has_traj}, traj_pts={traj_len}, eng_modes={eng_modes}")

# Show the adjustments for first block with portrait fit
for b in blocks[:2]:
    bid = b.get('id')
    adj = adjustments.get(bid, {})
    port = (adj.get('byAspect') or {}).get('portrait', {})
    fit = port.get('fit', {})
    if fit:
        print(f"\nBlock {bid} portrait/fit adjustment:")
        print(json.dumps(fit, indent=2))
        break
