import streamlit as st from db.crud import read, reset_feedback_in_db from views.questions_screen import questions_screen def continue_survey_screen(data): """Screen for existing users to continue or restart their survey.""" st.title("Resume Your Survey") st.write("Welcome back! Would you like to continue from where you left off or restart the survey?") # Fetch user progress from Firebase saved_state = read(st.session_state.username) col1, col2 = st.columns(2) with col1: if st.button("Continue"): if saved_state: # Set session state values based on saved progress st.session_state.current_index = saved_state.get("current_index", 0) st.session_state.responses = saved_state.get("responses", []) # Find the last answered config_id in responses last_config_id = None if st.session_state.responses: last_config_id = st.session_state.responses[-1].get("config_id") # Set the index to the matching config_id if last_config_id is not None: matching_index = data[data["config_id"] == last_config_id].index if not matching_index.empty: st.session_state.current_index = matching_index[0]+1 st.success("Resuming your survey!") # Set survey_continued flag to True only when there's saved progress st.session_state.survey_continued = True print(st.session_state.current_index) st.rerun() # questions_screen(data) else: st.warning("No previous progress found. Starting a new survey.") st.session_state.current_index = 0 st.session_state.responses = [] with col2: if st.button("Restart"): st.session_state.current_index = 0 st.session_state.responses = [] st.success("Survey restarted!") # Reset Firebase data for the user reset_feedback_in_db(st.session_state.username) st.rerun()