Paddy 0b6ed854dc Fix right-click context menus firing their first item on Linux
Bound to <Button-3> with finally: menu.grab_release(), the menu lost its grab
immediately and the trailing <ButtonRelease-3> activated the entry under the
cursor — right-clicking a history row jumped straight into the edit dialog and
deleting was impossible.

- RIGHT_CLICK constant: <ButtonRelease-3> (<ButtonRelease-2> on macOS)
- history + queue menus built once on self, not per click
- drop the premature grab_release()

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 22:41:10 +02:00
2026-09-07 22:30:03 +02:00

DRK Blutspende Arbeitsorte: Dokumentation

Developer/maintainer documentation for the Arbeitsorte-Logger, a small desktop app that records blood-drive work assignments (date + city + postal code) and plots them on an interactive map.

Context: built as a personal tool for a single user, running locally on a Linux Mint laptop. Ease of use for a non-technical user is the primary design constraint. There is no server, no multi-user story, and no network dependency beyond geocoding and the map tiles.

Documents

File Contents
overview.md What the app does, feature by feature
architecture.md Code structure, threading model, data flow
data-model.md The orte.csv schema and how it is read/written
setup.md git clone + ./install.sh on Linux Mint; how updates work
improvements.md Prioritized review findings and suggested changes
changelog.md What has changed, newest first
dev-notes.md Assumptions that turned out wrong — read before editing

At a glance

  • Language / stack: Python 3, Tkinter via ttkbootstrap
  • Single file: app.py (~760 lines)
  • Storage: one CSV file, data/orte.csv
  • Map: generated on demand as data/karte.html with Folium (Leaflet), opened in the default browser
  • Geocoding: OpenStreetMap Nominatim via geopy, rate-limited to 1 request/second on a background thread
  • UI language: German; DRK-red header, enlarged font, colour-coded status bar, window position remembered
  • Persistence: atomic CSV writes + rotating backups in data/backups/; log at data/app.log
  • Tests: non-GUI smoke checks only (not yet a committed tests/ suite)
  • Version control: git initialized 2026-09-07; in-app self-update (git fast-forward + restart) via the Hilfe menu
S
Description
App für Mama um ihre Blutspende-Einsatzorte zu dokumentieren und auf einer Karte anzuzeigen
Readme 309 KiB
Languages
Python 95.5%
Shell 4.5%