JSenkCC commited on
Commit
318667f
·
verified ·
1 Parent(s): 26f9b65

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -8
app.py CHANGED
@@ -4,6 +4,7 @@ import hashlib
4
  import os
5
  import zipfile
6
  from git import Repo
 
7
 
8
 
9
  # Database setup
@@ -107,11 +108,10 @@ def workspace_page():
107
  os.makedirs(user_folder, exist_ok=True)
108
 
109
  # Refresh project list dynamically
110
- if "projects" not in st.session_state:
111
- st.session_state.projects = [d for d in os.listdir(user_folder) if os.path.isdir(os.path.join(user_folder, d))]
112
 
113
  # Display "Projects" dropdown
114
- selected_project = st.sidebar.selectbox("Projects", ["Select a project"] + st.session_state.projects)
115
 
116
  if selected_project != "Select a project":
117
  st.session_state.current_project = selected_project
@@ -157,8 +157,8 @@ def workspace_page():
157
  st.success(f"File {uploaded_file.name} saved successfully!")
158
 
159
  st.success(f"Project '{project_name}' uploaded successfully!")
160
- # Update the projects list immediately
161
- st.session_state.projects.append(project_name)
162
 
163
  elif action == "Clone GitHub Repository":
164
  st.subheader("Clone GitHub Repository")
@@ -172,12 +172,11 @@ def workspace_page():
172
  try:
173
  Repo.clone_from(repo_url, project_folder)
174
  st.success(f"Project '{project_name}' cloned successfully!")
175
- # Update the projects list immediately
176
- st.session_state.projects.append(project_name)
177
  except Exception as e:
178
  st.error(f"Failed to clone repository: {e}")
179
 
180
-
181
  def project_view_page():
182
  # Sidebar with logout and return buttons
183
  st.sidebar.title(f"Project: {st.session_state.current_project}")
 
4
  import os
5
  import zipfile
6
  from git import Repo
7
+ from streamlit.runtime.scriptrunner import RerunException
8
 
9
 
10
  # Database setup
 
108
  os.makedirs(user_folder, exist_ok=True)
109
 
110
  # Refresh project list dynamically
111
+ projects = [d for d in os.listdir(user_folder) if os.path.isdir(os.path.join(user_folder, d))]
 
112
 
113
  # Display "Projects" dropdown
114
+ selected_project = st.sidebar.selectbox("Projects", ["Select a project"] + projects)
115
 
116
  if selected_project != "Select a project":
117
  st.session_state.current_project = selected_project
 
157
  st.success(f"File {uploaded_file.name} saved successfully!")
158
 
159
  st.success(f"Project '{project_name}' uploaded successfully!")
160
+ # Trigger a rerun to update the dropdown
161
+ raise RerunException
162
 
163
  elif action == "Clone GitHub Repository":
164
  st.subheader("Clone GitHub Repository")
 
172
  try:
173
  Repo.clone_from(repo_url, project_folder)
174
  st.success(f"Project '{project_name}' cloned successfully!")
175
+ # Trigger a rerun to update the dropdown
176
+ raise RerunException
177
  except Exception as e:
178
  st.error(f"Failed to clone repository: {e}")
179
 
 
180
  def project_view_page():
181
  # Sidebar with logout and return buttons
182
  st.sidebar.title(f"Project: {st.session_state.current_project}")