|
import streamlit as st |
|
from datetime import datetime |
|
import pandas as pd |
|
from pathlib import Path |
|
import os |
|
from pages.bot import create_vectorstore_and_stor |
|
|
|
|
|
st.set_page_config( |
|
page_title="Hochgeladene Dokumente", |
|
layout="wide", |
|
initial_sidebar_state="expanded", |
|
) |
|
|
|
make_button_smaller = """ |
|
<style> |
|
.stbutton { |
|
width: 20px; |
|
height: 19px; |
|
} |
|
</style> |
|
""" |
|
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) |
|
|
|
|
|
try: |
|
os.remove(file_path) |
|
st.success("Datei erfolgreich gelöscht.") |
|
except FileNotFoundError: |
|
st.warning("Datei nicht gefunden.") |
|
|
|
|
|
FILES.pop(index) |
|
create_vectorstore_and_store() |
|
|
|
def display_table(): |
|
hide_table_row_index = """ |
|
<style> |
|
thead tr th:first-child {display:none} |
|
tbody th {display:none} |
|
</style> |
|
""" |
|
|
|
st.markdown(hide_table_row_index, unsafe_allow_html=True) |
|
|
|
|
|
table1 = pd.DataFrame.from_dict(generate_files()) |
|
table = st.table(table1) |
|
return table1 |
|
|
|
|
|
|
|
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) |
|
|
|
|
|
|