diff --git a/src/app/templates/apply.html b/src/app/templates/apply.html
index 9a830aa..4a0c642 100644
--- a/src/app/templates/apply.html
+++ b/src/app/templates/apply.html
@@ -1,4 +1,4 @@
-$def with (nav, apply_form, get_apply_permission_form, project, applicants)
+$def with (nav, apply_form, get_apply_permission_form, project, applicants, permissions)
Beelance2
@@ -20,13 +20,14 @@ $def with (nav, apply_form, get_apply_permission_form, project, applicants)
diff --git a/src/app/views/apply.py b/src/app/views/apply.py
index 350e255..a808839 100644
--- a/src/app/views/apply.py
+++ b/src/app/views/apply.py
@@ -27,9 +27,10 @@ class Apply:
apply_form = get_apply_form(user_dropdown)
apply_permissions_form = get_apply_permissions_form()
applicants = [[session.userid, session.username]]
+ permissions = [["TRUE", "TRUE", "TRUE"]]
render = web.template.render('templates/', globals={"get_apply_permissions_form":get_apply_permissions_form, 'session':session})
- return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants)
+ return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants, permissions)
def POST(self):
data = web.input(projectid=0, add_user=None, remove_user=None, apply=None)
@@ -46,18 +47,18 @@ class Apply:
project = models.project.get_project_by_id(data.projectid)
if data.add_user:
- applicants = self.get_applicants(data, "add_user")
- return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants)
+ applicants, permissions = self.get_applicants(data, "add_user")
+ return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants,permissions)
elif data.remove_user:
- applicants = self.get_applicants(data, "remove_user")
- return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants)
+ applicants, permissions = self.get_applicants(data, "remove_user")
+ return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants, permissions)
elif data.apply:
- applicants = self.get_applicants(data, "")
- for applicant in applicants:
- models.project.set_projects_user(data.projectid, str(applicant[0]), "TRUE", "TRUE", "FALSE")
- models.project.update_project_status(data.projectid, "in progress")
- raise web.seeother(('/project?projectid=' + str(data.projectid)))
+ applicants, permissions = self.get_applicants(data, "")
+ for applicant, permission in zip(applicants, permissions):
+ models.project.set_projects_user(data.projectid, str(applicant[0]), permission[0], permission[1], permission[2])
+ models.project.update_project_status(data.projectid, "in progress")
+ raise web.seeother(('/project?projectid=' + str(data.projectid)))
def get_applicants(self, data, operation):
print(operation)
@@ -65,11 +66,33 @@ class Apply:
user_count = get_element_count(data, "user_")
print("count", user_count)
applicants = []
+ permissions = []
for i in range (0, user_count):
print("Raw applicant", data["user_"+str(i)])
applicant = data["user_"+str(i)][1:][:-1].split(",")
applicants.append([ int(applicant[0]), applicant[1][2:][:-1] ])
+ 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:
+ modify = "FALSE"
+ pass
+ permissions.append([read, write, modify])
+
if operation == "remove_user":
print("remove")
user_to_remove = data.remove_user[1:][:-1].split(",")
@@ -78,17 +101,18 @@ class Apply:
print(user_to_remove, applicants[i])
if user_to_remove == applicants[i]:
applicants.pop(i)
+ permissions.pop(i)
break
elif operation == "add_user":
-
user_id_to_add = data.user_to_add
user_name_to_add = get_user_name_by_id(user_id_to_add)
new_applicant = [ int(user_id_to_add), user_name_to_add ]
if new_applicant not in applicants:
applicants.append(new_applicant)
+ permissions.append(["TRUE", "FALSE", "FALSE"])
print(applicants)
- return applicants
+ return applicants, permissions
diff --git a/src/app/views/forms.py b/src/app/views/forms.py
index 9a5264d..ded25c9 100644
--- a/src/app/views/forms.py
+++ b/src/app/views/forms.py
@@ -109,7 +109,7 @@ def get_apply_form(elements):
except TypeError as e:
apply_form = form.Form(elements,
form.Button("add_user", type="submit", description="Add User", value="add_user", html="Add User"),
- form.Button("apply", type="submit", description="Apply", value="apply", html="apply")
+ form.Button("apply", type="submit", description="Apply", value="apply", html="Apply")
)
return apply_form
@@ -117,12 +117,12 @@ def get_user_dropdown():
users = get_users()
return form.Dropdown("user_to_add", description="User", args=users)
-def get_apply_permissions_form(identifier=0, read_permission=True, write_permission=False, modify_permission=False, userid=None):
+def get_apply_permissions_form(identifier=0, read_permission="TRUE", write_permission="FALSE", modify_permission="FALSE", userid=None):
user_permissions = form.Form(
form.Button("remove_user", type="submit", description="User to remove", value=userid, html="X"),
form.Hidden("user_"+str(identifier), description="User to apply for project", value=userid),
- form.Checkbox("read_permission_" + str(identifier), description="Read Permission", checked=read_permission, value=True),
- form.Checkbox("write_permission_" + str(identifier), description="Write Permission", checked=write_permission, value=True),
- form.Checkbox("modify_permission_" + str(identifier), description="Modify Permission", checked=modify_permission, value=True)
+ form.Checkbox("read_permission_" + str(identifier), description="Read Permission", checked=(read_permission=="TRUE"), value=True),
+ form.Checkbox("write_permission_" + str(identifier), description="Write Permission", checked=(write_permission=="TRUE"), value=True),
+ form.Checkbox("modify_permission_" + str(identifier), description="Modify Permission", checked=(modify_permission=="TRUE"), value=True)
)
return user_permissions
diff --git a/src/app/views/new_project.py b/src/app/views/new_project.py
index 9c74c30..6bf177b 100644
--- a/src/app/views/new_project.py
+++ b/src/app/views/new_project.py
@@ -107,11 +107,9 @@ class New_project:
data["modify_permission_"+str(i)]
modify = "TRUE"
except Exception as e:
- # This error will be raised if no permission is set
modify = "FALSE"
-
+ pass
models.project.set_projects_user(str(projectid), str(userid), read, write, modify)
-
raise web.seeother('/?projects=my')
def compose_form(self, data, operation):
@@ -144,7 +142,7 @@ class New_project:
# Recreate user form fields
user_form_elements = ()
for i in range(0, user_count):
- read, write, modify = "FALSE", "FALSE", "FALSE"
+ read, write, modify = False, False, False
try:
data["read_permission_"+str(i)]
read = True
@@ -161,7 +159,6 @@ class New_project:
data["modify_permission_"+str(i)]
modify = True
except Exception as e:
- # This error will be raised if no permission is set
modify = False
pass
old_user_form_element = get_user_form_elements(i, data["user_name_"+str(i)], read, write, modify)