add: open generated files an folder on click

This commit is contained in:
trnq1ll0 committed 2026-06-10 16:05:19 +02:00
1 parent f4afd4b2e5
commit 0d390f79b4
1 file changed
+42 -3
+42 -3
View File
@@ -1,5 +1,7 @@
"""Tätigkeitsnachweis-Generator – Streamlit App."""
import os
import subprocess
import sys
from pathlib import Path
@@ -237,6 +239,18 @@ else:
if not st.session_state.input_validated:
st.info("Bitte zuerst eine gültige Input-Datei auswählen.")
# --- Hilfsfunktion zum Öffnen von Dateien/Ordnern ---
def open_path(path_str: str):
"""Öffnet eine Datei mit dem Standardprogramm oder einen Ordner im Dateimanager.
Funktioniert plattformübergreifend: macOS, Windows, Linux."""
if sys.platform == "win32":
os.startfile(path_str)
elif sys.platform == "darwin":
subprocess.run(["open", path_str])
else:
subprocess.run(["xdg-open", path_str])
# --- Generate Button ---
st.divider()
gen_col1, gen_col2, gen_col3 = st.columns([1, 1, 2])
@@ -267,8 +281,33 @@ if generate_clicked:
output_dir=output_dir,
filename_pattern=app_config.filename_pattern,
)
st.success(f"✅ {len(generated)} Tätigkeitsnachweise erstellt:")
for fpath in generated:
st.text(f"📄 {fpath.name}")
st.session_state.generated_files = generated
except Exception as e:
st.error(f"Fehler bei der Generierung: {e}")
# --- Generierte Dateien anzeigen (aus Session State, übersteht Reruns) ---
if "generated_files" in st.session_state and st.session_state.generated_files:
generated = st.session_state.generated_files
st.success(f"✅ {len(generated)} Tätigkeitsnachweise erstellt:")
for i, fpath in enumerate(generated):
col_file, col_open, col_folder = st.columns([0.78, 0.11, 0.11])
with col_file:
st.markdown(f"📄 `{fpath.name}`")
with col_open:
st.button(
"🔗 Öffnen",
key=f"open_file_{i}",
on_click=open_path,
args=(str(fpath),),
help="Datei mit Standardprogramm öffnen",
use_container_width=True,
)
with col_folder:
st.button(
"📂",
key=f"open_folder_{i}",
on_click=open_path,
args=(str(fpath.parent),),
help="Ordner im Finder öffnen",
use_container_width=True,
)