Update all

This commit is contained in:
sebastianserfling
2024-09-24 21:04:41 +02:00
parent 25af35f723
commit 9bde6e380b
8 changed files with 72 additions and 35 deletions
+27 -10
View File
@@ -1,10 +1,14 @@
import streamlit as st
import sqlite3
import pandas as pd
from datetime import datetime, timedelta
def fetch_data_from_db(db_path, table_name):
def fetch_data_from_db(db_path, table_name, start_date=None, end_date=None):
conn = sqlite3.connect(db_path)
query = f"SELECT * FROM {table_name}"
if table_name == "sync_results" and start_date and end_date:
query = f"SELECT * FROM {table_name} WHERE date BETWEEN '{start_date}' AND '{end_date}'"
else:
query = f"SELECT * FROM {table_name}"
df = pd.read_sql_query(query, conn)
conn.close()
return df
@@ -25,6 +29,9 @@ def delete_user_from_db(db_path, email):
cursor.execute('''
DELETE FROM users WHERE email = ?
''', (email,))
cursor.execute('''
DELETE FROM sync_results WHERE email = ?
''', (email,))
conn.commit()
conn.close()
@@ -82,6 +89,11 @@ def main():
emails.insert(0, "All")
selected_email = st.selectbox("Filter by Email:", options=emails)
# Add date range picker for filtering results by date
st.subheader("Filter by Date Range:")
start_date = st.date_input("Start Date", value=datetime.now().date())
end_date = st.date_input("End Date + 1 Tag", value=start_date + timedelta(days=1))
if selected_email == "All":
filtered_users_df = users_df
else:
@@ -91,16 +103,21 @@ def main():
# Display email transfer results if available
if not results_df.empty:
# Filter by email and date
if selected_email == "All":
st.write("Email Transfer Results:")
st.dataframe(results_df)
filtered_results_df = fetch_data_from_db(db_path, "sync_results", start_date=start_date, end_date=end_date)
else:
filtered_results_df = results_df[results_df['email'] == selected_email]
if not filtered_results_df.empty:
st.write(f"Email Transfer Results for {selected_email}:")
st.dataframe(filtered_results_df)
else:
st.write(f"No transfer data found for {selected_email}.")
filtered_results_df = fetch_data_from_db(db_path, "sync_results", start_date=start_date, end_date=end_date)
filtered_results_df = filtered_results_df[filtered_results_df['email'] == selected_email]
if not filtered_results_df.empty:
# Replace 'auth_failed' values with icons
filtered_results_df['auth_failed'] = filtered_results_df['auth_failed'].apply(lambda x: '' if x == 0 else '')
st.write(f"Email Transfer Results for {selected_email}:")
st.dataframe(filtered_results_df)
else:
st.write(f"No transfer data found for {selected_email} in the selected date range.")
else:
st.write("No email transfer results available.")