| import streamlit as st |
| from datetime import datetime |
| import os |
| from get_next_standup_taker import get_next_standup_taker, team_members |
| from datasets import load_dataset, load_metric |
|
|
| |
| dataset_repo_id = "BulatF/standup_taker_dataset" |
| dataset = load_dataset(dataset_repo_id, split='train', streaming=True) |
|
|
| |
| dataset_iter = iter(dataset) |
|
|
| |
| if 'logged_in' not in st.session_state: |
| st.session_state.logged_in = False |
|
|
| |
| if 'last_entry' not in st.session_state: |
| try: |
| st.session_state.last_entry = next(dataset_iter) |
| except StopIteration: |
| st.session_state.last_entry = {'standup_taker': 'Yiannis', 'date': '2023-01-01'} |
|
|
| |
| if 'next_taker' not in st.session_state: |
| st.session_state.next_taker = "Not decided yet" |
|
|
| |
| if 'standup_history' not in st.session_state: |
| st.session_state.standup_history = [] |
|
|
| |
| username_secret = os.environ.get("login") |
| password_secret = os.environ.get("password") |
|
|
| |
| if not st.session_state.logged_in: |
| st.title("Login to Stand-Up Taker App") |
| username = st.text_input("Username:") |
| password = st.text_input("Password:", type="password") |
| |
| if st.button("Login"): |
| if username == username_secret and password == password_secret: |
| st.session_state.logged_in = True |
| st.experimental_rerun() |
| else: |
| st.warning("Invalid username or password") |
|
|
| |
| if st.session_state.logged_in: |
| st.title("Stand-Up Taker App") |
|
|
| last_standup_taker = st.session_state.last_entry['standup_taker'] |
| last_date = st.session_state.last_entry['date'] |
| |
| if st.button("Who is taking the stand-up today?"): |
| next_taker, next_date = get_next_standup_taker(last_standup_taker, last_date) |
| st.session_state.next_taker = next_taker |
| |
| |
| new_entry = { |
| 'standup_taker': next_taker, |
| 'date': datetime.now().strftime("%Y-%m-%d") |
| } |
| st.session_state.standup_history.append(new_entry) |
| |
| st.write(f"The person taking the stand-up today is **{next_taker}**.") |
| else: |
| st.write(st.session_state.next_taker) |
| |
| if 'forced_taker' not in st.session_state: |
| st.session_state.forced_taker = "" |
| |
| st.session_state.forced_taker = st.text_input("Force a specific person to take the stand-up:", st.session_state.forced_taker) |
| |
| if st.button("Force Stand-Up"): |
| current_weekday = datetime.now().strftime("%A") |
| if current_weekday in ["Tuesday", "Thursday"]: |
| if st.session_state.forced_taker in team_members: |
| new_entry = { |
| 'standup_taker': st.session_state.forced_taker, |
| 'date': datetime.now().strftime("%Y-%m-%d") |
| } |
| st.session_state.standup_history.append(new_entry) |
| |
| st.write(f"The stand-up taker has been forced to **{st.session_state.forced_taker}**.") |
| else: |
| st.write("Invalid name. Please enter a valid team member name.") |
| else: |
| st.write(f"Stand-up taker can only be forced on Tuesday and Thursday. Today is {current_weekday}.") |