From 564a945fc0db5aefc8598f607aa5b3dce3c54db4 Mon Sep 17 00:00:00 2001 From: Eddie Date: Wed, 21 Dec 2022 17:50:18 +0100 Subject: [PATCH] integrated Backend and started Personframe --- api.py | 32 ++++++++++++++++++++++++++++++++ app.py | 11 ++++++----- frames.py | 22 +++++++++++++++++++++- 3 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 api.py diff --git a/api.py b/api.py new file mode 100644 index 0000000..2136704 --- /dev/null +++ b/api.py @@ -0,0 +1,32 @@ +#from requests.auth import HTTPBasicAuth +import requests, os +from dotenv import load_dotenv + +load_dotenv() +# get .env vars +url = os.getenv('URL') +key = os.getenv('API_KEY') + +header = {"Authorization": "Bearer " + key} + +def get_person_all(): + endpoint = url + 'budget-py-personens' + r = requests.get(url=endpoint, headers=header) + data = r.json() + return data + +def get_endpoint(endpoint): + endpoint = url + endpoint + r = requests.get(url=endpoint, headers=header) + data = r.json() + return data + +def post_endpoint(endpoint, data): + endpoint = url + endpoint + r = requests.post(url = endpoint, data = data, headers=header) + + return r.text + +#print(get_person_all()) +#print(get_endpoint('budget-py-personens')) +#print(post_endpoint('budget-py-personens', {'Name':'Eddie'})) diff --git a/app.py b/app.py index bb08126..85c0f0d 100644 --- a/app.py +++ b/app.py @@ -2,21 +2,22 @@ import tkinter import customtkinter from frames import (SidebarFrame, PersonFrame, VermögenFrame, ProjekteFrame, KategorieFrame, EinträgeFrame, - ÜbersichtFrame, ExportFrame) + ÜbersichtFrame, ExportFrame, ExampleFrame) # Main application class App(customtkinter.CTk): def __init__(self): super().__init__() - #container to pack different windows of the app into + # Container to pack different windows of the app into container = customtkinter.CTkFrame(self) container.pack(expand=True, fill='both') container.grid_rowconfigure(0, weight=1) container.grid_columnconfigure(0, weight=1) + # Sidebar Creation self.sidebar = SidebarFrame(container, self) self.sidebar.grid(row=0, column=0, padx=20, pady=20) - + # Frame Creation self.frames = {} self.frames['personFrame'] = PersonFrame(container, self) self.frames['vermögenFrame'] = VermögenFrame(container, self) @@ -25,9 +26,9 @@ class App(customtkinter.CTk): self.frames['einträgeFrame'] = EinträgeFrame(container, self) self.frames['übersichtFrame'] = ÜbersichtFrame(container, self) self.frames['exportFrame'] = ExportFrame(container, self) + self.frames['exampleFrame'] = ExampleFrame(container, self) - for F in ('personFrame', 'vermögenFrame', 'projekteFrame', - 'kategorieFrame', 'einträgeFrame', 'übersichtFrame', 'exportFrame'): + for F in (self.frames): self.frames[F].grid(row = 0, column = 1, sticky='nsew') diff --git a/frames.py b/frames.py index cdf15da..04f41c5 100644 --- a/frames.py +++ b/frames.py @@ -1,6 +1,7 @@ import tkinter import tkinter.messagebox import customtkinter +from api import get_person_all @@ -63,6 +64,9 @@ class ÜbersichtFrame(customtkinter.CTkFrame): self.textbox = customtkinter.CTkTextbox(self, width=600, height=100) self.textbox.grid(row=0, column=0, padx=(20, 0), pady=(20, 0), sticky="nsew") + + + # set default values self.textbox.insert("0.0", "Übersicht\n\n" + 'Hier kanst du dir eine Übersicht über deine Ausgaben und Einnahmen verschaffen. Alle eingetragenen Daten werden hier für dich einfach nachvollziehbar angezeigt.') self.textbox.configure(state='disabled') @@ -84,12 +88,24 @@ class PersonFrame(customtkinter.CTkFrame): customtkinter.CTkFrame.__init__(self, parent) #super().__init__(*args, **kwargs) # create textbox + persons = get_person_all() + personNames = [] + for person in persons: + personNames.append(person['Name']) + self.textbox = customtkinter.CTkTextbox(self, width=600, height=100) self.textbox.grid(row=0, column=0, padx=(20, 0), pady=(20, 0), sticky="nsew") + self.activePersonLabel = customtkinter.CTkLabel(self, text='Aktive Person') + self.activePersonLabel.grid(row=1,column=0, padx=(20, 0), pady=(20,0), sticky="nw") + self.optionMenu = customtkinter.CTkOptionMenu(self,values=personNames, command=self.optionmenu_callback) + self.optionMenu.grid(row=2, column=0, padx=(20, 0), sticky="nw") # set default values - self.textbox.insert("0.0", "Person\n\n" + 'Hier kannst du neue Personen erstellen, und die aktuell aktive Person') + self.textbox.insert("0.0", "Person\n\n" + 'Hier kannst du neue Personen erstellen, und die aktuell aktive Person auswählen') self.textbox.configure(state='disabled') + + def optionmenu_callback(self, choice): + print("optionmenu dropdown clicked:", choice) class ExampleFrame(customtkinter.CTkFrame): def __init__(self, parent, controller): @@ -222,6 +238,10 @@ class SidebarFrame(customtkinter.CTkFrame): # Button Export self.sidebar_button_6 = customtkinter.CTkButton(self.sidebar_frame, text="Export", command=lambda: controller.show_frame('exportFrame')) self.sidebar_button_6.grid(row=8, column=0, padx=20, pady=10) + # Example Frame + self.sidebar_button_7 = customtkinter.CTkButton(self.sidebar_frame, text="Example", command=lambda: controller.show_frame('exampleFrame')) + self.sidebar_button_7.grid(row=9, column=0, padx=20, pady=10) + # Apperance Mode Label self.appearance_mode_label = customtkinter.CTkLabel(self.sidebar_frame, text="Theme:", anchor="w")