Spaces:
Sleeping
Sleeping
import streamlit as st | |
from pymongo import MongoClient | |
import os | |
from dotenv import load_dotenv | |
load_dotenv() | |
import time | |
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID") | |
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY") | |
AWS_BUCKET_NAME = os.getenv("AWS_BUCKET_NAME") | |
MONGO_URI = os.getenv("MONGO_URI") | |
DB_NAME = os.getenv("DB_NAME") | |
COLLECTION_NAME = os.getenv("COMPANY_COLLECTION_NAME") | |
mongo_client = MongoClient(MONGO_URI) | |
db = mongo_client[DB_NAME] | |
collection = db[COLLECTION_NAME] | |
def upload_main_page(): | |
# | |
if st.button("Back",key="Back_button"): | |
st.session_state.page = "home" | |
st.rerun() | |
st.markdown("---") | |
col1, col2 = st.columns([1,6]) | |
with col1: | |
if st.button("Upload Image",key="upload_image_button"): | |
st.session_state.page="upload_image" | |
st.rerun() | |
# Placeholder for image upload function | |
with col2: | |
if st.button("View Images",key="view_image_button"): | |
st.session_state.page = "view_image" | |
st.rerun() | |
# Row 2: Buttons for PDF actions | |
col3, col4 = st.columns([1,6]) | |
with col3: | |
if st.button("Upload PDF",key="upload_pdf_button"): | |
st.session_state.page="upload_pdf" | |
st.rerun() | |
with col4: | |
if st.button("View PDFs",key="view_pdf_button"): | |
st.session_state.page="view_pdf" | |
st.rerun() | |
# Line break | |
st.markdown("---") | |
# Section for company description | |
st.subheader("Tell us about your company in a few lines") | |
# Fetch the "about_company" document from MongoDB | |
about_company_doc = collection.find_one({"type": "about_company"}) | |
if about_company_doc and "company_description" in about_company_doc: | |
# If company_description exists, show it and allow for updates | |
st.write("### Current Description") | |
st.write(about_company_doc["company_description"]) # Display current description (non-editable) | |
# Show an empty text box for new input | |
new_description = st.text_area("Enter new description to update", "") | |
if st.button("Update",key="update_company"): | |
# Update the company description in MongoDB | |
collection.update_one( | |
{"_id": about_company_doc["_id"]}, | |
{"$set": {"company_description": new_description}} | |
) | |
st.success("Company description updated successfully.") | |
time.sleep(3) | |
st.rerun() | |
else: | |
# If company_description does not exist, show an empty text box for initial input | |
new_description = st.text_area("Enter company description", "") | |
if st.button("Save",key="save_description"): | |
# Insert a new company description field in MongoDB | |
if about_company_doc: | |
# Update the existing document | |
collection.update_one( | |
{"_id": about_company_doc["_id"]}, | |
{"$set": {"company_description": new_description}} | |
) | |
else: | |
# Insert a new document if it doesn't exist | |
collection.insert_one({"type": "about_company", "company_description": new_description}) | |
st.success("Company description saved successfully.") | |
st.markdown("---") | |
# Section for adding and displaying tags | |
st.subheader("Manage Tags and Categories") | |
# Part 1: Tags | |
st.write("#### Add Tags") | |
# Fetch tags document | |
tags_doc = collection.find_one({"type": "tags"}) | |
current_tags = tags_doc["tags"] if tags_doc and "tags" in tags_doc else [] | |
# Display current tags with horizontal alignment and black-blue text color | |
if current_tags: | |
st.write("Current Tags:") | |
tag_html = " ".join([ | |
f"<span style='display: inline-block; padding: 5px 10px; margin: 5px; border-radius: 15px; background-color: #e0e0e0; color: #0000FF;'>{tag}</span>" | |
for tag in current_tags | |
]) | |
st.markdown(tag_html, unsafe_allow_html=True) | |
else: | |
st.write("No tags available.") | |
# Input box to add new tags | |
new_tags = st.text_input("Enter new tags separated by commas", "") | |
if st.button("Add Tags",key="add_tags"): | |
# Split the input tags by commas, strip whitespace, and remove any duplicates | |
tags_to_add = list(set([tag.strip() for tag in new_tags.split(",") if tag.strip()])) | |
# Update the MongoDB document with new tags | |
if tags_doc: | |
# Update the existing tags document | |
collection.update_one( | |
{"_id": tags_doc["_id"]}, | |
{"$addToSet": {"tags": {"$each": tags_to_add}}} | |
) | |
else: | |
# Insert a new tags document if it doesn't exist | |
collection.insert_one({"type": "tags", "tags": tags_to_add}) | |
st.success("Tags added successfully.") | |
st.rerun() # Refresh the page to display updated tags | |
# Part 2: Categories | |
st.write("#### Add Categories") | |
# Fetch categories document | |
categories_doc = collection.find_one({"type": "categories"}) | |
current_categories = categories_doc["categories"] if categories_doc and "categories" in categories_doc else [] | |
# Display current categories with horizontal alignment and black-blue text color | |
if current_categories: | |
st.write("Current Categories:") | |
category_html = " ".join([ | |
f"<span style='display: inline-block; padding: 5px 10px; margin: 5px; border-radius: 15px; background-color: #e0e0e0; color: #0000FF;'>{category}</span>" | |
for category in current_categories | |
]) | |
st.markdown(category_html, unsafe_allow_html=True) | |
else: | |
st.write("No categories available.") | |
# Input box to add new categories | |
new_categories = st.text_input("Enter new categories separated by commas", "") | |
if st.button("Add Categories",key="add_categories"): | |
# Split the input categories by commas, strip whitespace, and remove any duplicates | |
categories_to_add = list(set([category.strip() for category in new_categories.split(",") if category.strip()])) | |
# Update the MongoDB document with new categories | |
if categories_doc: | |
# Update the existing categories document | |
collection.update_one( | |
{"_id": categories_doc["_id"]}, | |
{"$addToSet": {"categories": {"$each": categories_to_add}}} | |
) | |
else: | |
# Insert a new categories document if it doesn't exist | |
collection.insert_one({"type": "categories", "categories": categories_to_add}) | |
st.success("Categories added successfully.") | |
st.rerun() # Refresh the page to display updated categories | |