From 66cee769802af4af641e9a9ec386ccdfab864852 Mon Sep 17 00:00:00 2001 From: jakobsn Date: Fri, 8 Nov 2019 13:23:25 +0100 Subject: [PATCH] Show user projects --- src/app/models/project.py | 17 +++++++++++++++++ src/app/static/stylesheet.css | 12 +++++++++++- src/app/templates/index.html | 27 ++++++++++++++++++++++++++- src/app/views/index.py | 16 +++++++++++++++- 4 files changed, 69 insertions(+), 3 deletions(-) diff --git a/src/app/models/project.py b/src/app/models/project.py index 6fd5018..6271200 100644 --- a/src/app/models/project.py +++ b/src/app/models/project.py @@ -27,6 +27,23 @@ def get_projects_by_status_and_category(categoryid, project_status): projects = cursor.fetchall() return projects +def get_projects_by_status_and_owner(userid, project_status): + cursor = db.cursor() + query = ("SELECT * FROM projects WHERE project_status = \"" + + project_status + "\" AND userid = \"" + userid + "\"") + cursor.execute(query) + projects = cursor.fetchall() + return projects + +def get_projects_by_participant_and_status(userid, project_status): + cursor = db.cursor() + query = ("SELECT * FROM projects, projects_users WHERE projects.project_status = \"" + + project_status + "\" AND projects_users.userid = \"" + userid + + "\" AND projects_users.projectid = projects.projectid") + cursor.execute(query) + projects = cursor.fetchall() + return projects + def set_waiting_task(projectid, title, task_description, budget): cursor = db.cursor() query = ("INSERT INTO tasks (pjojectid, title, task_description, budget) VALUES (\"" + diff --git a/src/app/static/stylesheet.css b/src/app/static/stylesheet.css index 0bd389f..ab43feb 100644 --- a/src/app/static/stylesheet.css +++ b/src/app/static/stylesheet.css @@ -27,7 +27,7 @@ body { margin: auto; } -h1 { +h1, h3 { margin: auto; } @@ -69,4 +69,14 @@ nav ul { text-align: center; padding: 14px 16px; text-decoration: none; +} + +#user_projects { + display: flex; /* or inline-flex */ + flex-direction: row; + margin: auto; +} + +.user_projects_category { + border: 1px solid black; } \ No newline at end of file diff --git a/src/app/templates/index.html b/src/app/templates/index.html index 5465897..a3e8195 100644 --- a/src/app/templates/index.html +++ b/src/app/templates/index.html @@ -1,4 +1,4 @@ -$def with (nav) +$def with (nav, project_bulk_one, project_bulk_two, projects) Beelance2 @@ -11,8 +11,33 @@ $def with (nav) $:nav +

Welcome $session.username!

Honeybee +

What would you like to do today?

+ +
+
My Projects
+
Customer Projects
+
Finished Projects
+
+ + $if projects == 'my': +

Your open projects

+ +
+ $for project in project_bulk_one: +

$project[3]

$project[4]

+
+ + $if projects == 'my': +

Projects in progress

+ + +
+ $for project in project_bulk_two: +

$project[3]

$project[4]

+
\ No newline at end of file diff --git a/src/app/views/index.py b/src/app/views/index.py index aa56629..34810d9 100644 --- a/src/app/views/index.py +++ b/src/app/views/index.py @@ -7,6 +7,7 @@ from views.register import Register from views.admin import Admin from views.project import Project from views.my_projects import My_projects +import models.project # Define application routes urls = ( @@ -48,4 +49,17 @@ class Index: # Get main page def GET(self): nav = get_nav_bar(session) - return render.index(nav) + data = web.input(projects=None) + project_bulk_one = [] + project_bulk_two = [] + if data.projects == 'my': + project_bulk_one = models.project.get_projects_by_status_and_owner(str(session.userid), "open") + project_bulk_two = models.project.get_projects_by_status_and_owner(str(session.userid), "in progress") + elif data.projects == 'customer': + project_bulk_one = models.project.get_projects_by_participant_and_status(str(session.userid), "open") + project_bulk_two = models.project.get_projects_by_participant_and_status(str(session.userid), "in progress") + elif data.projects == 'finished': + project_bulk_one = models.project.get_projects_by_status_and_owner(str(session.userid), "finished") + project_bulk_two = models.project.get_projects_by_participant_and_status(str(session.userid), "finished") + + return render.index(nav, project_bulk_one, project_bulk_two, data.projects)