lazyflat/web/templates
EiSiMo 2ebbf76a80 experiment: shade excluded Bezirke on map (faint yellow overlay)
Tints districts the user's Bezirk filter has EXCLUDED in light yellow
(#fde68a, fillOpacity 0.35) so the active selection is obvious from
the map alone — and you can see at a glance whether a "rausgefiltert"
flat fell in a no-go district. When no district filter is set the
overlay stays off entirely (nothing is excluded).

Wiring:
- Berlin Bezirke GeoJSON checked in at web/static/berlin-districts.geojson
  (12 features, name property matches our DISTRICTS list 1:1, props
  stripped down to {name} and minified — 312KB raw, ~80KB gzipped).
- Route exposes the user's selected_districts_csv to the template.
- The flats-map-data <script> carries it on data-selected-districts so
  it flows in alongside csrf and the marker payload.
- map.js fetches the GeoJSON once (cache normally), keeps the layer in
  a module-level reference, and re-styles it via setStyle() on every
  swap (cheap). Marker layer is kicked to the front so pins always
  paint above the shaded polygons. fingerprintOf now also folds in
  the selected-districts CSV so a Bezirk-only filter change still
  triggers a re-render.

Branch only — kept off main while we see if this reads well.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 13:30:30 +02:00
..
_admin_logs.html ui batch: admin tab, time filter, count-up, chevron sync, tidy 2026-04-21 17:11:58 +02:00
_admin_secrets.html secrets tab, drop commute filter, favicon, robust error reports 2026-04-21 17:56:57 +02:00
_layout.html feat(web): footer build SHA shows "(latest)" or "(N behind)" 2026-04-23 11:21:24 +02:00
_settings_account.html multi-user: users, per-user profiles/filters/notifications, tab UI, apply forensics 2026-04-21 10:52:41 +02:00
_settings_filter.html feat(filter): Berlin-Bezirk filter in Einstellungen 2026-04-23 10:05:55 +02:00
_settings_notifications.html feat(notifications): add Telegram test button 2026-04-23 09:35:02 +02:00
_settings_partner.html bewerben UX: instant feedback; drop forensics detail; partner feature 2026-04-21 18:18:24 +02:00
_settings_profil.html ui batch: admin tab, time filter, count-up, chevron sync, tidy 2026-04-21 17:11:58 +02:00
_settings_users.html guard double-apply, hide error msg, wohnungen polish, bitwarden block 2026-04-21 14:20:31 +02:00
_wohnung_detail.html feat(ui): green map pin for applied flats, hide map reject after apply, lightbox image viewer 2026-04-23 12:37:15 +02:00
_wohnungen_body.html experiment: shade excluded Bezirke on map (faint yellow overlay) 2026-04-23 13:30:30 +02:00
admin.html secrets tab, drop commute filter, favicon, robust error reports 2026-04-21 17:56:57 +02:00
base.html chore(web): cache-bust own static assets with build SHA 2026-04-23 12:59:20 +02:00
bewerbungen.html feat(apply): treat "Inserat offline" as its own outcome 2026-04-23 09:56:04 +02:00
einstellungen.html bewerben UX: instant feedback; drop forensics detail; partner feature 2026-04-21 18:18:24 +02:00
login.html refactor: rename wohnungsdidi → lazyflat 2026-04-23 09:26:12 +02:00
wohnungen.html ui: slim 4-card strip, admin-only system log, HTMX apply, title cleanup 2026-04-21 11:25:59 +02:00