Spaces:
Running
Running
Update components/session_manager.py
Browse files
components/session_manager.py
CHANGED
|
@@ -125,19 +125,53 @@ def load_user_history_from_db():
|
|
| 125 |
print(f"❌ Error loading history from database: {e}")
|
| 126 |
st.session_state.user_history = []
|
| 127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 128 |
def clear_session():
|
| 129 |
-
"""Clear session state but preserve user identity and
|
| 130 |
-
preserved_keys = [
|
|
|
|
|
|
|
|
|
|
|
|
|
| 131 |
preserved = {k: st.session_state[k] for k in preserved_keys if k in st.session_state}
|
| 132 |
|
| 133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
|
| 135 |
# Restore preserved keys
|
| 136 |
for k, v in preserved.items():
|
| 137 |
st.session_state[k] = v
|
| 138 |
|
| 139 |
-
#
|
| 140 |
-
|
|
|
|
|
|
|
| 141 |
|
| 142 |
def update_session_state(**kwargs):
|
| 143 |
# Update all the session state values
|
|
|
|
| 125 |
print(f"❌ Error loading history from database: {e}")
|
| 126 |
st.session_state.user_history = []
|
| 127 |
|
| 128 |
+
# def clear_session():
|
| 129 |
+
# """Clear session state but preserve user identity and history"""
|
| 130 |
+
# preserved_keys = ['user_id', 'current_page'] # REMOVED 'user_history' from preserved keys
|
| 131 |
+
# preserved = {k: st.session_state[k] for k in preserved_keys if k in st.session_state}
|
| 132 |
+
|
| 133 |
+
# st.session_state.clear()
|
| 134 |
+
|
| 135 |
+
# # Restore preserved keys
|
| 136 |
+
# for k, v in preserved.items():
|
| 137 |
+
# st.session_state[k] = v
|
| 138 |
+
|
| 139 |
+
# # Re-initialize defaults AND reload history
|
| 140 |
+
# initialize_session_state()
|
| 141 |
+
|
| 142 |
def clear_session():
|
| 143 |
+
"""Clear session state but preserve user identity, auth, and navigation"""
|
| 144 |
+
preserved_keys = [
|
| 145 |
+
'user_id', 'username', 'fullname', 'authenticated',
|
| 146 |
+
'current_page', 'selected_model', 'user_history'
|
| 147 |
+
]
|
| 148 |
+
|
| 149 |
preserved = {k: st.session_state[k] for k in preserved_keys if k in st.session_state}
|
| 150 |
|
| 151 |
+
# Clear only content-related session state, not auth
|
| 152 |
+
keys_to_clear = [
|
| 153 |
+
'user_type', 'original_prompt', 'generated_output', 'feedback_given',
|
| 154 |
+
'regenerated', 'content_source', 'student_level', 'pdf_export_data',
|
| 155 |
+
'tutor_topic', 'tutor_content_type', 'feedback_clarity', 'feedback_depth',
|
| 156 |
+
'feedback_complexity', 'feedback_comments', 'original_filename',
|
| 157 |
+
'saved_to_history', 'from_history', 'showing_regeneration_prompt',
|
| 158 |
+
'pending_model_switch', 'previous_model', 'regenerate_with_new_model',
|
| 159 |
+
'scrolled_to_top', 'regeneration_count', 'regeneration_type',
|
| 160 |
+
'previous_feedback_given', 'pending_regeneration', 'show_adaptation_message'
|
| 161 |
+
]
|
| 162 |
+
|
| 163 |
+
for key in keys_to_clear:
|
| 164 |
+
if key in st.session_state:
|
| 165 |
+
del st.session_state[key]
|
| 166 |
|
| 167 |
# Restore preserved keys
|
| 168 |
for k, v in preserved.items():
|
| 169 |
st.session_state[k] = v
|
| 170 |
|
| 171 |
+
# Ensure current page is generator for new content
|
| 172 |
+
st.session_state.current_page = "generator"
|
| 173 |
+
|
| 174 |
+
print("✅ Session cleared for new content, auth preserved")
|
| 175 |
|
| 176 |
def update_session_state(**kwargs):
|
| 177 |
# Update all the session state values
|