Spaces:
Running
Running
import streamlit as st | |
def skills_section(): | |
st.write("## Skills") | |
def onchange_skill_checkbox(skill_id): | |
if st.session_state[skill_id]: | |
return | |
skill_to_remove = skill_id.split("_")[0] | |
st.session_state.candidate_data["skills"] = [skill for skill in st.session_state.candidate_data["skills"] if skill != skill_to_remove] | |
def add_new_skill(): | |
if st.session_state.new_skill_input == '': | |
return | |
new_skill = st.session_state.new_skill_input.strip().lower() | |
if "skills" not in st.session_state.candidate_data: | |
st.session_state.candidate_data["skills"] = [] | |
skills = [skill.lower() for skill in st.session_state.candidate_data["skills"]] | |
if new_skill not in skills: | |
st.session_state.candidate_data["skills"].append(new_skill.capitalize()) | |
st.session_state.new_skill_input = '' | |
with st.container(border= True): | |
#skills = st.session_state.skills | |
col1, col2, col3, col4 = st.columns(4) | |
if "skills" in st.session_state.candidate_data: | |
for i, skill in enumerate(st.session_state.candidate_data["skills"]): | |
skill_id = f"{skill}_{i}" | |
if i % 4 == 0: | |
col1.checkbox(skill, key=skill_id, value=True, on_change=onchange_skill_checkbox, args=(skill_id,)) | |
elif i % 4 == 1: | |
col2.checkbox(skill, key=skill_id, value=True, on_change=onchange_skill_checkbox, args=(skill_id,)) | |
elif i % 4 == 2: | |
col3.checkbox(skill, key=skill_id, value=True, on_change=onchange_skill_checkbox, args=(skill_id,)) | |
elif i % 4 == 3: | |
col4.checkbox(skill, key=skill_id, value=True, on_change=onchange_skill_checkbox, args=(skill_id,)) | |
st.write("#### Add Skill") | |
col1, col2 = st.columns(2) | |
new_skill_input = col1.text_input("Add a new skill", label_visibility="collapsed", key="new_skill_input", on_change=add_new_skill) | |
add_skill_button = col2.button("Add Skill", on_click=add_new_skill) |