| @@ -96,7 +96,7 @@ nav ul { | |||
| background-color: lightskyblue; | |||
| } | |||
| #apply { | |||
| #apply_button { | |||
| border: 1px solid gray; | |||
| padding: 5px; | |||
| background-color: lightslategray; | |||
| @@ -106,7 +106,7 @@ nav ul { | |||
| margin-bottom: 5px; | |||
| } | |||
| #apply:hover { | |||
| #apply_button:hover { | |||
| background-color: lightskyblue; | |||
| } | |||
| @@ -121,3 +121,16 @@ div { | |||
| form { | |||
| 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> | |||
| $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"> | |||
| <h4>Add Users</h4> | |||
| $:apply_form.render() | |||
| <p>Users to apply:</p> | |||
| <h4>Users to apply:</h4> | |||
| $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]) | |||
| $applicants[i][1] | |||
| $:apply_permissions_form.render() | |||
| $:apply_permissions_form.render() | |||
| </div> | |||
| </form> | |||
| @@ -18,7 +18,7 @@ $def with (nav, project_form, project_buttons, messasge) | |||
| $:project_form.render() | |||
| </div> | |||
| <div> | |||
| <div id="project_buttons"> | |||
| <div> | |||
| $:project_buttons.add_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.remove_user.render() | |||
| </div> | |||
| <div> | |||
| $:project_buttons.create_project.render() | |||
| </div> | |||
| </div> | |||
| $:project_buttons.create_project.render() | |||
| </form> | |||
| <p>$messasge</p> | |||
| @@ -12,11 +12,11 @@ $def with (nav, project_form, project, tasks, permissions, categories) | |||
| $: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> | |||
| $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"> | |||
| <p>Status: $project[5]</p> | |||
| @@ -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, get_apply_permissions_form | |||
| from views.forms import get_apply_form, get_apply_permissions_form | |||
| # Get html templates | |||
| render = web.template.render('templates/') | |||
| @@ -26,8 +26,7 @@ class Apply: | |||
| tasks = [[]] | |||
| # 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() | |||
| applicants = [[session.userid, session.username]] | |||
| permissions = [["TRUE", "TRUE", "TRUE"]] | |||
| @@ -45,8 +44,7 @@ class Apply: | |||
| # Assemble form | |||
| 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() | |||
| # 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") | |||
| ) | |||
| 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() | |||
| 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): | |||
| user_permissions = form.Form( | |||