b5c90a1e81
Add group.py route, phase4.html template, and supporting state changes. Photos are shown as a flat stream; clicking divider zones inserts entry-break boundaries that split photos into labelled groups. Labels persist via group_labels dict. Done materialises groups into state.groups and advances to write phase. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
1.1 KiB
JSON
32 lines
1.1 KiB
JSON
{
|
|
"album_id": "album-1",
|
|
"album_name": "Central Asia 2023",
|
|
"grav_trip_slug": "central-asia-2023",
|
|
"phase": "write",
|
|
"phases_completed": ["triage", "curate", "group"],
|
|
"phase_stale": [],
|
|
"photos": [
|
|
{"id": "asset-1", "original_filename": "IMG_001.jpg",
|
|
"local_datetime": "2023-09-05T09:03:00", "tag": "journal", "order": 0},
|
|
{"id": "asset-2", "original_filename": "IMG_002.jpg",
|
|
"local_datetime": "2023-09-05T14:30:00", "tag": "story", "order": 1}
|
|
],
|
|
"groups": [
|
|
{
|
|
"id": "g1", "photo_ids": ["asset-1"], "entry_type": "journal",
|
|
"label": "", "title": "", "body": "", "location_city": "", "location_country": "",
|
|
"date": "2023-09-05", "hero_photo_id": null, "shortcode_hints": "",
|
|
"status": "draft"
|
|
},
|
|
{
|
|
"id": "g2", "photo_ids": ["asset-2"], "entry_type": "story",
|
|
"label": "", "title": "", "body": "", "location_city": "", "location_country": "",
|
|
"date": "2023-09-05", "hero_photo_id": null, "shortcode_hints": "",
|
|
"status": "draft"
|
|
}
|
|
],
|
|
"notes": "I remember the airport was chaos.",
|
|
"dividers": [],
|
|
"group_labels": {}
|
|
}
|