File size: 2,140 Bytes
eef9e83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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