瀏覽代碼

Page to apply, can now add the users to apply with

https
jakobsn 6 年之前
父節點
當前提交
8072967f89
共有 5 個檔案被更改,包括 127 行新增2 行删除
  1. +1
    -0
      src/app/aids.txt
  2. +7
    -0
      src/app/models/login.py
  3. +30
    -0
      src/app/templates/apply.html
  4. +88
    -0
      src/app/views/apply.py
  5. +1
    -2
      src/app/views/forms.py

+ 1
- 0
src/app/aids.txt 查看文件

@@ -0,0 +1 @@
aids

+ 7
- 0
src/app/models/login.py 查看文件

@@ -20,6 +20,13 @@ def get_user_id_by_name(username):
cursor.close()
return userid

def get_user_name_by_id(userid):
cursor = db.cursor()
query = ("SELECT username from users WHERE userid =\"" + userid + "\"")
cursor.execute(query)
username = cursor.fetchall()[0][0]
cursor.close()
return username

def match_user(username, password):
"""


+ 30
- 0
src/app/templates/apply.html 查看文件

@@ -0,0 +1,30 @@
$def with (nav, apply_form, project, applicants)

<head>
<title>Beelance2</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="static/stylesheet.css">
<link rel="shortcut icon" type="image/png" href="static/honeybee.png"/>
</head>
<body>
$:nav

<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>
<form method="POST">
<p>Users to apply:</p>
$for i, user in enumerate(applicants):
<div>$user[1]<input name="$user[0]" type ="submit" value="X"></input></div>
<input hidden="hidden" name="user_name_$i" value="$applicants[i]"/>
$:apply_form.render()
</form>
</body>

+ 88
- 0
src/app/views/apply.py 查看文件

@@ -0,0 +1,88 @@
import web
import models.project
from models.login import get_user_name_by_id
from views.utils import get_nav_bar
from views.forms import get_apply_form, get_user_dropdown
from views.new_project import get_user_count

# Get html templates
render = web.template.render('templates/')

class Apply:

def GET(self):
print("GET")
# Get session
session = web.ctx.session
# Get navbar
nav = get_nav_bar(session)

data = web.input(projectid=0)
if data.projectid:
project = models.project.get_project_by_id(data.projectid)
#tasks = models.project.get_tasks_by_project_id(data.projectid)
else:
project = [[]]
tasks = [[]]
#render = web.template.render('templates/', globals={'get_task_files':models.project.get_task_files, 'session':session})
#render_project = render.project(nav, project[0], tasks)
user_dropdown = get_user_dropdown()
apply_form = get_apply_form(user_dropdown)
applicants = [[session.userid, session.username]]
return render.apply(nav, apply_form, project, applicants)

def POST(self):
data = web.input(projectid=0)
session = web.ctx.session
nav = get_nav_bar(session)
applicants = [session.username]
user_dropdown = get_user_dropdown()
apply_form = get_apply_form(user_dropdown)
print("POST")
print(data)
if data.projectid:
project = models.project.get_project_by_id(data.projectid)
try:
if data["Add User"]:
#project_form = self.compose_form(data, "add_user")
applicants = self.compose_form(data, "add_user")
return render.apply(nav, apply_form, project, applicants)
except Exception as e:
raise
try:
if data["Remove User"]:
#project_form = self.compose_form(data, "remove_user")
return render.apply(nav, apply_form, project, applicants)
except Exception as e:
try:
if data["Apply"]:
models.project.set_projects_user(str(projectid), str(session.userid), read, write, modify)
raise web.seeother(('/project?projectid=' + data.projectid))
except Exception as e:
raise

def compose_form(self, data, operation):
print(operation)
print(data)
if operation == "remove_user":
pass
if operation == "add_user":
user_count = get_user_count(data)
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(applicant)
applicants.append([ int(applicant[0]), applicant[1][2:][:-1] ])

user_id_to_add = data.user_id_0
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)
print(applicants)

return applicants


+ 1
- 2
src/app/views/forms.py 查看文件

@@ -98,14 +98,13 @@ 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"),
form.Button("Remove User", type="submit", description="Remove User", value="remove_user"),
form.Button("Apply", type="submit", description="Apply", value="apply")
)
return apply_form

def get_user_dropdown(identifier=0):
users = get_users()
return form.Dropdown("user_name_" + str(identifier), description="User", args=users)
return form.Dropdown("user_id_" + str(identifier), description="User", args=users)

# Define the guestbook form
guestbook_form = form.Form(


Loading…
取消
儲存