Public: anyone can read this; the crew can change it.

Print an open house sign-in sheet for a listing with an open house, in the agent's brand #65

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

A listing with an open house now has a **Sign-in sheet** link, and the sheet itself is a printable page at `GET /listings/:id/sign-in`. A listing with no open house shows no link and answers 404 there.

shipped production is serving it deploy 957b843

opened this

A listing with an open house now has a Sign-in sheet link, and the sheet itself is a printable page at GET /listings/:id/sign-in. A listing with no open house shows no link and answers 404 there.

  • Page: src/pages/signin.ts is a print-layout page with the same print bar and Print button as the flyer. It carries the hero photo, address, price, the open house line exactly as the flyer words it, and the agent's name and phone in the brand colour. Below that is a table of 15 blank rows: Name, Email, Phone, Working with an agent? (Yes / No).
  • Route: src/routes.ts adds the route. It reads the listing with the existing getListing, which asks permit, so no contract cell changes. It returns 404 when the listing has no open house.
  • Link: src/pages/listing.ts shows the link only when the listing has an open house.
  • Print: static/app.css sets the sheet up for one US Letter page with no navigation. Its classes are named in docs/design/areas/open-house.md.
  • Tests:

- src/signin.test.ts covers the link appearing only with an open house, both dates, the agent's name and phone, 15 rows, and 404 without an open house (or for an unknown id). - src/hostile.test.ts now gives its hostile listing an open house and includes the sheet in the escaping checks. - The README's open house step says where the sheet is.

Nothing typed on paper is stored.

Checks: bun test on signin, hostile, speed, design, a11y and openhouse passes. bun scripts/lint-design.ts is clean. The design linter is at that path here, not the design-lint.ts the brief names. bun x tsc --noEmit only printed the compiler's help text in this sandbox, so I could not type-check. I did not run the full suite.

🤖 Generated with Claude Code

Closes #43

commented

A listing with an open house now has a Sign-in sheet link, and the sheet itself is a printable page at GET /listings/:id/sign-in. A listing with no open house shows no link and answers 404 there.

  • Page: src/pages/signin.ts is a print-layout page with the same print bar and Print button as the flyer. It carries the hero photo, address, price, the open house line exactly as the flyer words it, and the agent's name and phone in the brand colour. Below that is a table of 15 blank rows: Name, Email, Phone, Working with an agent? (Yes / No).
  • Route: src/routes.ts adds the route. It reads the listing with the existing getListing, which asks permit, so no contract cell changes. It returns 404 when the listing has no open house.
  • Link: src/pages/listing.ts shows the link only when the listing has an open house.
  • Print: static/app.css sets the sheet up for one US Letter page with no navigation. Its classes are named in docs/design/areas/open-house.md.
  • Tests:

- src/signin.test.ts covers the link appearing only with an open house, both dates, the agent's name and phone, 15 rows, and 404 without an open house (or for an unknown id). - src/hostile.test.ts now gives its hostile listing an open house and includes the sheet in the escaping checks. - The README's open house step says where the sheet is.

Nothing typed on paper is stored.

Checks: bun test on signin, hostile, speed, design, a11y and openhouse passes. bun scripts/lint-design.ts is clean. The design linter is at that path here, not the design-lint.ts the brief names. bun x tsc --noEmit only printed the compiler's help text in this sandbox, so I could not type-check. I did not run the full suite.

🤖 Generated with Claude Code

Approved

Clean. Route goes through getListing (permit), no contract cell changes, all fields escaped, hostile test covers the page, tests cover link/404/15 rows/both dates, design lint clean, README updated. Not run here: the preview sample listing has no open house, so I could not view the rendered sheet there; the print layout rests on the CSS and tests.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs