import streamlit as st from datetime import datetime import pandas as pd from pathlib import Path import os from pages.llm import create_vectorstore_and_store st.set_page_config( page_title="Hochgeladene Dokumente", layout="wide", initial_sidebar_state="expanded", ) make_button_smaller = """ """ st.markdown(make_button_smaller, unsafe_allow_html=True) st.markdown("# Hochgeladene Dokumente") st.sidebar.markdown("# Hochgeladene Dokumente") field_names = ['Index', 'Titel', 'Hochladezeitpunkt'] FILES = [] def newIndex(): lastIndex = len(FILES) newIndex = lastIndex + 1 return newIndex def generate_files(): folder = './files' files = os.listdir(folder) for file in files: file_path = Path(folder, file) index = newIndex() title = file upload_time = os.path.getctime(Path(folder, file)) upload_time = datetime.fromtimestamp(upload_time).strftime("%d.%m.%Y - %H:%M:%S") if os.path.isfile(file_path): file_info = { "Index": index, "Titel": title, "Hochladezeitpunkt": upload_time } FILES.append(file_info) return FILES def delete_row_and_file(index): folder = './files' file_name = FILES[index]['Titel'] file_path = Path(folder, file_name) # Delete the file try: os.remove(file_path) st.success("Datei erfolgreich gelöscht.") except FileNotFoundError: st.warning("Datei nicht gefunden.") # Drop the row from the DataFrame FILES.pop(index) create_vectorstore_and_store() def display_table(): hide_table_row_index = """ """ # Inject CSS with Markdown st.markdown(hide_table_row_index, unsafe_allow_html=True) # Display a static table table1 = pd.DataFrame.from_dict(generate_files()) table = st.table(table1) return table1 #.style.format(subset=['Titel'])) col1, col2 = st.columns([0.7, 0.3]) with col1: display_table() with col2: for index in range(len(FILES)): delete_button = st.button("Löschen", key = index) if delete_button: delete_row_and_file(index)