feat: adicionar edição de uma linha ao menu
This commit is contained in:
@@ -18,6 +18,7 @@ MENU ="""[1] Criar a base de dados
|
||||
[6] Guardar como JSON
|
||||
[7] Guardar como CSV
|
||||
[8] Estatísticas
|
||||
[9] Atualizar uma entrada de um evento
|
||||
|
||||
[Q] Sair
|
||||
"""
|
||||
@@ -159,6 +160,25 @@ def main():
|
||||
else:
|
||||
retInfo = "Base de dados não encontrada!"
|
||||
|
||||
case "9":
|
||||
if db is not None:
|
||||
crud.read_ids(db)
|
||||
eid_choice = _get_usr_input("Escolhe o ID: ", int)
|
||||
|
||||
if not _event_exists(db, eid_choice):
|
||||
retInfo = "ID do event não encontrado!"
|
||||
|
||||
else:
|
||||
table = crud.get_table(db, eid_choice)
|
||||
crud.show_table(table)
|
||||
row_choice = _get_usr_input("Escolhe a linha a atualizar: ", int)
|
||||
new_data = {}
|
||||
for col in crud.TABLE_READ_RET:
|
||||
val = _get_usr_input(f"Novo valor para {col} (Enter para manter o valor atual): ")
|
||||
if val is not None:
|
||||
new_data[col] = val
|
||||
crud.update_table_row(db, row_choice, new_data)
|
||||
|
||||
case "q":
|
||||
isRunning = False
|
||||
continue
|
||||
|
||||
@@ -61,16 +61,11 @@ def read_table_row(df, event_id, row_number_1):
|
||||
info.append(f"{i+1} {col}: {row[col]}")
|
||||
return f"Linha {row_number_1:02d} do evento {event_id}:\n" + "\n".join(info)
|
||||
|
||||
def update_table_row(df, event_id, row_number_1, new_data):
|
||||
# atualiza uma linha específica da tabela do evento
|
||||
row_number_0 = row_number_1 - 1
|
||||
table = get_table(df, event_id)
|
||||
if row_number_0 < 0 or row_number_0 >= len(table):
|
||||
return f"Linha {row_number_1} não pertence ao evento {event_id}."
|
||||
def update_table_row(df, row_line, new_data):
|
||||
for key, value in new_data.items():
|
||||
if key in table.columns:
|
||||
df.loc[(df["ID"] == event_id) & (df.index == table.index[row_number_0]), key] = value
|
||||
return f"Linha {row_number_1} do evento {event_id} atualizada com sucesso."
|
||||
if key in df.columns:
|
||||
df.loc[row_line, key] = value
|
||||
return f"Linha {row_line} do evento atualizada com sucesso."
|
||||
|
||||
def update_header(df, event_id, new_data):
|
||||
# atualiza o header de um evento
|
||||
|
||||
Reference in New Issue
Block a user