Im Pruflauf geht kein PDF-Betrachter mehr auf
Sein Fund: "wenn du testest, dann mach den tab auch zu". Ein Lauf ueber die Pruefkette schreibt Dutzende Rechnungen, und nach jeder oeffnete das Programm den Betrachter - am Ende klickt der Mensch am Rechner dreissig Fenster weg, die er nie aufgemacht hat. Geoeffnet wird jetzt nur noch an EINER Stelle (_oeffne_datei), und die haelt im Testlauf still und meldet stattdessen, was zu sehen gewesen waere. Die zweite Stelle, die frueher direkt os.startfile rief, geht ebenfalls darueber. pruef_vorschau prueft jetzt den zurueckgegebenen Pfad - und dass wirklich nichts aufgemacht wurde. Alle 14 Pruefstaende gruen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V4t48uxDok5rJXhC9bX1Ax
This commit is contained in:
parent
4cf46e9932
commit
fe0c4a8e08
2 changed files with 17 additions and 6 deletions
12
app.py
12
app.py
|
|
@ -1263,7 +1263,7 @@ class RechnungsApp(ThemeMixin, KorrekturMixin, EinstellungenMixin, tk.Tk):
|
|||
pdf_renderer.render_rechnung(pfad, self.cfg, r, kopf, vorschau=True)
|
||||
print(f"[vorschau] geschrieben -> {pfad}")
|
||||
if oeffnen:
|
||||
os.startfile(pfad) # noqa: S606
|
||||
self._oeffne_datei(pfad)
|
||||
return pfad
|
||||
except OSError as e:
|
||||
messagebox.showerror("Vorschau nicht möglich",
|
||||
|
|
@ -1614,6 +1614,16 @@ class RechnungsApp(ThemeMixin, KorrekturMixin, EinstellungenMixin, tk.Tk):
|
|||
|
||||
|
||||
def _oeffne_datei(self, pfad):
|
||||
"""Datei oder Ordner im Betrachter oeffnen. Im Pruflauf: NICHT.
|
||||
|
||||
Ein Pruefstand schreibt Dutzende Rechnungen. Wuerde jede davon den
|
||||
PDF-Betrachter aufmachen, hat der Mensch am Rechner am Ende dreissig
|
||||
Fenster offen, die er selbst wegklicken darf. Gemeldet wird es trotzdem,
|
||||
damit im Protokoll steht, was zu sehen gewesen waere.
|
||||
"""
|
||||
if TESTLAUF:
|
||||
print(f"[oeffnen] im Pruflauf nicht geoeffnet: {pfad}")
|
||||
return False
|
||||
try:
|
||||
if sys.platform.startswith("win"):
|
||||
os.startfile(pfad) # noqa: S606
|
||||
|
|
|
|||
|
|
@ -61,8 +61,9 @@ def pruefe(bedingung, text):
|
|||
messagebox.showinfo = messagebox.showwarning = messagebox.showerror = lambda *a, **k: None
|
||||
messagebox.askyesno = lambda *a, **k: True
|
||||
|
||||
# Die Vorschau oeffnet den PDF-Betrachter - im Pruefstand wird nur gemerkt, WAS
|
||||
# sie oeffnen wollte.
|
||||
# Im Pruflauf oeffnet das Programm nichts mehr (sonst stehen nach einem Lauf
|
||||
# dreissig PDF-Fenster offen). Geprueft wird der Pfad, den die Vorschau
|
||||
# zurueckgibt - und dass wirklich NICHTS aufgemacht wurde.
|
||||
geoeffnet = []
|
||||
A.os.startfile = lambda p, *a, **k: geoeffnet.append(p)
|
||||
|
||||
|
|
@ -81,10 +82,10 @@ f.update()
|
|||
nummer_vorher = f.r_nummer.get()
|
||||
zaehler_vorher = f.cfg.get("rechnung_zaehler")
|
||||
|
||||
f.vorschau_zeigen()
|
||||
pfad = f.vorschau_zeigen()
|
||||
|
||||
pruefe(len(geoeffnet) == 1, f"Vorschau oeffnet genau ein Blatt ({len(geoeffnet)})")
|
||||
pfad = geoeffnet[0] if geoeffnet else ""
|
||||
pruefe(bool(pfad), f"die Vorschau nennt ihr Blatt ({os.path.basename(str(pfad))})")
|
||||
pruefe(not geoeffnet, f"im Pruflauf wird KEIN Betrachter aufgemacht ({geoeffnet})")
|
||||
pruefe(os.path.exists(pfad), "Vorschau-PDF wurde geschrieben")
|
||||
pruefe(os.path.abspath(ordner) not in os.path.abspath(pfad),
|
||||
"Vorschau liegt NICHT im Rechnungsordner")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue