German date display + optional street address for precise geocoding

- Date pickers (entry form + edit dialog) now display TT.MM.JJJJ instead of
  ISO (DATE_DISPLAY_FORMAT). Storage stays YYYY-MM-DD; parse_date() already
  accepted both formats, so existing data and the self-updater are unaffected.
- New optional "Straße" field (street + house number) in the entry form and
  edit dialog, backed by a new `street` CSV column. geocode_city() and
  GeocoderWorker.enqueue() gained a street parameter: when set, a full-address
  query is tried first for a much more precise map point, falling back
  automatically to the existing city/PLZ search if it doesn't resolve.
- Tab 2 and the entry queue show a Straße column; Tab 2 search now also
  matches on street.
- Fix: pandas turns a blank CSV cell into NaN even for a dtype=str column, so
  every existing (blank-street) row would have shown literal "nan" in Tab 2.
  DataStore._load now does street.fillna("") after every read.

Verified with a non-GUI test suite (date parsing, query construction, CSV
round-trip incl. the NaN case) and a full GUI build/drive test on Python
3.12/Tk 9. Docs updated (changelog, overview, architecture, data-model,
dev-notes, improvements).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-12 11:15:37 +02:00
parent 0b6ed854dc
commit d418f156fa
7 changed files with 185 additions and 61 deletions
+14
View File
@@ -215,6 +215,20 @@ Open follow-ups: no rollback if a pushed update is broken (mitigated by
`--ff-only` from a branch Patrick controls + pip errors caught pre-restart);
`run.sh` / `.desktop` still not committed (item 5).
## German date + street address (2026-09-12) — ✅ done, one idea deferred
Date pickers display `TT.MM.JJJJ`; storage untouched. New optional `street`
CSV column feeds a full-address geocode attempt before falling back to
city/PLZ. See [changelog.md](changelog.md).
**Deferred idea, not requested:** since the same person is often logged at the
same city repeatedly, the address autocomplete could remember and suggest the
last-used street for a selected city (the way selecting a city already
auto-fills its PLZ). Would remove re-typing the same street each time, at the
cost of a bit more state to reason about. Worth doing if re-typing the address
turns out to be annoying in practice — not implemented now to keep the change
minimal.
## Suggested order of remaining work
1. Deploy to the laptop: `git clone` + `./install.sh` (see [setup.md](setup.md)).