50 lines
2.1 KiB
Python
50 lines
2.1 KiB
Python
import customtkinter as ctk
|
|
from api.woocommerce_api import save_credentials, load_credentials
|
|
|
|
class SettingsTab:
|
|
def __init__(self, tab_parent):
|
|
self.tab = ctk.CTkFrame(tab_parent)
|
|
self.tab.grid(row=0, column=0, sticky="nsew")
|
|
self.credentials = load_credentials()
|
|
self.inputs = {}
|
|
self.setup_ui()
|
|
|
|
def setup_ui(self):
|
|
settings_options = {
|
|
"url": {"type": "text", "label": "WooCommerce URL:", "default": self.credentials.get('url', '')},
|
|
"consumer_key": {"type": "text", "label": "Consumer Key:", "default": self.credentials.get('consumer_key', '')},
|
|
"consumer_secret": {"type": "text", "label": "Consumer Secret:", "default": self.credentials.get('consumer_secret', '')},
|
|
"username": {"type": "text", "label": "Username:", "default": self.credentials.get('username', '')},
|
|
"password": {"type": "text", "label": "Password:", "default": self.credentials.get('password', ''), "show": "*"}
|
|
}
|
|
|
|
row_index = 0
|
|
for name, details in settings_options.items():
|
|
self.create_setting(name, details, row_index)
|
|
row_index += 1
|
|
|
|
save_button = ctk.CTkButton(self.tab, text="Save Credentials", command=self.save_credentials)
|
|
save_button.grid(row=row_index, column=0, columnspan=2, pady=10)
|
|
|
|
def create_setting(self, name, details, row_index):
|
|
"""
|
|
Create a setting based on its type.
|
|
"""
|
|
lbl = ctk.CTkLabel(self.tab, text=details["label"])
|
|
lbl.grid(row=row_index, column=0, padx=5, pady=5, sticky="w")
|
|
|
|
if details["type"] == "text":
|
|
entry = ctk.CTkEntry(self.tab, show=details.get("show", None))
|
|
entry.insert(0, details["default"])
|
|
entry.grid(row=row_index, column=1, padx=5, pady=5, sticky="w")
|
|
self.inputs[name] = entry
|
|
|
|
def save_credentials(self):
|
|
save_credentials(
|
|
self.inputs["url"].get(),
|
|
self.inputs["consumer_key"].get(),
|
|
self.inputs["consumer_secret"].get(),
|
|
self.inputs["username"].get(),
|
|
self.inputs["password"].get()
|
|
)
|