Skip to content

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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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".
  7. Moving stops without drag. "Move to another day" in the stop sheet, and up / down arrows in edit mode. Drag comes in v2.
  8. 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

  1. A new preview shows 2 adults; Create trip is never greyed out.
  2. Signed out, changing adults or any stop opens sign up; afterwards the change is kept and the trip is a draft.
  3. Extending the range adds "Free day in " days; the departure moves to the new last day.
  4. A typed place ("Aunt's house, Lalitpur") saves as a normal stop on that trip only and does not appear in the library search.
  5. Save trip sends the included services to the admin in one notice; no Request buttons remain.
  6. Switching to Relaxed changes untouched stops' times and shows the note; a hand-edited stop keeps its time.
  7. "Move to another day" and the up / down arrows reorder stops; the days shift.
  8. 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.