Synkronisér GUI med nye hash-indstillinger og tidsstempel-logik

- Opdaterer sharepoint_gui.py med felter til ENABLE_HASH_VALIDATION og HASH_THRESHOLD_MB
- Gør download_sharepoint.py i stand til at læse disse indstillinger fra konfigurationsfilen
- Justerer GUI-layoutet (større vindue) for at give plads til de nye kontrolmuligheder
- GUI'en bruger nu automatisk den nye tidsstempel-baserede synkronisering
This commit is contained in:
Martin Tranberg
2026-03-29 19:23:42 +02:00
parent ba968ab70e
commit acede4a867
2 changed files with 15 additions and 6 deletions

View File

@@ -357,6 +357,13 @@ def main():
folders_str = config.get('FOLDERS_TO_DOWNLOAD', '')
local_base = config.get('LOCAL_PATH', '').replace('\\', os.sep)
# Opdater globale indstillinger fra config hvis de findes
global ENABLE_HASH_VALIDATION, HASH_THRESHOLD_MB
if 'ENABLE_HASH_VALIDATION' in config:
ENABLE_HASH_VALIDATION = config['ENABLE_HASH_VALIDATION'].lower() == 'true'
if 'HASH_THRESHOLD_MB' in config:
HASH_THRESHOLD_MB = int(config['HASH_THRESHOLD_MB'])
folders = [f.strip() for f in folders_str.split(',') if f.strip()] or [""]
logger.info("Initializing SharePoint Production Sync Tool...")

View File

@@ -41,7 +41,7 @@ class SharepointApp(ctk.CTk):
super().__init__()
self.title("SharePoint Download Tool - UX")
self.geometry("900x750")
self.geometry("1000x850") # Gjort lidt bredere og højere for at give plads
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
@@ -51,7 +51,7 @@ class SharepointApp(ctk.CTk):
# Sidebar
self.sidebar_frame = ctk.CTkFrame(self, width=350, corner_radius=0)
self.sidebar_frame.grid(row=0, column=0, sticky="nsew")
self.sidebar_frame.grid_rowconfigure(20, weight=1)
self.sidebar_frame.grid_rowconfigure(25, weight=1)
self.logo_label = ctk.CTkLabel(self.sidebar_frame, text="Indstillinger", font=ctk.CTkFont(size=20, weight="bold"))
self.logo_label.grid(row=0, column=0, padx=20, pady=(20, 10))
@@ -64,22 +64,24 @@ class SharepointApp(ctk.CTk):
("SITE_URL", "Site URL"),
("DOCUMENT_LIBRARY", "Library Navn"),
("FOLDERS_TO_DOWNLOAD", "Mapper (komma-sep)"),
("LOCAL_PATH", "Lokal Sti")
("LOCAL_PATH", "Lokal Sti"),
("ENABLE_HASH_VALIDATION", "Valider Hash (True/False)"),
("HASH_THRESHOLD_MB", "Hash Grænse (MB)")
]
for i, (key, label) in enumerate(fields):
lbl = ctk.CTkLabel(self.sidebar_frame, text=label)
lbl.grid(row=i*2+1, column=0, padx=20, pady=(10, 0), sticky="w")
lbl.grid(row=i*2+1, column=0, padx=20, pady=(5, 0), sticky="w")
entry = ctk.CTkEntry(self.sidebar_frame, width=280)
if key == "CLIENT_SECRET": entry.configure(show="*")
entry.grid(row=i*2+2, column=0, padx=20, pady=(0, 5))
self.entries[key] = entry
self.browse_button = ctk.CTkButton(self.sidebar_frame, text="Vælg Mappe", command=self.browse_folder, height=32)
self.browse_button.grid(row=15, column=0, padx=20, pady=10)
self.browse_button.grid(row=20, column=0, padx=20, pady=10)
self.save_button = ctk.CTkButton(self.sidebar_frame, text="Gem Indstillinger", command=self.save_settings, fg_color="transparent", border_width=2)
self.save_button.grid(row=16, column=0, padx=20, pady=10)
self.save_button.grid(row=21, column=0, padx=20, pady=10)
# Main side
self.main_frame = ctk.CTkFrame(self, corner_radius=0, fg_color="transparent")