Preview Image
This commit is contained in:
parent
c58c0324c0
commit
a2497722bd
58
main.py
58
main.py
@ -379,7 +379,7 @@ def dashboard_frame(self):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Dashboard untuk semua kecuali adminnn
|
# Bagian Search dan Filter
|
||||||
|
|
||||||
|
|
||||||
def build_menu_view_tab(self, parent):
|
def build_menu_view_tab(self, parent):
|
||||||
@ -407,3 +407,59 @@ def build_menu_view_tab(self, parent):
|
|||||||
self.view_tree.pack(fill='both', expand=True)
|
self.view_tree.pack(fill='both', expand=True)
|
||||||
self.view_tree.bind("<<TreeviewSelect>>", self.on_view_select)
|
self.view_tree.bind("<<TreeviewSelect>>", self.on_view_select)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Preview Image
|
||||||
|
|
||||||
|
|
||||||
|
ttk.Label(right, text="Preview Item", font=("Arial", 12, "bold")).pack(pady=6)
|
||||||
|
self.preview_label = ttk.Label(right, text="Pilih menu di kiri")
|
||||||
|
self.preview_label.pack()
|
||||||
|
self.preview_img_label = ttk.Label(right)
|
||||||
|
self.preview_img_label.pack(pady=6)
|
||||||
|
self.preview_detail = tk.Text(right, width=45, height=12)
|
||||||
|
self.preview_detail.pack()
|
||||||
|
|
||||||
|
self.reload_view_table()
|
||||||
|
|
||||||
|
def reload_view_table(self, available_only=False):
|
||||||
|
s = self.view_search_var.get().strip() if hasattr(self, 'view_search_var') else ""
|
||||||
|
results = menu_list(search_text=s or None, available_only=available_only)
|
||||||
|
for r in self.view_tree.get_children():
|
||||||
|
self.view_tree.delete(r)
|
||||||
|
for row in results:
|
||||||
|
mid,nama,kategori,harga,stok,foto,tersedia,item_disc = row
|
||||||
|
self.view_tree.insert("", tk.END, values=(mid,nama,kategori,harga,stok, "Yes" if tersedia else "No", item_disc))
|
||||||
|
|
||||||
|
def reset_view_filters(self):
|
||||||
|
self.view_search_var.set("")
|
||||||
|
self.reload_view_table()
|
||||||
|
|
||||||
|
def on_view_select(self, event):
|
||||||
|
sel = self.view_tree.selection()
|
||||||
|
if not sel:
|
||||||
|
return
|
||||||
|
item = self.view_tree.item(sel)['values']
|
||||||
|
menu_id = item[0]
|
||||||
|
data = menu_get(menu_id)
|
||||||
|
if not data:
|
||||||
|
return
|
||||||
|
mid,nama,kategori,harga,stok,foto,tersedia,item_disc = data
|
||||||
|
self.preview_detail.delete('1.0', tk.END)
|
||||||
|
txt = f"ID: {mid}\nNama: {nama}\nKategori: {kategori}\nHarga: {harga}\nStok: {stok}\nTersedia: {'Yes' if tersedia else 'No'}\nItem Discount: {item_disc}%\nFoto path: {foto}\n"
|
||||||
|
self.preview_detail.insert(tk.END, txt)
|
||||||
|
if foto and os.path.exists(foto):
|
||||||
|
try:
|
||||||
|
img = Image.open(foto)
|
||||||
|
img.thumbnail(IMG_PREVIEW_SIZE)
|
||||||
|
tkimg = ImageTk.PhotoImage(img)
|
||||||
|
self.img_cache['preview'] = tkimg
|
||||||
|
self.preview_img_label.config(image=tkimg)
|
||||||
|
except Exception as e:
|
||||||
|
self.preview_img_label.config(image='')
|
||||||
|
else:
|
||||||
|
self.preview_img_label.config(image='')
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user