{"id":"6958edef23e8ebb0114d38b1","title":"2025 11 20","path":"how-to/committee/release-notes/2025-11-20","contentMarkdown":"# 20-Nov-2025 — align status and location handling [refs #84](https://github.com/nbarrett/ngx-ramblers/issues/84)\n\n## [build 365](https://github.com/nbarrett/ngx-ramblers/actions/runs/19554490036) — [commit 079e3ae](https://github.com/nbarrett/ngx-ramblers/commit/079e3ae28ce58332a89a1ab025492f328cb569e5)\n\n_____\n\n- Add GroupEventField.START_LOCATION_LATITUDE/LONGITUDE and use them in queries and the location-enrichment migration\n- Introduce normalisePostcode and reuse postcodeLookupFromPostcodesIo in the enrichment migration instead of duplicating HTTP logic\n- Add MISSING_LOCATION filter option in walks view and wire it to a Mongo criteria for missing/zero start_location coords\n- Update evening/morning AGM walk stats to treat non-cancelled/non-deleted local walks consistently, using shared expressions\n- Ensure awaiting* events map to WalkStatus.DRAFT and approved maps to WalkStatus.CONFIRMED via deriveStatusFromEvents\n- Use EventType enum instead of string literals for approved/deleted/awaiting* in the status hook and migrated-status migration\n- Improve admin migrations view defaults (sort by Applied/Failed At, keep pending at top) and better error logging for migrations routes\n- Refresh backups list automatically after backup completion so new backups appear on the Restore tab without a full page reload\n- Fix walk list sort query param handling so walk-sort-asc is correctly reflected in the URL","contentHtml":"<h1>20-Nov-2025 — align status and location handling <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/84\">refs #84</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/19554490036\">build 365</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/079e3ae28ce58332a89a1ab025492f328cb569e5\">commit 079e3ae</a></h2>\n<hr>\n<ul>\n<li>Add GroupEventField.START_LOCATION_LATITUDE/LONGITUDE and use them in queries and the location-enrichment migration</li>\n<li>Introduce normalisePostcode and reuse postcodeLookupFromPostcodesIo in the enrichment migration instead of duplicating HTTP logic</li>\n<li>Add MISSING_LOCATION filter option in walks view and wire it to a Mongo criteria for missing/zero start_location coords</li>\n<li>Update evening/morning AGM walk stats to treat non-cancelled/non-deleted local walks consistently, using shared expressions</li>\n<li>Ensure awaiting* events map to WalkStatus.DRAFT and approved maps to WalkStatus.CONFIRMED via deriveStatusFromEvents</li>\n<li>Use EventType enum instead of string literals for approved/deleted/awaiting* in the status hook and migrated-status migration</li>\n<li>Improve admin migrations view defaults (sort by Applied/Failed At, keep pending at top) and better error logging for migrations routes</li>\n<li>Refresh backups list automatically after backup completion so new backups appear on the Restore tab without a full page reload</li>\n<li>Fix walk list sort query param handling so walk-sort-asc is correctly reflected in the URL</li>\n</ul>\n"}