Plan editor — all days on one page
Status: draft · Last session: 25 Oct 2026
Builds on M7 revision 2 (one-page edit,
/trips/:id/plan, built on build day 21) and its unapproved prototype revision 2. This card
lists what v1 adds or changes; everything in M7 that is not changed here stays as built.
Works with planner.md (P50) and day-plan.md (P51).
Who and the job
- Traveller or group leader shaping a trip from a Paila: see every day at once, change stops, dates, people and services in one place, then create or save the trip.
- Visitor (signed out): looks at the fitted plan; the first edit asks them to sign up or sign in (P50).
Already built (kept)
- All days on one page: numbered day markers, stops as short lines, overnight rows, day shortcuts, stop sheet, add and remove stops and days, undo.
- Right column (sticky on web): dates (one calendar), adults and children steppers, rooms, then Stays and travel tabs (Hotel, Vehicle, Flight, Guide) with status badges. Phones show the dates first.
- Trip status
PREVIEW→DRAFT→FINAL. Looking saves nothing; leaving after a change asks Keep as draft · Discard · Keep editing. - "Edit all days" on a final trip opens the same page with Save trip.
Decided (founder, 25 Oct 2026)
- No locked Create trip. Adults start at 2, editable. Changing them is an edit like any other: it follows the existing rules (sign up or sign in when signed out, then the trip becomes a draft). Create trip is never greyed out.
- Drafts live on the server, as built. A signed-out visitor is asked to sign up at the first edit (sign in for existing accounts); there is no browser-only draft.
- End date changes. A longer range adds days at the end as "Free day in
". A shorter range asks first and names what is lost. The trip's end (airport drop, road or hotel, P51) always moves to the new last day. - Any place, not only the library. The place picker searches the place library, and "Not in the list? Add a place" takes any name the traveller types: their home, a friend's house, a café. It is a normal stop: visited, timed and shown like the others. It belongs to that trip only and is not added to the library. No "unverified" label.
- One action sends everything (to check in the design). Create trip / Save trip sends every included service to the admin (P50 notice). The per-tab Request confirmation and Request all buttons go; the status badges stay.
- Pace change rebuilds times. Switching Relaxed · Balanced · Full rebuilds the visit times (P51) of stops nobody changed by hand; stops someone changed keep their times. One note says what happened: "Times updated for a relaxed pace".
- Moving stops without drag. "Move to another day" in the stop sheet, and up / down arrows in edit mode. Drag comes in v2.
- Phone layout. The itinerary comes first; a bottom bar "Dates · 2 adults · Stays ›" opens the setup full height. Switching between them keeps every input.
Signature idea (D9): the route board
The day markers down the left are joined like stations on a route, and the line changes town at each overnight ("Kathmandu ● ● ● → Pokhara ● ●"). The trip's shape shows at a glance before anyone reads a stop; the day plan's trail (P51) continues it inside each day.
States and edge cases
- Create trip pressed without dates: the calendar opens with "Pick your dates to create the trip" (assumption: dates stay needed to create, because NepWalk cannot arrange hotels without them).
- Adults changed by a signed-out visitor: the sign-up sheet opens; after signing up the change is applied and the trip is a draft.
- A typed place without a position: no map pin, listed under "Not on map" (M13); Directions searches its name in Google Maps.
- Pace switched after many hand edits: only untouched stops change; the note says how many.
- Shorter range that removes the last days: the confirm names each lost stop; Cancel keeps the old range.
- Moving a stop to a day that is full: it is placed last; the day shifts as today.
Acceptance checks
- A new preview shows 2 adults; Create trip is never greyed out.
- Signed out, changing adults or any stop opens sign up; afterwards the change is kept and the trip is a draft.
- Extending the range adds "Free day in
" days; the departure moves to the new last day. - A typed place ("Aunt's house, Lalitpur") saves as a normal stop on that trip only and does not appear in the library search.
- Save trip sends the included services to the admin in one notice; no Request buttons remain.
- Switching to Relaxed changes untouched stops' times and shows the note; a hand-edited stop keeps its time.
- "Move to another day" and the up / down arrows reorder stops; the days shift.
- On a phone, the bottom bar opens setup; switching back keeps every value.
Later (v2)
- Reorder stops and days by drag.
- A pin on the map for a typed place.
Tasks (proposed)
| Task | Owner | Size |
|---|---|---|
editor-default-adults: 2 adults by default, Create trip never locked, dates asked on Create |
engineer (frontend) | 5 XP |
editor-range-change: free days at the end, confirm on shortening, trip end moves |
engineer | 10 XP |
trip-own-places: typed places stored on the trip, not the library |
engineer (backend + frontend) | 10 XP |
editor-one-send: Create / Save trip sends all included services; Request buttons go |
engineer | 10 XP |
pace-rebuild: pace change rebuilds untouched stop times; note |
engineer (backend) | 10 XP |
stop-move: move to another day; up / down arrows |
engineer | 10 XP |
editor-phone-bar: bottom setup bar on phones |
engineer (frontend) | 5 XP |
route-board: the route board signature, after the HTML design |
engineer (frontend) | 10 XP |
plan-editor-qa: test plan from the checks |
Niwesh | 10 XP |
Each implementation task gets a spec in docs/v1/tasks/ (team-spec) before assignment.