From 0aad49aaec89b5f62e4b697676b309bafbf95e53 Mon Sep 17 00:00:00 2001 From: s460930 Date: Mon, 21 Dec 2020 14:23:52 +0100 Subject: [PATCH] SMART-49 implemented add project view --- client/app.py | 54 ++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/client/app.py b/client/app.py index 6f712b5..941edb5 100644 --- a/client/app.py +++ b/client/app.py @@ -10,6 +10,7 @@ URL_REGISTER = "http://localhost:8000/api/register" URL_PROFILE = "http://localhost:8000/api/profile" URL_PROJECTS = "http://localhost:8000/api/projects" + class SmartPicasso(tk.Tk): def __init__(self, *args, **kwargs): @@ -96,7 +97,7 @@ class MainView(tk.Frame): self.frames = {} self.token = '' for F in (ProfileView, ProjectsView, ProjectsAddView): - frame = F(parent, controller) + frame = F(parent, controller, self) self.frames[F] = frame @@ -105,21 +106,15 @@ class MainView(tk.Frame): label.pack(pady=10, padx=10) label_u = tk.Label(self, text="Main menu", font=FONT) label_u.pack(pady=10, padx=10) - - button_projects = tk.Button(self, text="Projects", font=FONT, - command=lambda: self.show_frame(ProjectsView)) - button_projects.pack() - - button_projects2 = tk.Button(self, text="Projects Add", font=FONT, - command=lambda: self.show_frame(ProjectsAddView)) - button_projects2.pack() + button_projects = tk.Button(self, text="Projects", font=FONT, + command=lambda: self.show_frame(ProjectsView)) + button_projects.pack() button_profile = tk.Button(self, text="My profile", font=FONT, command=lambda: self.show_frame(ProfileView)) button_profile.pack() - def show_frame(self, view): frame = self.frames[view] frame.tkraise() @@ -202,7 +197,7 @@ class RegisterView(tk.Frame): class ProfileView(tk.Frame): - def __init__(self, parent, controller): + def __init__(self, parent, controller, main_view_controller): tk.Frame.__init__(self, parent) self.token = '' label = tk.Label(self, text="SmartPicasso", font=FONT_LARGE) @@ -233,24 +228,29 @@ class ProfileView(tk.Frame): self.label_first_name['text'] = response['profile']['first_name'] self.label_last_name['text'] = response['profile']['last_name'] + class ProjectsView(tk.Frame): - def __init__(self, parent, controller): + def __init__(self, parent, controller, main_view_controller): tk.Frame.__init__(self, parent) self.token = '' + self.projects_buttons = [] label = tk.Label(self, text="SmartPicasso", font=FONT_LARGE) label.pack(pady=10, padx=10) button_add = tk.Button(self, text="Add project", font=FONT, - command=lambda: controller.show_frame(ProjectsAddView, self.token)) + command=lambda: main_view_controller.show_frame(ProjectsAddView)) button_add.pack() - + button_back = tk.Button(self, text="Back", font=FONT, - command=lambda: controller.show_frame(MainView, self.token)) + command=lambda: controller.show_frame(MainView, self.token)) button_back.pack() label0 = tk.Label(self, text='Projects:', font=FONT) label0.pack() def start(self): + for button in self.projects_buttons: + button.destroy() + self.projects_buttons = [] headers = {'Authorization': 'Bearer ' + self.token} resp = requests.get(URL_PROJECTS, headers=headers) response = resp.json() @@ -258,41 +258,43 @@ class ProjectsView(tk.Frame): for projects in response: button_proj = tk.Button(self, text=projects['name'], font=FONT) button_proj.pack() - + self.projects_buttons.append(button_proj) + + class ProjectsAddView(tk.Frame): - def __init__(self, parent, controller): + def __init__(self, parent, controller, main_view_controller): tk.Frame.__init__(self, parent) self.token = '' - + label0 = tk.Label(self, text='Project name:', font=FONT) label0.pack() - + input0 = tk.Entry(self) input0.pack() - + button_add = tk.Button(self, text="Confirm and add", font=FONT, - command=lambda: self.addproject(controller, input0.get())) + command=lambda: self.add_project(main_view_controller, input0.get())) button_add.pack() button_back = tk.Button(self, text="Back", font=FONT, - command=lambda: controller.show_frame(ProjectsView)) + command=lambda: main_view_controller.show_frame(ProjectsView)) button_back.pack() def start(self): print("ok") - def addproject(self, controller, projectname): + def add_project(self, controller, project_name): headers = {'Authorization': 'Bearer ' + self.token} data = { - "name": str(projectname) - } + "name": str(project_name) + } print(data) response = requests.post(URL_PROJECTS, json=data, headers=headers) print(response) if response.status_code == 201: response = response.json() - controller.show_frame(MainView) + controller.show_frame(ProjectsView) else: print("sth wrong") bad_pass_label = tk.Label(self, text='Something went wrong!', font=FONT)