Kopflogo, Bau an einer Stelle, Startprobe fuer die EXE
Logo Das Programmlogo (Wolke mit Paragraphenzeichen) steht jetzt rechts in der Kopfleiste - damit sich die beiden Werkzeuge auf einen Blick unterscheiden. bauen.py Der Weg von der Quelle zur Setup-Datei war eine Folge von Befehlen, die jemand von Hand eintippen musste. Wer einen Schritt vergisst, liefert eine Setup-Datei mit einer alten EXE aus - und sieht es ihr nicht an. Jetzt ist es ein Befehl, die Nummer kommt aus version.py, und am Ende stehen die SHA256-Summen fuer den Release-Text. pruef_start_exe.py Prueft, was kein anderer Pruefstand prueft: ob die GEBAUTE EXE ein sichtbares Fenster zeigt. Alle uebrigen fahren das Programm aus der Quelle, dort trat der Fehler nie auf. pruef_einzelinstanz.py wieder gruen Der Erprobungshinweis haette in jedem der drei Starts ein echtes Fenster geoeffnet - in einem eigenen Prozess laesst sich kein Dialog abfangen, es klickt niemand. Geprueft wird dort die SPERRE, nicht der Hinweis (der hat einen eigenen Pruefstand). Die Kenntnisnahme wird deshalb vorher eingetragen, und zwar mit genau dem Code, den auch der Klick auf "Ja" ausfuehrt. Das trifft nur die Kopie im Temp-Ordner: im echten Journal entsteht keine Zustimmung, die niemand gegeben hat. Aufgeraeumt Beherbergungssteuer.exe und die gleichnamige .spec sind raus - das Programm heisst jetzt anders. Gebaute Dateien gehoeren ins Release, nicht ins Repo; die .spec-Dateien dagegen schon. Fassung 1.8.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V4t48uxDok5rJXhC9bX1Ax
This commit is contained in:
parent
b9094e7ebb
commit
96aa51ac22
17 changed files with 688 additions and 27 deletions
|
|
@ -67,6 +67,47 @@ for name in os.listdir(HIER):
|
|||
shutil.copy(os.path.join(HIER, name), os.path.join(prog, name))
|
||||
|
||||
|
||||
# Auch die Beilagen mitnehmen - ohne assets/ faende das Programm sein Logo
|
||||
# nicht. Das stuerzt zwar nicht ab, aber ein Pruefstand soll das Programm
|
||||
# fahren, wie es ausgeliefert wird, nicht eine abgespeckte Fassung.
|
||||
for name in ("assets",):
|
||||
quelle = os.path.join(HIER, name)
|
||||
if os.path.isdir(quelle):
|
||||
shutil.copytree(quelle, os.path.join(prog, name))
|
||||
|
||||
|
||||
# Der Erprobungshinweis wuerde in JEDEM dieser drei Starts ein echtes Fenster
|
||||
# oeffnen. Hier laeuft das Programm als eigener Prozess - da laesst sich kein
|
||||
# Dialog abfangen, es klickt niemand, und der Pruefstand liefe in die
|
||||
# Reissleine. Geprueft wird an dieser Stelle die SPERRE; der Hinweis hat seinen
|
||||
# eigenen Pruefstand (pruef_hinweis.py).
|
||||
#
|
||||
# Also wird die Kenntnisnahme vorher eingetragen - mit genau dem Code, den auch
|
||||
# der Klick auf "Ja" ausfuehrt (hinweis.vermerken auf die Einstellungstabelle).
|
||||
# Nichts nachgebaut, nichts von Hand ins SQL geschrieben.
|
||||
#
|
||||
# Das trifft NUR die Kopie im Temp-Ordner: aus der Quelle heraus liegt der
|
||||
# Datenordner neben app.py (ablage.daten_ordner()). Im echten Journal des
|
||||
# Betriebs entsteht dadurch keine Zustimmung, die niemand gegeben hat.
|
||||
def hinweis_vorab_eintragen():
|
||||
import db
|
||||
import hinweis
|
||||
journal = db.Journal(os.path.join(prog, "journal.sqlite3"))
|
||||
|
||||
class Ablage:
|
||||
def get(self, schluessel, standard=""):
|
||||
return journal.hole(schluessel, standard)
|
||||
|
||||
def __setitem__(self, schluessel, wert):
|
||||
journal.setze(schluessel, str(wert))
|
||||
|
||||
hinweis.vermerken(Ablage())
|
||||
print(f" (Kenntnisnahme in der Kopie vermerkt, Fassung {hinweis.FASSUNG})")
|
||||
|
||||
|
||||
hinweis_vorab_eintragen()
|
||||
|
||||
|
||||
def starte():
|
||||
# --test: kein Erststart-Dialog nach dem gemeinsamen Ordner. Die Sperre
|
||||
# selbst greift unabhaengig davon - genau die wird hier geprueft.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue