#!/usr/bin/env python3 """List all campaigns grouped by status""" import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) from shared.config_loader import load_config from shared.dam_client import DAMClient config = load_config('config/config.yaml') dam = DAMClient(config) print("\n" + "="*70) print("Fetching all Local Adaptation campaigns...") print("="*70) campaigns = dam.search_campaigns(status=None, campaign_type='Local Adaptation') # Group by status by_status = {} for c in campaigns: status = c.get('status', 'NO STATUS') if status not in by_status: by_status[status] = [] by_status[status].append(c) print("\nCampaigns by Status:") print("-" * 70) for status in sorted(by_status.keys()): count = len(by_status[status]) print(f"\n{status}: {count} campaign(s)") for c in by_status[status][:3]: # Show first 3 print(f" - {c.get('campaign_name', 'Unknown')} (ID: {c.get('campaign_id', 'N/A')})") if count > 3: print(f" ... and {count - 3} more") print("\n" + "="*70) print(f"Total campaigns: {len(campaigns)}") print("="*70 + "\n")