| @@ -65,7 +65,7 @@ CREATE TABLE projects ( | |||
| FOREIGN KEY (userid) REFERENCES users(userid) | |||
| ); | |||
| CREATE TABLE projects_users ( | |||
| CREATE TABLE project_users ( | |||
| projectid INT UNSIGNED NOT NULL, | |||
| userid INT UNSIGNED NOT NULL, | |||
| read_permission BOOLEAN, | |||
| @@ -119,14 +119,14 @@ def set_task(projectid, task_title, task_description, budget): | |||
| :type budget: str | |||
| """ | |||
| cursor = db.cursor() | |||
| query = ("INSERT INTO tasks (teamid, projectid, title, task_description, budget, task_status) VALUES (1, \"" + | |||
| query = ("INSERT INTO tasks (projectid, title, task_description, budget, task_status) VALUES (\"" + | |||
| projectid + "\", \"" + task_title + "\", \"" + | |||
| task_description + "\", \"" + budget + "\", \"waiting for delivery\")") | |||
| cursor.execute(query) | |||
| db.commit() | |||
| cursor.close | |||
| def get_tasks_by_project_id(project_id): | |||
| def get_tasks_by_project_id(projectid): | |||
| """ | |||
| Get all tasks belonging to a project | |||
| @@ -135,27 +135,37 @@ def get_tasks_by_project_id(project_id): | |||
| :return: List of tasks | |||
| """ | |||
| cursor = db.cursor() | |||
| query = ("SELECT * FROM tasks WHERE projectid = \"" + project_id + "\"") | |||
| query = ("SELECT * FROM tasks WHERE projectid = \"" + projectid + "\"") | |||
| cursor.execute(query) | |||
| tasks = cursor.fetchall() | |||
| cursor.close | |||
| return tasks | |||
| def set_task_file(task_id, filename): | |||
| def set_task_file(taskid, filename): | |||
| cursor = db.cursor() | |||
| query = ("INSERT INTO task_files (taskid, filename) VALUES (\"" + | |||
| task_id + "\", \"" + filename + "\")") | |||
| taskid + "\", \"" + filename + "\")") | |||
| print(query) | |||
| cursor.execute(query) | |||
| db.commit() | |||
| cursor.close() | |||
| def get_task_files(task_id): | |||
| def get_task_files(taskid): | |||
| cursor = db.cursor() | |||
| query = ("SELECT filename FROM task_files WHERE taskid = \"" + str(task_id) + "\"") | |||
| query = ("SELECT filename FROM task_files WHERE taskid = \"" + str(taskid) + "\"") | |||
| cursor.execute(query) | |||
| filenames = cursor.fetchall() | |||
| print(query) | |||
| print(filenames) | |||
| cursor.close | |||
| return filenames | |||
| def set_project_users(projectid, userid, read_permission="TRUE", | |||
| write_permission="NULL", modify_permission="NULL"): | |||
| cursor = db.cursor() | |||
| query = ("INSERT INTO project_users VALUES (\"" + project_id + "\", \"" + | |||
| userid + "\", \"" + read_permission + "\", \"" + | |||
| write_permission + "\", \"" + modify_permission + "\"") | |||
| cursor.execute(query) | |||
| df.commit() | |||
| cursor.close() | |||
| @@ -27,9 +27,9 @@ def set_user(username, password, full_name, company, phone_number, | |||
| """ | |||
| cursor = db.cursor() | |||
| query = ("INSERT INTO users VALUES (NULL, \"" + username + "\", \"" + | |||
| password + "\", \"" + full_name + "\" , \"" + company + "\", \"" + | |||
| phone_number + "\", \"" + street_address + "\", \"" + city + "\", \"" + | |||
| state + "\", \"" + postal_code + "\", \"" + country + "\")") | |||
| password + "\", \"" + full_name + "\" , \"" + company + "\", \"" + | |||
| phone_number + "\", \"" + street_address + "\", \"" + city + "\", \"" + | |||
| state + "\", \"" + postal_code + "\", \"" + country + "\")") | |||
| cursor.execute(query) | |||
| db.commit() | |||
| cursor.close() | |||
| @@ -64,6 +64,14 @@ def get_project_form_elements(project_title="", project_description="", category | |||
| ) | |||
| return project_form_elements | |||
| def get_user_form_elements(user_name, read_permission, write_permission, modify_permission): | |||
| user_form_elements = ( | |||
| form.Textbox("username", description="User", value=user_name), | |||
| form.Checkbox("read_permission", description="Read Permission", checked=True), | |||
| form.Checkbox("write_permission", description="Write Permission", checked=False), | |||
| form.Checkbox("modify_permission", description="Modify Permission", checked=False) | |||
| ) | |||
| def get_new_project_form(elements): | |||
| """ | |||
| Combine a project form element and task elements to make a complete project form | |||
| @@ -72,6 +80,7 @@ def get_new_project_form(elements): | |||
| :return: The ready to use project form | |||
| """ | |||
| return form.Form(*elements, | |||
| form.Button("Add User", type="submit", description="Add User", value="add_user"), | |||
| 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") | |||
| @@ -36,13 +36,13 @@ class New_project: | |||
| try: | |||
| # Add a set of task fields to the form | |||
| if data["Add Task"]: | |||
| project_form = self.compose_form(data, True) | |||
| project_form = self.compose_form(data, "add_task") | |||
| return render.new_project(nav, project_form) | |||
| except Exception as e: | |||
| try: | |||
| # Remove a set of task fields from the form | |||
| if data["Remove Task"]: | |||
| project_form = self.compose_form(data, False) | |||
| project_form = self.compose_form(data, "remove_task") | |||
| return render.new_project(nav, project_form) | |||
| except Exception as e: | |||
| try: | |||
| @@ -71,7 +71,7 @@ class New_project: | |||
| task_count = int((len(data) - 4) / 3) | |||
| return task_count | |||
| def compose_form(self, data, add): | |||
| def compose_form(self, data, operation): | |||
| """ | |||
| Compose a new project form by adding or removing a task | |||
| @@ -82,7 +82,7 @@ class New_project: | |||
| """ | |||
| task_count = self.get_task_count(data) | |||
| # A task is either added or removed | |||
| if not add and task_count >= 1: | |||
| if operation == "remove_task" and task_count >= 1: | |||
| task_count -= 1 | |||
| project_form_elements = get_project_form_elements(data.project_title, data.project_description, data.category_name) | |||
| @@ -94,10 +94,11 @@ class New_project: | |||
| data["task_description_"+str(i)], data["budget_"+str(i)]) | |||
| task_form_elements = (task_form_elements + old_task_form_element) | |||
| if add: | |||
| if operation == "add_task": | |||
| 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 | |||
| project_form = get_new_project_form((project_form_elements + task_form_elements)) | |||
| return project_form | |||