rafatjah's picture
Spelling fix pole to poll
0d937c2
raw
history blame
2.34 kB
import utils
import streamlit as st
import plotly.express as px
import pandas as pd
def exit_poll():
set_votes([])
del st.session_state["selected_poll_name"]
def set_votes(votes=[]):
poll = utils.find_poll(st.session_state["selected_poll_name"])
uuid = st.session_state["UUID"]
poll["votes"][uuid] = votes
def vote():
votes = st.session_state.get("vote_selected", [])
set_votes(votes)
def load_voting():
st.multiselect(
"How do you feel?",
utils.get_options(),
[],
on_change=vote,
key="vote_selected")
def is_admin():
password = st.session_state.get("selected_poll_admin_password", "")
poll = utils.find_poll(st.session_state["selected_poll_name"])
return poll["admin_password"] == password
def clear_votes_section():
poll = utils.find_poll(st.session_state["selected_poll_name"])
poll["votes"] = {}
def delete_poll():
utils.load_polls().remove(utils.find_poll(st.session_state["selected_poll_name"]))
del st.session_state["selected_poll_name"]
def load_votes():
selected_poll_name = st.session_state["selected_poll_name"]
poll = utils.find_poll(selected_poll_name)
votes = {x: 0 for x in utils.get_options()}
votes_count = 0
users_count = 0
for _,user_votes in poll["votes"].items():
users_count +=1
for vote in user_votes:
votes_count +=1
if vote in votes:
votes[vote] += 1
else:
votes[vote] = 1
df = pd.DataFrame(list(votes.items()), columns=['Status', 'Count'])
if df["Count"].sum() == 0:
st.warning("No wotes yet!")
else:
st.success(f"Users:{users_count} | Votes:{votes_count}")
fig = px.pie(df, values='Count', names='Status', title="Audiance Feedback",)
st.plotly_chart(fig)
st.write(df)
st.button("Clear Votes", on_click=clear_votes_section, use_container_width=True)
st.button("Delete Poll", on_click=delete_poll, use_container_width=True)
def load():
selected_poll_name = st.session_state["selected_poll_name"]
columns = st.columns(2)
with columns[0]:
st.button("Exit", on_click=exit_poll)
with columns[1]:
st.button("Refresh")
st.title(selected_poll_name)
if not is_admin():
load_voting()
else:
load_votes()