diff --git a/client/app.py b/client/app.py index d16504d..941edb5 100644 --- a/client/app.py +++ b/client/app.py @@ -8,6 +8,7 @@ FONT_LARGE = ("Verdana", 20) URL = "http://localhost:8000/api/authenticate" 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): @@ -95,8 +96,8 @@ class MainView(tk.Frame): tk.Frame.__init__(self, parent) self.frames = {} self.token = '' - for F in (ProfileView,): - frame = F(parent, controller) + for F in (ProfileView, ProjectsView, ProjectsAddView): + frame = F(parent, controller, self) self.frames[F] = frame @@ -106,6 +107,10 @@ class MainView(tk.Frame): 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_profile = tk.Button(self, text="My profile", font=FONT, command=lambda: self.show_frame(ProfileView)) button_profile.pack() @@ -192,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) @@ -224,5 +229,78 @@ class ProfileView(tk.Frame): self.label_last_name['text'] = response['profile']['last_name'] +class ProjectsView(tk.Frame): + + 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: 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)) + 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() + print(response) + 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, 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.add_project(main_view_controller, input0.get())) + button_add.pack() + + button_back = tk.Button(self, text="Back", font=FONT, + command=lambda: main_view_controller.show_frame(ProjectsView)) + button_back.pack() + + def start(self): + print("ok") + + def add_project(self, controller, project_name): + headers = {'Authorization': 'Bearer ' + self.token} + data = { + "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(ProjectsView) + else: + print("sth wrong") + bad_pass_label = tk.Label(self, text='Something went wrong!', font=FONT) + bad_pass_label.pack() + return () + + app = SmartPicasso() app.mainloop() diff --git a/rest-app/db.sqlite3 b/rest-app/db.sqlite3 index 2f940d6..0c27340 100644 Binary files a/rest-app/db.sqlite3 and b/rest-app/db.sqlite3 differ diff --git a/rest-app/smartpicasso/__pycache__/settings.cpython-38.pyc b/rest-app/smartpicasso/__pycache__/settings.cpython-38.pyc index 68dbbda..4179416 100644 Binary files a/rest-app/smartpicasso/__pycache__/settings.cpython-38.pyc and b/rest-app/smartpicasso/__pycache__/settings.cpython-38.pyc differ diff --git a/rest-app/smartpicasso/__pycache__/urls.cpython-38.pyc b/rest-app/smartpicasso/__pycache__/urls.cpython-38.pyc index d832aea..1999ea5 100644 Binary files a/rest-app/smartpicasso/__pycache__/urls.cpython-38.pyc and b/rest-app/smartpicasso/__pycache__/urls.cpython-38.pyc differ diff --git a/rest-app/smartpicasso/app/user_profile/__pycache__/models.cpython-38.pyc b/rest-app/smartpicasso/app/user_profile/__pycache__/models.cpython-38.pyc index 80f08c3..5782243 100644 Binary files a/rest-app/smartpicasso/app/user_profile/__pycache__/models.cpython-38.pyc and b/rest-app/smartpicasso/app/user_profile/__pycache__/models.cpython-38.pyc differ