yuki-816 commited on
Commit
d8239f6
·
1 Parent(s): 0ee6881

Upload streamlit_app.py

Browse files
Files changed (1) hide show
  1. streamlit_app.py +60 -22
streamlit_app.py CHANGED
@@ -96,7 +96,6 @@ def survey(user_name):
96
  title = user_name + '_survey'
97
  return ss.StreamlitSurvey(title)
98
 
99
-
100
  # connect to/create Deta user database
101
  db_key = st.secrets["deta_key"]
102
  deta = Deta(db_key)
@@ -118,20 +117,23 @@ authenticator.validator = Validator()
118
  init_sidebar = st.sidebar.empty()
119
 
120
  with init_sidebar:
121
- page = option_menu(None,
122
  ["Login", 'Sign Up'],
123
  icons=['lightbulb-fill', 'lightbulb'],
124
  menu_icon="cast",
125
  default_index=0,
126
  styles={})
127
 
128
- if page == 'Login':
129
  st.cache_data.clear()
130
  name, authentication_status, username = authenticator.login('Login', 'main')
131
  if authentication_status:
132
  init_sidebar.empty()
133
  app_sidebar = st.sidebar.empty()
134
  # st.sidebar.write(f'Welcome {name}')
 
 
 
135
  with app_sidebar:
136
  # 'History'
137
  # 'folder2',
@@ -142,7 +144,10 @@ if page == 'Login':
142
  styles={})
143
  authenticator.logout('Logout', 'sidebar', key='unique_key')
144
  # Fetch user data from the database
 
145
  user_data = get_user_data(username)
 
 
146
  if page == "Generate Plain Language Summary":
147
 
148
  st.title("Generate Plain Language Summary")
@@ -279,7 +284,7 @@ if page == 'Login':
279
  if 'questionnaire_response' not in st.session_state:
280
  st.session_state['questionnaire_response'] = {}
281
  # print(st.session_state['questionnaire_response'])
282
- page_number = 10
283
  survey_pages = survey.pages(page_number,
284
  on_submit=lambda: update_questionnaire_response(
285
  st.session_state['questionnaire_response'], username))
@@ -353,6 +358,54 @@ if page == 'Login':
353
  )
354
  st.session_state['questionnaire_response']['paper_familiarity'] = paper_familiarity
355
  elif survey_pages.current == 6:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
  st.write(
357
  "#### How much do you use technology (computers, cell phones, tablets, GPS, internet, etc.)?")
