Recourse

Maps and calendars

Two more shapes a page of rows can take, each the same page drawn another way, with the same search, filters and footer. A model earns one by the columns it keeps, and declares nothing.

Maps

A model keeping a google_place_id, or a latitude and a longitude, gets Display as map in its footer, and /stores.map draws the page’s rows on a Google map. A point is a pin; a place ID is an area where the model is a State, County, City or ZIP, and a pin otherwise.

# config/credentials.yml.enc
google_maps:
  api_key: AIza…
  map_id: 4f2a…

The map’s style needs the matching Feature layers turned on in the Cloud console, and a Content Security Policy allows maps.googleapis.com and Google’s tile hosts.

Calendars

A model keeping a starts_at and an ends_at, both datetimes, gets Display as calendar, and /events.cal draws a week from Sunday, a column a day, each row placed by its hours in the reader’s zone, overlapping rows in lanes of their own. ?week=2026-09-13 moves to that week, and arrows under the grid move a week or four either way. The search and the filters travel with it.