File size: 1,781 Bytes
6eb7feb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import traceback
from lib.common.database_support import add_user_to_excel, get_user_by_id, update_user_in_excel


def render_user_profile(): 
    try:
        excel_file = st.session_state.get("excel_file", "Error Not Found")

        if excel_file == "Error Not Found":
            raise Exception("Error Not Found")

        st.title("User Profile")
        
        user_id = st.session_state.get("user_id")
        if not user_id:
            st.warning("Please fill in your profile information to continue.")
            user_data = {'name': '', 'email': '', 'company': '', 'role': ''}
        else:
            user_data = get_user_by_id(excel_file, user_id)

        with st.form("user_form"):
            name = st.text_input("Name", value=user_data['name'])
            email = st.text_input("Email", value=user_data['email'])
            company = st.text_input("Company", value=user_data['company'])
            role = st.text_input("Role", value=user_data['role'])
            submitted = st.form_submit_button("Save Profile")
            
            if submitted:
                updated_user_data = {'name': name, 'email': email, 'company': company, 'role': role}
                if user_id:
                    update_user_in_excel(excel_file, user_id, updated_user_data)
                    st.success("Profile updated successfully!")
                else:
                    user_id = add_user_to_excel(excel_file, updated_user_data)
                    st.session_state['user_id'] = user_id
                    st.success("Profile saved! You can now access other features.")
                st.session_state['user_email'] = email
                st.rerun()

    except Exception as err:
        traceback.print_exc()
        print(err)