358
  st.markdown('''
@@ -371,7 +424,7 @@ if page == 'Login':
371
  label_visibility="collapsed",
372
  )
373
  st.session_state['questionnaire_response']['tech_usage'] = tech_usage
374
- elif survey_pages.current == 7:
375
  st.write("#### How often do you read or watch/listen to the news?")
376
  news_read = survey.radio(
377
  label="news_read",
@@ -382,7 +435,7 @@ if page == 'Login':
382
  horizontal=False,
383
  )
384
  st.session_state['questionnaire_response']['news_read'] = news_read
385
- elif survey_pages.current == 8:
386
  st.write("#### How many books do you read or listen to a month?")
387
  books_read = survey.radio(
388
  label="books_read",
@@ -392,25 +445,10 @@ if page == 'Login':
392
  horizontal=True,
393
  )
394
  st.session_state['questionnaire_response']['books_read'] = books_read
395
- elif survey_pages.current == 9:
396
- st.write("#### What is the primary language spoken in your home? (click from the list and others)")
397
- languages = ['English', 'Spanish', ]
398
- language_options = {}
399
- for i in range(len(languages)):
400
- language_options[languages[i]] = survey.checkbox(languages[i])
401
- language_spoken = []
402
- for language in language_options:
403
- if language_options[language]:
404
- language_spoken.append(language)
405
- other_language = survey.text_input('Other')
406
-
407
- if other_language:
408
- language_spoken.append(other_language)
409
- st.session_state['questionnaire_response']['language_spoken'] = language_spoken
410
 
411
  elif authentication_status is False:
412
  st.error('Username or Password is incorrect', icon="⚠️")
413
- elif page == 'Sign Up':
414
  try:
415
  if authenticator.register_user('Register user', preauthorization=False):
416
  st.success('User registered successfully')
 
96
  title = user_name + '_survey'
97
  return ss.StreamlitSurvey(title)
98
 
 
99
  # connect to/create Deta user database
100
  db_key = st.secrets["deta_key"]
101
  deta = Deta(db_key)
 
117
  init_sidebar = st.sidebar.empty()
118
 
119
  with init_sidebar:
120
+ init_page = option_menu(None,
121
  ["Login", 'Sign Up'],
122
  icons=['lightbulb-fill', 'lightbulb'],
123
  menu_icon="cast",
124
  default_index=0,
125
  styles={})
126
 
127
+ if init_page == 'Login':
128
  st.cache_data.clear()
129
  name, authentication_status, username = authenticator.login('Login', 'main')
130
  if authentication_status:
131
  init_sidebar.empty()
132
  app_sidebar = st.sidebar.empty()
133
  # st.sidebar.write(f'Welcome {name}')
134
+ if 'current_page_name' not in st.session_state:
135
+ st.session_state.current_page_name = "Generate Plain Language Summary" # 设置默认页面
136
+
137
  with app_sidebar:
138
  # 'History'
139
  # 'folder2',
 
144
  styles={})
145
  authenticator.logout('Logout', 'sidebar', key='unique_key')
146
  # Fetch user data from the database
147
+
148
  user_data = get_user_data(username)
149
+ # print('current page: ', page)
150
+
151
  if page == "Generate Plain Language Summary":
152
 
153
  st.title("Generate Plain Language Summary")
 
284
  if 'questionnaire_response' not in st.session_state:
285
  st.session_state['questionnaire_response'] = {}
286
  # print(st.session_state['questionnaire_response'])
287
+ page_number = 12
288
  survey_pages = survey.pages(page_number,
289
  on_submit=lambda: update_questionnaire_response(
290
  st.session_state['questionnaire_response'], username))
 
358
  )
359
  st.session_state['questionnaire_response']['paper_familiarity'] = paper_familiarity
360
  elif survey_pages.current == 6:
361
+ st.write("#### what is your level of english proficiency?")
362
+ english_proficiency = st.slider("English Proficiency (1-5):", min_value=1, max_value=5, value=1)
363
+ st.session_state['questionnaire_response']['english_proficiency'] = english_proficiency
364
+
365
+ elif survey_pages.current == 7:
366
+ st.write("#### What is the primary language spoken in your home? (click from the list and others)")
367
+ languages = ['English', 'Spanish', ]
368
+ language_options = {}
369
+ for i in range(len(languages)):
370
+ language_options[languages[i]] = survey.checkbox(languages[i])
371
+ language_spoken = []
372
+ for language in language_options:
373
+ if language_options[language]:
374
+ language_spoken.append(language)
375
+ other_language = survey.text_input('Other')
376
+
377
+ if other_language:
378
+ language_spoken.append(other_language)
379
+ st.session_state['questionnaire_response']['language_spoken'] = language_spoken
380
+
381
+ elif survey_pages.current == 8:
382
+ st.write("#### Do you speak other languages? How fluent are you in each language?")
383
+ language_fluency = {}
384
+ language_index = 1
385
+ col1, col2 = st.columns([3, 2])
386
+
387
+ with col1:
388
+ other_language = survey.text_input(f'Language {"#" + str(language_index)}')
389
+ with col2:
390
+ fluency = survey.selectbox(f'Fluency {"#" + str(language_index)}',
391
+ options=["", "Beginner", "Intermediate", "Advanced", "Native"],
392
+ )
393
+ if other_language and fluency:
394
+ language_fluency.update({other_language: fluency})
395
+
396
+ while other_language:
397
+ language_index += 1
398
+ with col1:
399
+ other_language = survey.text_input(f'Language {"#" + str(language_index)}')
400
+ with col2:
401
+ fluency = survey.selectbox(f'Fluency {"#" + str(language_index)}',
402
+ options=["", "Beginner", "Intermediate", "Advanced", "Native"],
403
+ )
404
+ if other_language and fluency:
405
+ language_fluency.update({other_language: fluency})
406
+ st.session_state['questionnaire_response']['other_language'] = language_fluency
407
+
408
+ elif survey_pages.current == 9:
409
  st.write(
410
  "#### How much do you use technology (computers, cell phones, tablets, GPS, internet, etc.)?")
411
  st.markdown('''
 
424
  label_visibility="collapsed",
425
  )
426
  st.session_state['questionnaire_response']['tech_usage'] = tech_usage
427
+ elif survey_pages.current == 10:
428
  st.write("#### How often do you read or watch/listen to the news?")
429
  news_read = survey.radio(
430
  label="news_read",
 
435
  horizontal=False,
436
  )
437
  st.session_state['questionnaire_response']['news_read'] = news_read
438
+ elif survey_pages.current == 11:
439
  st.write("#### How many books do you read or listen to a month?")
440
  books_read = survey.radio(
441
  label="books_read",
 
445
  horizontal=True,
446
  )
447
  st.session_state['questionnaire_response']['books_read'] = books_read
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
 
449
  elif authentication_status is False:
450
  st.error('Username or Password is incorrect', icon="⚠️")
451
+ elif init_page == 'Sign Up':
452
  try:
453
  if authenticator.register_user('Register user', preauthorization=False):
454
  st.success('User registered successfully')