Spaces:
Sleeping
Sleeping
| """Quick account addition component for Streamlit""" | |
| import streamlit as st | |
| from typing import Dict, Any | |
| def show_quick_account_form(db_service) -> None: | |
| """Display quick account addition form""" | |
| with st.expander("➕ Add New Account"): | |
| with st.form("quick_account_form"): | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| name = st.text_input("Account Name*", key="account_name") | |
| industry = st.selectbox( | |
| "Industry*", | |
| ["Technology", "Healthcare", "Financial Services", | |
| "Manufacturing", "Retail", "Other"] | |
| ) | |
| website = st.text_input("Website") | |
| with col2: | |
| annual_revenue = st.number_input( | |
| "Annual Revenue ($M)", | |
| min_value=0.0, | |
| format="%f" | |
| ) | |
| employee_count = st.number_input( | |
| "Employee Count", | |
| min_value=1, | |
| step=1 | |
| ) | |
| status = st.selectbox( | |
| "Status", | |
| ["active", "prospect", "inactive"], | |
| index=0 | |
| ) | |
| submitted = st.form_submit_button("Add Account") | |
| if submitted: | |
| if not name or not industry: | |
| st.error("Please fill in all required fields") | |
| return | |
| # Create account data | |
| account_data = { | |
| 'name': name, | |
| 'industry': industry, | |
| 'website': website, | |
| 'annual_revenue': annual_revenue, | |
| 'employee_count': employee_count, | |
| 'status': status, | |
| 'account_owner_id': st.session_state.user['id'], | |
| 'region': st.session_state.user.get('region', 'North') | |
| } | |
| # Add account | |
| try: | |
| account_id = db_service.add_account(account_data) | |
| st.success(f"Account '{name}' added successfully!") | |
| # Trigger page refresh | |
| st.rerun() | |
| except Exception as e: | |
| st.error(f"Error adding account: {str(e)}") |