{"id":"6a8afcc26eebeb55735399de","title":"2026 08 23 Issue 302","path":"how-to/committee/release-notes/2026-08-23-issue-302","contentMarkdown":"# 23-Aug-2026 — CSV walks import: leader-to-member matching and per-row feedback [ref #302](https://github.com/nbarrett/ngx-ramblers/issues/302)\n\n## [build 846](https://github.com/nbarrett/ngx-ramblers/actions/runs/32643487238) — [commit 042058f](https://github.com/nbarrett/ngx-ramblers/commit/042058ffeda1fa117430cc5c05cc998c979f2eda)\n\n---\n\nRework the walk CSV import matching step end to end.\n\n- Migrate the matching table to the shared sortable-table (mint-cake header, column sort, URL-persisted sort state) and reuse app-maximisable-panel so it can fill the screen, with a select-all header checkbox and a widescreen maximise hint. Consolidates the two alerts and removes the dead hand-rolled sort code; migrates the two SORT_ASC users to the shared SORT_ORDER key and adds an optional header-cell template to sortable-table.\n- Per-row feedback shows whether each walk updates an existing record or creates a new one (matched by Walk ID or by title and date), with an update-versus-create summary.\n- Member matching gains a surname fallback: when the forename differs (Liz Jones vs Elizabeth Jones) a unique surname match is suggested as a click-to-confirm amber tentative state rather than left unmatched, with a Tentative filter and badge and a 3-state status icon with tooltip.\n- The member cell is a multiple ng-select (first selected is the primary contact), matching the Walk Leader tab; tentative suggestions pre-select for confirmation and the apply-to-other-walks action keeps selections in sync.\n\n\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/6c358a59-f027-48fa-b622-c9b3dd30a8b8.png)","contentHtml":"<h1>23-Aug-2026 — CSV walks import: leader-to-member matching and per-row feedback <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/302\">ref #302</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/32643487238\">build 846</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/042058ffeda1fa117430cc5c05cc998c979f2eda\">commit 042058f</a></h2>\n<hr>\n<p>Rework the walk CSV import matching step end to end.</p>\n<ul>\n<li>Migrate the matching table to the shared sortable-table (mint-cake header, column sort, URL-persisted sort state) and reuse app-maximisable-panel so it can fill the screen, with a select-all header checkbox and a widescreen maximise hint. Consolidates the two alerts and removes the dead hand-rolled sort code; migrates the two SORT_ASC users to the shared SORT_ORDER key and adds an optional header-cell template to sortable-table.</li>\n<li>Per-row feedback shows whether each walk updates an existing record or creates a new one (matched by Walk ID or by title and date), with an update-versus-create summary.</li>\n<li>Member matching gains a surname fallback: when the forename differs (Liz Jones vs Elizabeth Jones) a unique surname match is suggested as a click-to-confirm amber tentative state rather than left unmatched, with a Tentative filter and badge and a 3-state status icon with tooltip.</li>\n<li>The member cell is a multiple ng-select (first selected is the primary contact), matching the Walk Leader tab; tentative suggestions pre-select for confirmation and the apply-to-other-walks action keeps selections in sync.</li>\n</ul>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/6c358a59-f027-48fa-b622-c9b3dd30a8b8.png\" alt=\"\"></p>\n"}