Bläddra i källkod

checkpoint

https
jakobsn 6 år sedan
förälder
incheckning
e487a706da
4 ändrade filer med 94 tillägg och 81 borttagningar
  1. +3
    -1
      src/app/templates/new_project.html
  2. +6
    -6
      src/app/views/forms.py
  3. +82
    -71
      src/app/views/new_project.py
  4. +3
    -3
      src/app/views/register.py

+ 3
- 1
src/app/templates/new_project.html Visa fil

@@ -1,4 +1,4 @@
$def with (nav, project_form)
$def with (nav, project_form, messasge)

<head>
<title>Beelance2</title>
@@ -16,6 +16,8 @@ $def with (nav, project_form)
<form method="POST">
$:project_form.render()
</form>

<p>$messasge</p>
</body>

<footer></footer>

+ 6
- 6
src/app/views/forms.py Visa fil

@@ -72,7 +72,7 @@ def get_project_form_elements(project_title="", project_description="", category
def get_user_form_elements(identifier=0, user_name="", read_permission=True, write_permission=False, modify_permission=False):
users = get_users()
user_form_elements = (
form.Textbox("user_name_" + str(identifier), not_empty, description="User", value=user_name),
form.Textbox("user_name_" + str(identifier), description="User", value=user_name),
form.Checkbox("read_permission_" + str(identifier), description="Read Permission", checked=read_permission),
form.Checkbox("write_permission_" + str(identifier), description="Write Permission", checked=write_permission),
form.Checkbox("modify_permission_" + str(identifier), description="Modify Permission", checked=modify_permission)
@@ -87,11 +87,11 @@ 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("Remove User", type="submit", description="Remove User", value="remove_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")
form.Button("add_user", type="submit", description="Add User", value="add_user", html="Add User"),
form.Button("remove_user", type="submit", description="Remove User", value="remove_user", html="Remove User"),
form.Button("add_task", type="submit", description="Add Task", value="add_task", html="Add Task"),
form.Button("remove_task", type="submit", description="Remove Task ", value="remove_task", html="Remove Task"),
form.Button("create_project", type="submit", description="Create Project", value="create_project", html="Create Project")
)

def get_apply_form(elements):


+ 82
- 71
src/app/views/new_project.py Visa fil

@@ -21,7 +21,7 @@ class New_project:
task_form_elements = get_task_form_elements()
user_form_elements = get_user_form_elements()
project_form = get_new_project_form((project_form_elements + task_form_elements + user_form_elements))
return render.new_project(nav, project_form)
return render.new_project(nav, project_form, "")

def POST(self):
"""
@@ -36,78 +36,89 @@ class New_project:
nav = get_nav_bar(session)

print(data)
# Try the three different URL input parameters to determine how to generate the form
try:
# Add a set of task fields to the form
if data["Add Task"]:
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, "remove_task")
return render.new_project(nav, project_form)
except Exception as e:
try:
if data["Add User"]:
project_form = self.compose_form(data, "add_user")
return render.new_project(nav, project_form)
except Exception as e:
try:
if data["Remove User"]:
project_form = self.compose_form(data, "remove_user")
return render.new_project(nav, project_form)
except Exception as e:
try:
# Post the form data and save the project in the database
if data["Create Project"]:
task_count = get_task_count(data)
user_count = get_user_count(data)

# Get the "real" user_count, if there is only one field and no users assigned the project is open
status = "open"
if user_count > 0:
if len(data.user_name_0):
status = "in progress"
# Save the project to the database
projectid = models.project.set_project(data.category_name, str(session.userid),
data.project_title, data.project_description, status)
# Try the different URL input parameters to determine how to generate the form
# Add a set of task fields to the form
if data.add_task:
project_form = self.compose_form(data, "add_task")
return render.new_project(nav, project_form, "")
# Remove a set of task fields from the form
if data.remove_task:
project_form = self.compose_form(data, "remove_task")
return render.new_project(nav, project_form, "")
if data.add_user:
project_form = self.compose_form(data, "add_user")
return render.new_project(nav, project_form, "")
if data.remove_user:
project_form = self.compose_form(data, "remove_user")
return render.new_project(nav, project_form, "")
# Post the form data and save the project in the database
if data.create_project:
project_form = self.compose_form(data, None)
if not project_form.validates():
return render.new_project(nav, project_form, "")

task_count = get_task_count(data)
user_count = get_user_count(data)

# If there already are users assignet to the project the status will be set to in progress
status = "open"
if len(data.user_name_0):
status = "in progress"

# Validate the input user names
for i in range(0, user_count):
if len(data["user_name_"+str(i)]) and not models.login.get_user_id_by_name(data["user_name_"+str(i)]):
return render.register(nav, project_form, "Invalid user: " + data["user_name_"+str(i)])

# Save the project to the database
projectid = models.project.set_project(data.category_name, str(session.userid),
data.project_title, data.project_description, status)

# Save the tasks in the database
for i in range(0, task_count):
models.project.set_task(str(projectid), (data["task_title_" + str(i)]),
(data["task_description_" + str(i)]), (data["budget_" + str(i)]))
# Save the tasks in the database
for i in range(0, task_count):
models.project.set_task(str(projectid), (data["task_title_" + str(i)]),
(data["task_description_" + str(i)]), (data["budget_" + str(i)]))
for i in range(0, user_count):
if len(data["user_name_"+str(i)]):
userid = models.login.get_user_id_by_name(data["user_name_"+str(i)])
read, write, modify = "FALSE", "FALSE", "FALSE"
try:
data["read_permission_"+str(i)]
read = "TRUE"
except Exception as e:
read = "FALSE"
pass
try:
data["write_permission_"+str(i)]
write = "TRUE"
except Exception as e:
write = "FALSE"
pass
try:
data["modify_permission_"+str(i)]
modify = "TRUE"
except Exception as e:
# This error will be raised if no permission is set
modify = "FALSE"
pass
print(read, write, modify)
models.project.set_projects_user(str(projectid), str(userid), read, write, modify)
raise web.seeother('/')
except Exception as e:
raise e
# Save the users in the database
if len(data.user_name_0):

for i in range(0, user_count):
if len(data["user_name_"+str(i)]):
userid = models.login.get_user_id_by_name(data["user_name_"+str(i)])
read, write, modify = "FALSE", "FALSE", "FALSE"
try:
data["read_permission_"+str(i)]
read = "TRUE"
except Exception as e:
read = "FALSE"
pass
try:
data["write_permission_"+str(i)]
write = "TRUE"
except Exception as e:
write = "FALSE"
pass
try:
data["modify_permission_"+str(i)]
modify = "TRUE"
except Exception as e:
# This error will be raised if no permission is set
modify = "FALSE"
pass
print(read, write, modify)
models.project.set_projects_user(str(projectid), str(userid), read, write, modify)

raise web.seeother('/?projects=my')
def compose_form(self, data, operation):
"""
Compose a new project form by adding or removing a task


+ 3
- 3
src/app/views/register.py Visa fil

@@ -32,13 +32,13 @@ class Register:
nav = get_nav_bar(session)
data = web.input()

f = register_form()
register = register_form()
if not f.validates():
return render.register(nav, r, "All fields must be valid.")
return render.register(nav, register, "All fields must be valid.")

# Check if user exists
if models.login.get_user_id_by_name(data.username):
return render.register(nav, r, "Invalid user, already exists.")
return render.register(nav, register, "Invalid user, already exists.")

models.register.set_user(data.username,
hashlib.md5(b'TDT4237' + data.password.encode('utf-8')).hexdigest(),


Laddar…
Avbryt
Spara