I make a code to create like a dataframe but i need to improve with html, but the code create a table with to code, with one is a popover, like this
with tab_vendas_2:
forms = await GetFuncionarios()
headers = [
'nome',
'cargo',
'setor',
'lider',
'salario',
'celular',
'data_nascimento',
'data_demissao',
'email',
'cpf',
'endereco',
'escolaridade',
'sexo',
'tamanho_farda',
'motivo_use',
'disc',
'motivo_demissao',
'Desativar',
'Editar']
try:
cols = st.columns(len(headers))
for col, header in zip(cols, headers):
col.markdown(f"**{header}**")
for index, row in forms.iterrows():
cols = st.columns(len(headers))
cols[0].text(row['nome'] if row['nome'] is not None else 'Em Branco')
cols[1].text(row['cargo'] if row['cargo'] is not None else 'Em Branco')
cols[2].text(row['setor'] if row['setor'] is not None else 'Em Branco')
cols[4].text(row['lider'] if row['lider'] is not None else 'Em Branco')
cols[5].text(row['salario'] if row['salario'] is not None else 'Em Branco')
cols[6].text(row['celular'] if row['celular'] is not None else'Em Branco')
cols[6].text(row['data_nascimento'] if not pd.isna(row['data_nascimento']) else 'Em Branco')
cols[7].text(row['data_demissao'] if not pd.isna(row['data_demissao']) else 'Em Branco')
cols[8].text(row['email'] if row['email'] is not None else 'Em Branco')
cols[9].text(row['cpf'] if row['cpf'] is not None else 'Em Branco')
cols[10].text(row['endereco'] if row['endereco'] is not None else 'Em Branco')
cols[11].text(row['escolaridade'] if row['escolaridade'] is not None else 'Em Branco')
cols[12].text(row['sexo'] if row['sexo'] is not None else 'Em Branco')
cols[13].text(row['tamanho_farda'] if row['tamanho_farda'] is not None else 'Em Branco')
cols[14].text(row['motivo_use'] if not pd.isna(row['motivo_use']) else 'Em Branco')
cols[15].text(row['disc'] if not pd.isna(row['disc']) else 'Em Branco')
cols[16].text(row['motivo_demissao'] if not pd.isna(row['motivo_demissao']) else 'Em Branco')
if cols[17].button('🚫', key=f'delete_{index}'):
status = 'INATIVO'
await DeleteFuncionarios(row['id'], status)
st.experimental_rerun()
with cols[18]:
with st.popover("✏️"):
form_theme_settings = st.form(key=f"Informações_{index}")
form_theme_settings.write("Editar Info")
nome = form_theme_settings.text_input('Insira o nome', value=row['nome'], key=f'nome_{index}')
cargo = form_theme_settings.text_input('Insira o cargo', value=row['cargo'], key=f'cargo_{index}')
setor = form_theme_settings.selectbox('Insira o setor', setores, key=f'setor_{index}')
lider = form_theme_settings.text_input('Insira o líder direto', value=row['lider'], key=f'lider_{index}')
salario = form_theme_settings.text_input('Insira o salário', value=row['salario'], key=f'salario_{index}')
celular = form_theme_settings.text_input('Insira o celular', value=row['celular'], key=f'celular_{index}')
data_nascimento = form_theme_settings.date_input('Data de Nascimento', value=data_nascimento, format="YYYY-MM-DD", key=f'datanasc_{index}')
data_admissao = form_theme_settings.date_input('Data de Demissao', value=None, key=f'datademi_{index}')
email = form_theme_settings.text_input('Insira o email', value=row['email'], key=f'email_{index}')
cpf = form_theme_settings.text_input('Insira o cpf', value=row['cpf'], key=f'cpf_{index}')
endereco = form_theme_settings.text_input('Insira o endereco', value=row['endereco'], key=f'endereco_{index}')
escolaridade = form_theme_settings.selectbox('Insira o escolaridade', escolaridades, key=f'escol_{index}')
tamanho_farda = form_theme_settings.selectbox('Insira o tamanhos', Tamanhos, key=f'tamanho_{index}')
sexo = form_theme_settings.selectbox('Insira o sexo', sexos, key=f'sexo_{index}')
motivo_use = form_theme_settings.text_input('Insira o motivo para entrar na use', value=row['motivo_use'], key=f'motivo_{index}')
disc = form_theme_settings.text_input('Insira o disc', value=row['disc'], key=f'disc_{index}')
motivo_demissao = form_theme_settings.text_input('Insira o motivo da demissão', value=row['motivo_demissao'], key=f'demissao_{index}')
status = form_theme_settings.selectbox('Insira o status do colaborador', ['ATIVO', 'INATIVO'], key=f'status_{index}')
submit_form_clicked = form_theme_settings.form_submit_button(label = "Apply")