diff --git a/mysql/sql/init.sql b/mysql/sql/init.sql index 670764e..8c6cf9d 100644 --- a/mysql/sql/init.sql +++ b/mysql/sql/init.sql @@ -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, diff --git a/src/app/models/project.py b/src/app/models/project.py index b9b5180..45d81bb 100644 --- a/src/app/models/project.py +++ b/src/app/models/project.py @@ -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() diff --git a/src/app/models/register.py b/src/app/models/register.py index 9758033..028f62d 100644 --- a/src/app/models/register.py +++ b/src/app/models/register.py @@ -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() diff --git a/src/app/views/forms.py b/src/app/views/forms.py index 1230a6f..4175602 100644 --- a/src/app/views/forms.py +++ b/src/app/views/forms.py @@ -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") diff --git a/src/app/views/new_project.py b/src/app/views/new_project.py index dabd294..4402438 100644 --- a/src/app/views/new_project.py +++ b/src/app/views/new_project.py @@ -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