import streamlit as st
import requests
import json
# import web3
total_number_pages = 2
placeholder_buttons = None
Q3_radio_options = ["Fresh","Soph","Jr","Sr","N/A"]
# Function that records radio element changes
def radio_change(element, state, key):
st.session_state[state] = element.index(st.session_state[key]) # Setting previously selected option
def multi_change(element, state, key):
st.session_state[state] = []
for selected_option in st.session_state[key]:
st.session_state[state].append(selected_option)
# Function that disables the last button while data is uploaded to IPFS
def button_disable():
st.session_state['disabled'] = True
def answer_change(state, key):
st.session_state[state] = st.session_state[key]
st.set_page_config(page_title='IPFS-Based Survey',)
st.title('test survey')
st.markdown("", unsafe_allow_html=True)
st.markdown("", unsafe_allow_html=True)
if "current_page" not in st.session_state:
st.session_state["current_page"] = 1
st.session_state["Q1"] = None
st.session_state["Q2"] = None
st.session_state["Q3"] = None
st.session_state["disabled"] = False
# Page 1; Video
if st.session_state["current_page"] == 1:
st.markdown("""
this is a test
""", unsafe_allow_html=True)
st.video("https://www.youtube.com/watch?v=aJb6Dov0jlM")
st.text_area(label = "whats your favorite color",
value= "" if st.session_state["Q1"] == None else st.session_state["Q1"],
key = 'Q1_text',
on_change = answer_change,
args = ( "Q1", "Q1_text",))
# The code below changes the font size of the above radio's label.
st.markdown("""
""", unsafe_allow_html=True)
st.slider(label="how confident are you in your ability to skate",min_value=0,max_value=10,
value= 5 if st.session_state["Q2"] == None else st.session_state["Q2"],
key = "Q2_slider",
on_change = answer_change,
args = ("Q2", "Q2_slider",))
# The code below changes the font size of the above radio's label.
st.markdown("""
""", unsafe_allow_html=True)
placeholder = st.empty()
if st.button('Next', key='next_button_page_1'):
all_answered = True
if st.session_state["Q1"] == None:
all_answered = False
if st.session_state["Q2"] == None:
all_answered = False
if all_answered:
st.session_state["current_page"] += 1
st.rerun()
else:
with placeholder.container():
st.warning("Please answer all the questions on this page.", icon="⚠️")
st.progress(st.session_state["current_page"]/total_number_pages, text="Progress")
elif st.session_state["current_page"] == 2:
st.radio(label = "what year are you in college",
options = Q3_radio_options,
index = None if st.session_state["Q3"] == None else st.session_state["Q3"],
key = 'Q3_radio',
on_change = radio_change,
args = (Q3_radio_options, "Q3", "Q3_radio",))
# The code below changes the font size of the above radio's label.
st.markdown("""
""", unsafe_allow_html=True)
placeholder = st.empty()
col1, col2 = st.columns(2)
with col1:
if st.button('Back'):
st.session_state["current_page"] -= 1
st.rerun()
with col2:
if st.button('Next'):
all_answered = True
if st.session_state["Q3"] == None:
all_answered = False
if all_answered:
st.session_state["current_page"] += 1
st.rerun()
else:
with placeholder.container():
st.warning("Please answer all the questions on this page.", icon="⚠️")
st.progress(st.session_state["current_page"]/total_number_pages, text="Progress")