Clear every read-only marker when the store becomes writable again

"Erneut prüfen" refreshed the banner but left the window title and the status bar
reading "NUR LESEN" -- both were built once and never updated -- while the banner
itself asked for a restart that the recheck exists to avoid.

Title, status bar and banner are refreshed from one place now, so none of them can
be left behind, and the main window owns the title instead of app.py setting it
once at startup. The banner points at "Erneut prüfen" and says outright that no
restart is needed. Since the startup pass was skipped, its task list is empty
rather than current, so a successful recheck offers the housekeeper run that
fills it.

UI tests cover both directions of the recheck; their Tk root moved into a shared
conftest fixture, because a second root in another module invalidates the icon
images bound to the first.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Marcel Peterkau
2026-08-29 00:01:37 +02:00
co-authored by Claude Opus 5
parent ae53c168fd
commit 528c24ad42
6 changed files with 164 additions and 43 deletions
+4 -2
View File
@@ -219,8 +219,10 @@ error.
Program settings still save normally -- they live in the user's config directory,
not in the store. Settings that belong to the store (club data, member numbers,
reminders, e-mail) are skipped with a notice. When the volume is remounted with
write access, "Erneut prüfen" in the banner picks that up without a restart.
reminders, e-mail, mail templates) are skipped with a notice. When the volume is
remounted with write access, "Erneut prüfen" in the banner picks that up without a
restart: title, status bar and banner drop their markers, and the housekeeper pass
that was skipped at startup is offered right away.
A store that was never initialized cannot be opened read-only: creating it needs
write access, and CCMA says so instead of failing obscurely.