| @@ -96,7 +96,7 @@ nav ul { | |||||
| background-color: lightskyblue; | background-color: lightskyblue; | ||||
| } | } | ||||
| #apply { | |||||
| #apply_button { | |||||
| border: 1px solid gray; | border: 1px solid gray; | ||||
| padding: 5px; | padding: 5px; | ||||
| background-color: lightslategray; | background-color: lightslategray; | ||||
| @@ -106,7 +106,7 @@ nav ul { | |||||
| margin-bottom: 5px; | margin-bottom: 5px; | ||||
| } | } | ||||
| #apply:hover { | |||||
| #apply_button:hover { | |||||
| background-color: lightskyblue; | background-color: lightskyblue; | ||||
| } | } | ||||
| @@ -121,3 +121,16 @@ div { | |||||
| form { | form { | ||||
| margin: auto; | margin: auto; | ||||
| } | } | ||||
| .applicant{ | |||||
| border: 1px solid gray; | |||||
| padding: 5px; | |||||
| } | |||||
| #project_buttons div { | |||||
| margin-left: 180px; | |||||
| } | |||||
| button { | |||||
| margin: 5px; | |||||
| } | |||||
| @@ -14,21 +14,22 @@ $def with (nav, apply_form, get_apply_permission_form, project, applicants, perm | |||||
| <h1>Apply for this project</h1> | <h1>Apply for this project</h1> | ||||
| $if project[5] == "open" and session.userid != project[2]: | $if project[5] == "open" and session.userid != project[2]: | ||||
| <h2>Title: $project[3]</h2> | |||||
| <p>Description: $project[4]</p> | |||||
| <p>Status: $project[5]</p> | |||||
| <div id="project_meta"> | |||||
| <h2>Title: $project[3]</h2> | |||||
| <p>Description: $project[4]</p> | |||||
| <p>Status: $project[5]</p> | |||||
| </div> | |||||
| <form method="POST"> | <form method="POST"> | ||||
| <h4>Add Users</h4> | <h4>Add Users</h4> | ||||
| $:apply_form.render() | $:apply_form.render() | ||||
| <p>Users to apply:</p> | |||||
| <h4>Users to apply:</h4> | |||||
| $for i in range(0, len(applicants)): | $for i in range(0, len(applicants)): | ||||
| <div> | |||||
| <div class="applicant"> | |||||
| User: $applicants[i][1] | |||||
| $ apply_permissions_form = get_apply_permissions_form(i, permissions[i][0], permissions[i][1], permissions[i][2], applicants[i]) | $ 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() | |||||
| $:apply_permissions_form.render() | |||||
| </div> | </div> | ||||
| </form> | </form> | ||||
| @@ -18,7 +18,7 @@ $def with (nav, project_form, project_buttons, messasge) | |||||
| $:project_form.render() | $:project_form.render() | ||||
| </div> | </div> | ||||
| <div> | |||||
| <div id="project_buttons"> | |||||
| <div> | <div> | ||||
| $:project_buttons.add_task.render() | $:project_buttons.add_task.render() | ||||
| $:project_buttons.remove_task.render() | $:project_buttons.remove_task.render() | ||||
| @@ -27,8 +27,10 @@ $def with (nav, project_form, project_buttons, messasge) | |||||
| $:project_buttons.add_user.render() | $:project_buttons.add_user.render() | ||||
| $:project_buttons.remove_user.render() | $:project_buttons.remove_user.render() | ||||
| </div> | </div> | ||||
| <div> | |||||
| $:project_buttons.create_project.render() | |||||
| </div> | |||||
| </div> | </div> | ||||
| $:project_buttons.create_project.render() | |||||
| </form> | </form> | ||||
| <p>$messasge</p> | <p>$messasge</p> | ||||
| @@ -12,11 +12,11 @@ $def with (nav, project_form, project, tasks, permissions, categories) | |||||
| $:nav | $:nav | ||||
| $if len(project) and permissions[0]: | |||||
| $if len(project) and (permissions[0] or project[5] == "open") and session.username: | |||||
| <h1>Project: $project[3]</h1> | <h1>Project: $project[3]</h1> | ||||
| $if project[5] == "open" and session.userid != project[2]: | |||||
| <div id="apply" onclick="location.href='/apply?projectid=$project[0]'" name="Apply" description="apply">Apply for this project</div> | |||||
| $if session.userid != project[2] and project[5] == "open": | |||||
| <div id="apply_button" onclick="location.href='/apply?projectid=$project[0]'" name="Apply" description="apply">Apply for this project</div> | |||||
| <div id="project_meta"> | <div id="project_meta"> | ||||
| <p>Status: $project[5]</p> | <p>Status: $project[5]</p> | ||||
| @@ -2,7 +2,7 @@ import web | |||||
| import models.project | import models.project | ||||
| from models.login import get_user_name_by_id | from models.login import get_user_name_by_id | ||||
| from views.utils import get_nav_bar, get_element_count | from views.utils import get_nav_bar, get_element_count | ||||
| from views.forms import get_apply_form, get_user_dropdown, get_apply_permissions_form | |||||
| from views.forms import get_apply_form, get_apply_permissions_form | |||||
| # Get html templates | # Get html templates | ||||
| render = web.template.render('templates/') | render = web.template.render('templates/') | ||||
| @@ -26,8 +26,7 @@ class Apply: | |||||
| tasks = [[]] | tasks = [[]] | ||||
| # Assemble form and set the user in context as an applicant with all permissions | # Assemble form and set the user in context as an applicant with all permissions | ||||
| user_dropdown = get_user_dropdown() | |||||
| apply_form = get_apply_form(user_dropdown) | |||||
| apply_form = get_apply_form() | |||||
| apply_permissions_form = get_apply_permissions_form() | apply_permissions_form = get_apply_permissions_form() | ||||
| applicants = [[session.userid, session.username]] | applicants = [[session.userid, session.username]] | ||||
| permissions = [["TRUE", "TRUE", "TRUE"]] | permissions = [["TRUE", "TRUE", "TRUE"]] | ||||
| @@ -45,8 +44,7 @@ class Apply: | |||||
| # Assemble form | # Assemble form | ||||
| applicants = [session.username] | applicants = [session.username] | ||||
| user_dropdown = get_user_dropdown() | |||||
| apply_form = get_apply_form(user_dropdown) | |||||
| apply_form = get_apply_form() | |||||
| apply_permission_form = get_apply_permissions_form() | apply_permission_form = get_apply_permissions_form() | ||||
| # Prepare globals | # Prepare globals | ||||
| @@ -99,23 +99,14 @@ project_buttons = form.Form( | |||||
| form.Button("create_project", type="submit", description="Create Project", value="create_project", html="Create Project") | form.Button("create_project", type="submit", description="Create Project", value="create_project", html="Create Project") | ||||
| ) | ) | ||||
| def get_apply_form(elements): | |||||
| try: | |||||
| 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") | |||||
| ) | |||||
| # Exception will occur if the form only contains one element | |||||
| 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") | |||||
| ) | |||||
| return apply_form | |||||
| def get_user_dropdown(): | |||||
| def get_apply_form(): | |||||
| users = get_users() | users = get_users() | ||||
| return form.Dropdown("user_to_add", description="User", args=users) | |||||
| apply_form = form.Form( | |||||
| form.Dropdown("user_to_add", description="User", args=users), | |||||
| 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") | |||||
| ) | |||||
| return apply_form | |||||
| 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( | user_permissions = form.Form( | ||||