File size: 2,144 Bytes
c412b90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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)