Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from pymongo import MongoClient | |
| import os | |
| from dotenv import load_dotenv | |
| from datetime import datetime | |
| # Load environment variables | |
| load_dotenv() | |
| MONGO_URI = os.getenv("MONGO_URI") | |
| DB_NAME = os.getenv("DB_NAME") | |
| COLLECTION_NAME = os.getenv("COLLECTION_NAME") | |
| mongo_client = MongoClient(MONGO_URI) | |
| db = mongo_client[DB_NAME] | |
| collection = db[COLLECTION_NAME] | |
| def format_date(timestamp): | |
| """Convert timestamp to a readable date format.""" | |
| return datetime.fromtimestamp(timestamp).strftime("%B %d, %Y") | |
| # Custom CSS to control image and expander container width and styling | |
| def view_excel(): | |
| if st.button("Back"): | |
| st.session_state.page = "home" | |
| st.rerun() | |
| st.title("Your Uploaded Images") | |
| # Fetch all uploaded images from MongoDB | |
| images = list(collection.find({"filetype": {"$in": ["excel", "csv"]},"status":"processed"})) | |
| if not images: | |
| st.write("You have not uploaded any Excel yet.") | |
| return | |
| # Display images in a grid (4 images per row) | |
| cols = st.columns(4) | |
| for idx, image in enumerate(images): | |
| col = cols[idx % 4] | |
| with col: | |
| # Container for each image and its expander | |
| # Expander for image details | |
| with st.expander("View Excel Details"): | |
| st.write(f"**File Name:** {image.get('name', 'N/A')}") | |
| st.write(f"**Date Uploaded:** {format_date(image.get('upload_date', datetime.now().timestamp()))}") | |
| st.markdown( | |
| f"<a href='{image['object_url']}' class='download-link' download>Download File</a>", | |
| unsafe_allow_html=True | |
| ) | |
| if st.button("View Table Analysis",key=f"image_analysis_{idx}"): | |
| st.session_state.page="view_excel_analysis" | |
| st.session_state.excel_url=image['object_url'] | |
| st.rerun() | |
| # Move to a new row after every 4 images | |
| if (idx + 1) % 4 == 0: | |
| st.write("") # Line break to move to the next row | |