Просмотр исходного кода

checkpoint adding users to project

https
jakobsn 6 лет назад
Родитель
Сommit
6f435602df
5 измененных файлов: 38 добавлений и 18 удалений
  1. +1
    -1
      mysql/sql/init.sql
  2. +17
    -7
      src/app/models/project.py
  3. +3
    -3
      src/app/models/register.py
  4. +9
    -0
      src/app/views/forms.py
  5. +8
    -7
      src/app/views/new_project.py

+ 1
- 1
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,


+ 17
- 7
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()

+ 3
- 3
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()

+ 9
- 0
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")


+ 8
- 7
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

Загрузка…
Отмена
Сохранить