jakobsn 6 лет назад
Родитель
Сommit
df19ae3ba4
4 измененных файлов: 50 добавлений и 28 удалений
  1. +7
    -6
      src/app/templates/apply.html
  2. +36
    -12
      src/app/views/apply.py
  3. +5
    -5
      src/app/views/forms.py
  4. +2
    -5
      src/app/views/new_project.py

+ 7
- 6
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)

<head>
<title>Beelance2</title>
@@ -20,13 +20,14 @@ $def with (nav, apply_form, get_apply_permission_form, project, applicants)
<form method="POST">
<p>Users to apply:</p>
$applicants
<h4>Add Users</h4>
$:apply_form.render()
$for i, user in enumerate(applicants):
<p>Users to apply:</p>

$for i in range(0, len(applicants)):
<div>
$ apply_permissions_form = get_apply_permissions_form(i, userid=user)
$user[1]
$ apply_permissions_form = get_apply_permissions_form(i, permissions[i][0], permissions[i][1], permissions[i][2], applicants[i])
$applicants[i][1]
$:apply_permissions_form.render()
</div>
</form>


+ 36
- 12
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


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

+ 2
- 5
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)


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