From e433f3d3a51718864cb2ee51aa2c6c77141e85ce Mon Sep 17 00:00:00 2001 From: jakobsn Date: Fri, 29 Nov 2019 15:35:39 +0100 Subject: [PATCH] checkpoint apply edit --- src/app/templates/apply.html | 11 +++++++++-- src/app/views/apply.py | 22 +++++++++++++--------- src/app/views/forms.py | 17 ++++++++++++----- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/src/app/templates/apply.html b/src/app/templates/apply.html index c1c4f7a..c665c48 100644 --- a/src/app/templates/apply.html +++ b/src/app/templates/apply.html @@ -1,4 +1,4 @@ -$def with (nav, apply_form, project, applicants) +$def with (nav, apply_form, get_apply_permission_form, project, applicants) Beelance2 @@ -21,10 +21,17 @@ $def with (nav, apply_form, project, applicants)

Users to apply:

+ $applicants + $:apply_form.render() + $for i, user in enumerate(applicants): +
$user[1]
- $:apply_form.render() + + $ apply_permissions_form = get_apply_permissions_form(i, userid=user) + $:apply_permissions_form.render() +
\ No newline at end of file diff --git a/src/app/views/apply.py b/src/app/views/apply.py index 9815489..350e255 100644 --- a/src/app/views/apply.py +++ b/src/app/views/apply.py @@ -2,7 +2,7 @@ import web import models.project from models.login import get_user_name_by_id from views.utils import get_nav_bar, get_element_count -from views.forms import get_apply_form, get_user_dropdown +from views.forms import get_apply_form, get_user_dropdown, get_apply_permissions_form # Get html templates render = web.template.render('templates/') @@ -25,8 +25,11 @@ class Apply: user_dropdown = get_user_dropdown() apply_form = get_apply_form(user_dropdown) + apply_permissions_form = get_apply_permissions_form() applicants = [[session.userid, session.username]] - return render.apply(nav, apply_form, project, applicants) + 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) def POST(self): data = web.input(projectid=0, add_user=None, remove_user=None, apply=None) @@ -35,19 +38,20 @@ class Apply: applicants = [session.username] user_dropdown = get_user_dropdown() apply_form = get_apply_form(user_dropdown) + apply_permission_form = get_apply_permissions_form() print("POST") print(data) + render = web.template.render('templates/', globals={"get_apply_permissions_form":get_apply_permissions_form, 'session':session}) if data.projectid: 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, project, applicants) + return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants) elif data.remove_user: applicants = self.get_applicants(data, "remove_user") - return render.apply(nav, apply_form, project, applicants) - + return render.apply(nav, apply_form, get_apply_permissions_form, project, applicants) elif data.apply: applicants = self.get_applicants(data, "") for applicant in applicants: @@ -58,12 +62,12 @@ class Apply: def get_applicants(self, data, operation): print(operation) print(data) - user_count = get_element_count(data, "user_name_") + user_count = get_element_count(data, "user_") print("count", user_count) applicants = [] for i in range (0, user_count): - print("Raw applicant", data["user_name_"+str(i)]) - applicant = data["user_name_"+str(i)][1:][:-1].split(",") + print("Raw applicant", data["user_"+str(i)]) + applicant = data["user_"+str(i)][1:][:-1].split(",") applicants.append([ int(applicant[0]), applicant[1][2:][:-1] ]) if operation == "remove_user": @@ -78,7 +82,7 @@ class Apply: elif operation == "add_user": - user_id_to_add = data.user_id_0 + 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: diff --git a/src/app/views/forms.py b/src/app/views/forms.py index 956683a..9a5264d 100644 --- a/src/app/views/forms.py +++ b/src/app/views/forms.py @@ -113,9 +113,16 @@ def get_apply_form(elements): ) return apply_form -def get_user_dropdown(identifier=0): +def get_user_dropdown(): users = get_users() - #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) - return form.Dropdown("user_id_" + str(identifier), description="User", args=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): + 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) + ) + return user_permissions