| @@ -1,4 +1,4 @@ | |||||
| $def with (nav, categories, open_projects) | |||||
| $def with (nav) | |||||
| <head> | <head> | ||||
| <title>Beelance2</title> | <title>Beelance2</title> | ||||
| @@ -11,17 +11,6 @@ $def with (nav, categories, open_projects) | |||||
| $:nav | $:nav | ||||
| <h1 class="title">Open Projects:</h1> | |||||
| <div class="categories"> | |||||
| $for category in categories: | |||||
| <div class="category" onclick="location.href='/?categoryid=$category[0]'">$category[1]</div> | |||||
| </div> | |||||
| <div class="projects"> | |||||
| $for project in open_projects: | |||||
| <div class="project"><h4>$project[3]</h4><p>$project[4]</p></div> | |||||
| </div> | |||||
| <img src="static/honeybee.png" alt="Honeybee"> | <img src="static/honeybee.png" alt="Honeybee"> | ||||
| @@ -23,20 +23,37 @@ register_form = form.Form( | |||||
| form.Button("Register", type="submit", description="Register"), | form.Button("Register", type="submit", description="Register"), | ||||
| ) | ) | ||||
| # Define the project form | |||||
| # Define the project form elements | |||||
| categories = get_categories() | categories = get_categories() | ||||
| project_form = form.Form( | |||||
| form.Textbox("project_title", description="Title"), | |||||
| form.Textbox("project_description", description="Description"), | |||||
| form.Dropdown("category_name", args=categories), | |||||
| form.Button("Submit", type="submit", description="submit") | |||||
| ) | |||||
| # Define the task form elements | |||||
| def get_task_form_elements(count=0, task_title="", task_description="", budget=""): | |||||
| task_form_elements = ( | |||||
| form.Textbox("task_title_" + str(count), description="Title", value=task_title), | |||||
| form.Textarea("task_description_" + str(count), description="Description", value=task_description), | |||||
| form.Textbox("budget_" + str(count), description="Budget", value=budget) | |||||
| ) | |||||
| return task_form_elements | |||||
| def get_project_form_elements(project_title="", project_description="", category_name=""): | |||||
| project_form_elements = ( | |||||
| form.Textbox("project_title", description="Title", value=project_title), | |||||
| form.Textarea("project_description", description="Description", value=project_description), | |||||
| form.Dropdown("category_name", description="Category Name", args=categories) | |||||
| #form.Button("Submit", type="submit", description="submit") | |||||
| ) | |||||
| return project_form_elements | |||||
| def get_new_project_form(elements): | |||||
| return form.Form(*elements, | |||||
| form.Button("Add Task", type="submit", description="Add Task", value = "add_task"), | |||||
| form.Button("Remove Task", type="submit", description="Remove Task ", value = "remove_task"), | |||||
| form.Button("Create Project", type="submit", description="Create Project", value = "create_project") | |||||
| ) | |||||
| # Define the guestbook form | # Define the guestbook form | ||||
| guestbook_form = form.Form( | guestbook_form = form.Form( | ||||
| form.Textbox("entry", description="Entry"), | form.Textbox("entry", description="Entry"), | ||||
| form.Button("Submit", type="submit", description="submit") | |||||
| ) | ) | ||||
| @@ -6,7 +6,7 @@ from views.logout import Logout | |||||
| from views.register import Register | from views.register import Register | ||||
| from views.admin import Admin | from views.admin import Admin | ||||
| from views.project import Project | from views.project import Project | ||||
| from models.project import get_categories, get_projects_by_status_and_category | |||||
| from views.my_projects import My_projects | |||||
| # Define application routes | # Define application routes | ||||
| urls = ( | urls = ( | ||||
| @@ -15,7 +15,8 @@ urls = ( | |||||
| '/logout', 'Logout', | '/logout', 'Logout', | ||||
| '/register', 'Register', | '/register', 'Register', | ||||
| '/guestbook', 'Guestbook', | '/guestbook', 'Guestbook', | ||||
| '/project', 'Project', | |||||
| '/new_project', 'Project', | |||||
| '/my_projects', 'My_projects', | |||||
| '/admin', 'Admin', | '/admin', 'Admin', | ||||
| ) | ) | ||||
| @@ -46,10 +47,5 @@ class Index: | |||||
| # Get main page | # Get main page | ||||
| def GET(self): | def GET(self): | ||||
| data = web.input(categoryid=0) | |||||
| projects=[] | |||||
| if data.categoryid != 0: | |||||
| open_projects = get_projects_by_status_and_category(data.categoryid, "open") | |||||
| nav = get_nav_bar(session) | nav = get_nav_bar(session) | ||||
| categories = get_categories() | |||||
| return render.index(nav, categories, open_projects) | |||||
| return render.index(nav) | |||||
| @@ -1,5 +1,5 @@ | |||||
| import web | import web | ||||
| from views.forms import project_form | |||||
| from views.forms import get_task_form_elements, get_new_project_form, get_project_form_elements | |||||
| import models.project | import models.project | ||||
| from views.utils import get_nav_bar | from views.utils import get_nav_bar | ||||
| @@ -12,15 +12,72 @@ class Project: | |||||
| def GET(self): | def GET(self): | ||||
| session = web.ctx.session | session = web.ctx.session | ||||
| nav = get_nav_bar(session) | nav = get_nav_bar(session) | ||||
| project_form_elements = get_project_form_elements() | |||||
| task_form_elements = get_task_form_elements() | |||||
| project_form = get_new_project_form((project_form_elements + task_form_elements)) | |||||
| return render.project(nav, project_form) | return render.project(nav, project_form) | ||||
| # Register new user in database | |||||
| # Register new project in database | |||||
| def POST(self): | def POST(self): | ||||
| data = web.input() | data = web.input() | ||||
| session = web.ctx.session | session = web.ctx.session | ||||
| nav = get_nav_bar(session) | |||||
| print(data) | print(data) | ||||
| print(session.userid) | |||||
| task_count = self.get_task_count(data) | |||||
| try: | |||||
| if data["Add Task"]: | |||||
| print("tiss") | |||||
| project_form = self.compose_form(task_count, data, True) | |||||
| return render.project(nav, project_form) | |||||
| except Exception as e: | |||||
| try: | |||||
| if data["Remove Task"]: | |||||
| print("ass") | |||||
| project_form = self.compose_form(task_count, data, False) | |||||
| return render.project(nav, project_form) | |||||
| else: | |||||
| pass | |||||
| except Exception as e: | |||||
| try: | |||||
| if data["Create Project"]: | |||||
| pass | |||||
| else: | |||||
| pass | |||||
| except Exception as e: | |||||
| pass | |||||
| categories = models.project.set_project(data.category_name, str(session.userid), | categories = models.project.set_project(data.category_name, str(session.userid), | ||||
| data.project_title, data.project_description, "open") | data.project_title, data.project_description, "open") | ||||
| print(categories) | |||||
| raise web.seeother('/') | raise web.seeother('/') | ||||
| def get_task_count(self, data): | |||||
| task_count = 0 | |||||
| while True: | |||||
| try: | |||||
| if data["task_title_"+str(task_count)] or data["task_description_"+str(task_count)] or data["task_budget_"+str(task_count)]: | |||||
| task_count += 1 | |||||
| except Exception as e: | |||||
| pass | |||||
| break | |||||
| return task_count | |||||
| def compose_form(self, task_count, data, add): | |||||
| project_form_elements = get_project_form_elements(data.project_title, data.project_description, data.category_name) | |||||
| task_form_elements = () | |||||
| old_task_form_element = () | |||||
| print(task_count) | |||||
| for i in range(0, task_count): | |||||
| print("i: ", i) | |||||
| old_task_form_element = get_task_form_elements(i, data["task_title_"+str(i)], | |||||
| data["task_description_"+str(i)], data["budget_"+str(i)]) | |||||
| task_form_elements = (task_form_elements + old_task_form_element) | |||||
| print(len(task_form_elements)) | |||||
| if add: | |||||
| new_task_form_elements = get_task_form_elements(task_count) | |||||
| project_form = get_new_project_form((project_form_elements + task_form_elements + new_task_form_elements)) | |||||
| else: | |||||
| project_form = get_new_project_form((project_form_elements + task_form_elements)) | |||||
| return project_form | |||||
| @@ -9,7 +9,8 @@ def get_nav_bar(session): | |||||
| else: | else: | ||||
| result += ' <li><a href="register">Register</a></li>' | result += ' <li><a href="register">Register</a></li>' | ||||
| result += ' <li><a href="login">Login</a></li>' | result += ' <li><a href="login">Login</a></li>' | ||||
| result += ' <li><a href="project">Projects</a></li>' | |||||
| result += ' <li><a href="new_project">New</a></li>' | |||||
| result += ' <li><a href="my_projects">Projects</a></li>' | |||||
| result += ' <li><a href="guestbook">Guestbook</a></li>' | result += ' <li><a href="guestbook">Guestbook</a></li>' | ||||
| result += ' </ul>' | result += ' </ul>' | ||||
| result += '</nav>' | result += '</nav>' | ||||