Kerikim commited on
Commit
55c067f
Β·
1 Parent(s): d3d4c2d

elkay frontend app.py signup

Browse files
Files changed (1) hide show
  1. app.py +72 -27
app.py CHANGED
@@ -167,24 +167,48 @@ def main():
167
  st.error("⚠️ Please complete all required fields.")
168
  st.stop()
169
 
170
- conn = db.get_db_connection()
171
- if not conn:
172
- st.error("❌ Unable to connect to the database.")
173
- st.stop()
174
- try:
175
- ok = db.create_student(
176
- name=name, email=email, password=password,
177
- level_label=level, country_label=country
178
- )
179
- if ok:
 
 
 
180
  st.success("βœ… Signup successful! Please go to the **Login** page to continue.")
181
  st.session_state.current_page = "Login"
182
  st.session_state.signup_role = None
183
  st.rerun()
184
- else:
185
- st.error("❌ Failed to create user. Email may already exist.")
186
- finally:
187
- conn.close()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
  # Step 2b: Teacher form
190
  elif role == "Teacher":
@@ -201,23 +225,44 @@ def main():
201
  st.error("⚠️ Please complete all required fields.")
202
  st.stop()
203
 
204
- conn = db.get_db_connection()
205
- if not conn:
206
- st.error("❌ Unable to connect to the database.")
207
- st.stop()
208
- try:
209
- ok = db.create_teacher(
210
- title=title, name=name, email=email, password=password
211
- )
212
- if ok:
 
 
213
  st.success("βœ… Signup successful! Please go to the **Login** page to continue.")
214
  st.session_state.current_page = "Login"
215
  st.session_state.signup_role = None
216
  st.rerun()
217
- else:
218
- st.error("❌ Failed to create user. Email may already exist.")
219
- finally:
220
- conn.close()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
 
222
  # Allow changing role without going back manually
223
  if st.button("⬅️ Choose a different role"):
 
167
  st.error("⚠️ Please complete all required fields.")
168
  st.stop()
169
 
170
+ if DISABLE_DB:
171
+ # Call your backend Space instead of touching the DB
172
+ try:
173
+ payload = {
174
+ "role": "student",
175
+ "name": name.strip(),
176
+ "email": email.strip().lower(),
177
+ "password": password,
178
+ "country": country,
179
+ "level": level,
180
+ }
181
+ r = requests.post(f"{BACKEND}/auth/register", json=payload, timeout=15)
182
+ r.raise_for_status()
183
  st.success("βœ… Signup successful! Please go to the **Login** page to continue.")
184
  st.session_state.current_page = "Login"
185
  st.session_state.signup_role = None
186
  st.rerun()
187
+ except requests.HTTPError as e:
188
+ msg = e.response.text if hasattr(e, "response") and e.response is not None else str(e)
189
+ st.error(f"❌ Signup failed: {msg}")
190
+ except Exception as e:
191
+ st.error(f"❌ Signup failed: {e}")
192
+ else:
193
+ # Local DB path (unchanged)
194
+ conn = db.get_db_connection()
195
+ if not conn:
196
+ st.error("❌ Unable to connect to the database.")
197
+ st.stop()
198
+ try:
199
+ ok = db.create_student(
200
+ name=name, email=email, password=password,
201
+ level_label=level, country_label=country
202
+ )
203
+ if ok:
204
+ st.success("βœ… Signup successful! Please go to the **Login** page to continue.")
205
+ st.session_state.current_page = "Login"
206
+ st.session_state.signup_role = None
207
+ st.rerun()
208
+ else:
209
+ st.error("❌ Failed to create user. Email may already exist.")
210
+ finally:
211
+ conn.close()
212
 
213
  # Step 2b: Teacher form
214
  elif role == "Teacher":
 
225
  st.error("⚠️ Please complete all required fields.")
226
  st.stop()
227
 
228
+ if DISABLE_DB:
229
+ try:
230
+ payload = {
231
+ "role": "teacher",
232
+ "title": title.strip(),
233
+ "name": name.strip(),
234
+ "email": email.strip().lower(),
235
+ "password": password,
236
+ }
237
+ r = requests.post(f"{BACKEND}/auth/register", json=payload, timeout=15)
238
+ r.raise_for_status()
239
  st.success("βœ… Signup successful! Please go to the **Login** page to continue.")
240
  st.session_state.current_page = "Login"
241
  st.session_state.signup_role = None
242
  st.rerun()
243
+ except requests.HTTPError as e:
244
+ msg = e.response.text if hasattr(e, "response") and e.response is not None else str(e)
245
+ st.error(f"❌ Signup failed: {msg}")
246
+ except Exception as e:
247
+ st.error(f"❌ Signup failed: {e}")
248
+ else:
249
+ conn = db.get_db_connection()
250
+ if not conn:
251
+ st.error("❌ Unable to connect to the database.")
252
+ st.stop()
253
+ try:
254
+ ok = db.create_teacher(
255
+ title=title, name=name, email=email, password=password
256
+ )
257
+ if ok:
258
+ st.success("βœ… Signup successful! Please go to the **Login** page to continue.")
259
+ st.session_state.current_page = "Login"
260
+ st.session_state.signup_role = None
261
+ st.rerun()
262
+ else:
263
+ st.error("❌ Failed to create user. Email may already exist.")
264
+ finally:
265
+ conn.close()
266
 
267
  # Allow changing role without going back manually
268
  if st.button("⬅️ Choose a different role"):