04/24 Added import website in bulk

This commit is contained in:
2026-04-24 13:57:49 -04:00
parent 5f2a4e4749
commit 88b5e85c5b
7 changed files with 567 additions and 33 deletions
+41 -4
View File
@@ -131,9 +131,46 @@ class App(tk.Tk):
child.destroy()
# ── Sidebar ──────────────────────────────────────────────────────────
sidebar = tk.Frame(self, bg=COLOURS["surface"], width=200)
sidebar.pack(side="left", fill="y")
sidebar.pack_propagate(False)
# The sidebar outer frame holds the fixed-width column.
# Inside it we place a Canvas + Scrollbar so that the nav items are
# scrollable on shorter screens (especially for admin with many items).
sidebar_outer = tk.Frame(self, bg=COLOURS["surface"], width=200)
sidebar_outer.pack(side="left", fill="y")
sidebar_outer.pack_propagate(False)
sidebar_canvas = tk.Canvas(
sidebar_outer, bg=COLOURS["surface"],
highlightthickness=0, width=200,
)
sidebar_scrollbar = ttk.Scrollbar(
sidebar_outer, orient="vertical", command=sidebar_canvas.yview)
sidebar_canvas.configure(yscrollcommand=sidebar_scrollbar.set)
# Scrollbar only visible on overflow — pack canvas first so it fills
sidebar_canvas.pack(side="left", fill="both", expand=True)
sidebar_scrollbar.pack(side="right", fill="y")
# The actual sidebar frame lives inside the canvas window
sidebar = tk.Frame(sidebar_canvas, bg=COLOURS["surface"], width=200)
sidebar_window = sidebar_canvas.create_window(
(0, 0), window=sidebar, anchor="nw", width=200)
def _on_sidebar_configure(event):
sidebar_canvas.configure(
scrollregion=sidebar_canvas.bbox("all"))
def _on_canvas_resize(event):
sidebar_canvas.itemconfig(sidebar_window, width=event.width)
sidebar.bind("<Configure>", _on_sidebar_configure)
sidebar_canvas.bind("<Configure>", _on_canvas_resize)
# Mouse-wheel scrolling inside the sidebar
def _on_mousewheel(event):
sidebar_canvas.yview_scroll(
int(-1 * (event.delta / 120)), "units")
sidebar.bind_all("<MouseWheel>", _on_mousewheel)
# App branding
brand = tk.Frame(sidebar, bg=COLOURS["surface"], pady=20)
@@ -611,4 +648,4 @@ class App(tk.Tk):
if __name__ == "__main__":
app = App()
app.mainloop()
app.mainloop()