add: open generated files an folder on click
This commit is contained in:
1 parent
f4afd4b2e5
commit
0d390f79b4
1 file changed
+42
-3
@@ -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,
|
||||
)
|
||||
Reference in new issue
Block a user