binds to edit records

This commit is contained in:
2025-04-16 00:51:46 +02:00
parent 26b6ac7036
commit 5921e41d85

View File

@@ -54,6 +54,7 @@ class Application:
self.config = Config() self.config = Config()
self.address_list = [] self.address_list = []
self.current_record: int | None = None
# json vars # json vars
self.json_file_name = "address_data.json" self.json_file_name = "address_data.json"
@@ -78,6 +79,7 @@ class Application:
tk.Button(top_frame, text="Insert", command=self.export_csv, width=button_width).grid(row=1, column=0) tk.Button(top_frame, text="Insert", command=self.export_csv, width=button_width).grid(row=1, column=0)
tk.Button(top_frame, text="Delete", command=self.export_csv, width=button_width).grid(row=1, column=1) tk.Button(top_frame, text="Delete", command=self.export_csv, width=button_width).grid(row=1, column=1)
self.aktiv = tk.StringVar()
self.firma = tk.StringVar() self.firma = tk.StringVar()
self.name = tk.StringVar() self.name = tk.StringVar()
self.strasse = tk.StringVar() self.strasse = tk.StringVar()
@@ -85,18 +87,22 @@ class Application:
edit_frame = tk.Frame(self.root) edit_frame = tk.Frame(self.root)
edit_frame.pack(side=tk.TOP, fill=tk.X) edit_frame.pack(side=tk.TOP, fill=tk.X)
tk.Label(edit_frame, text="Firma").grid(row=0, column=0) tk.Label(edit_frame, text="Aktiv").grid(row=0, column=0)
tk.Label(edit_frame, text="Name").grid(row=0, column=1) tk.Label(edit_frame, text="Firma").grid(row=0, column=1)
tk.Label(edit_frame, text="Name").grid(row=0, column=2)
tk.Label(edit_frame, text="Strasse").grid(row=0, column=3) tk.Label(edit_frame, text="Strasse").grid(row=0, column=3)
tk.Label(edit_frame, text="Plz/Ort").grid(row=0, column=4) tk.Label(edit_frame, text="Plz/Ort").grid(row=0, column=4)
edit_aktiv = tk.Checkbutton(edit_frame, variable=self.aktiv, onvalue="x", offvalue="")
edit_aktiv.grid(row=1, column=0)
edit_firma = tk.Entry(edit_frame, textvariable=self.firma) edit_firma = tk.Entry(edit_frame, textvariable=self.firma)
edit_firma.grid(row=1, column=0) edit_firma.grid(row=1, column=1)
edit_name = tk.Entry(edit_frame, textvariable=self.name) edit_name = tk.Entry(edit_frame, textvariable=self.name)
edit_name.grid(row=1, column=1) edit_name.grid(row=1, column=2)
edit_strasse = tk.Entry(edit_frame, textvariable=self.strasse) edit_strasse = tk.Entry(edit_frame, textvariable=self.strasse)
edit_strasse.grid(row=1, column=3) edit_strasse.grid(row=1, column=3)
edit_plz_ort = tk.Entry(edit_frame, textvariable=self.plz_ort) edit_plz_ort = tk.Entry(edit_frame, textvariable=self.plz_ort)
edit_plz_ort.grid(row=1, column=4) edit_plz_ort.grid(row=1, column=4)
tk.Button(edit_frame, text="Update", command=self.update_record).grid(row=1, column=5)
data_frame = tk.Frame(self.root, bg="teal") data_frame = tk.Frame(self.root, bg="teal")
data_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) data_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
@@ -109,10 +115,26 @@ class Application:
self.table.heading('4', text="Plz/Ort") self.table.heading('4', text="Plz/Ort")
self.table.pack() self.table.pack()
self.table.bind("<ButtonRelease-1>", self.select_record)
self.load_file() self.load_file()
self.root.mainloop() self.root.mainloop()
def select_record(self, event):
self.current_record = self.table.focus()
values = self.table.item(self.current_record, "values")
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
for i in range(len(values)):
entry_var_list[i].set(values[i])
def update_record(self):
if self.current_record is None:
return
values = (self.aktiv.get(), self.firma.get(), self.name.get(), self.strasse.get(), self.plz_ort.get())
self.table.delete(self.current_record)
self.table.insert('', self.current_record, values=values)
def load_file(self): def load_file(self):
try: try:
with open(self.json_file, "r", encoding="utf-8") as f: with open(self.json_file, "r", encoding="utf-8") as f:
@@ -175,7 +197,6 @@ class Application:
except FileNotFoundError: except FileNotFoundError:
self.show_error("Unexpected error", f"Could not write file {csv_file}") self.show_error("Unexpected error", f"Could not write file {csv_file}")
def populate_table(self): def populate_table(self):
self.delete_all_table_items() self.delete_all_table_items()
for index, item in enumerate(self.address_list): for index, item in enumerate(self.address_list):