20-Nov-2025 — align status and location handling refs #84
- Add GroupEventField.START_LOCATION_LATITUDE/LONGITUDE and use them in queries and the location-enrichment migration
- Introduce normalisePostcode and reuse postcodeLookupFromPostcodesIo in the enrichment migration instead of duplicating HTTP logic
- Add MISSING_LOCATION filter option in walks view and wire it to a Mongo criteria for missing/zero start_location coords
- Update evening/morning AGM walk stats to treat non-cancelled/non-deleted local walks consistently, using shared expressions
- Ensure awaiting* events map to WalkStatus.DRAFT and approved maps to WalkStatus.CONFIRMED via deriveStatusFromEvents
- Use EventType enum instead of string literals for approved/deleted/awaiting* in the status hook and migrated-status migration
- Improve admin migrations view defaults (sort by Applied/Failed At, keep pending at top) and better error logging for migrations routes
- Refresh backups list automatically after backup completion so new backups appear on the Restore tab without a full page reload
- Fix walk list sort query param handling so walk-sort-asc is correctly reflected in the URL