소스 검색

Add task to project frontend

https
jakobsn 6 년 전
부모
커밋
fd9b18cee6
5개의 변경된 파일94개의 추가작업 그리고 34개의 파일을 삭제
  1. +1
    -12
      src/app/templates/index.html
  2. +26
    -9
      src/app/views/forms.py
  3. +4
    -8
      src/app/views/index.py
  4. +61
    -4
      src/app/views/project.py
  5. +2
    -1
      src/app/views/utils.py

+ 1
- 12
src/app/templates/index.html 파일 보기

@@ -1,4 +1,4 @@
$def with (nav, categories, open_projects)
$def with (nav)

<head>
<title>Beelance2</title>
@@ -11,17 +11,6 @@ $def with (nav, categories, open_projects)

$:nav
<h1 class="title">Open Projects:</h1>
<div class="categories">
$for category in categories:
<div class="category" onclick="location.href='/?categoryid=$category[0]'">$category[1]</div>
</div>

<div class="projects">
$for project in open_projects:
<div class="project"><h4>$project[3]</h4><p>$project[4]</p></div>
</div>

<img src="static/honeybee.png" alt="Honeybee">



+ 26
- 9
src/app/views/forms.py 파일 보기

@@ -23,20 +23,37 @@ register_form = form.Form(
form.Button("Register", type="submit", description="Register"),
)

# Define the project form

# Define the project form elements
categories = get_categories()

project_form = form.Form(
form.Textbox("project_title", description="Title"),
form.Textbox("project_description", description="Description"),
form.Dropdown("category_name", args=categories),
form.Button("Submit", type="submit", description="submit")
)
# Define the task form elements
def get_task_form_elements(count=0, task_title="", task_description="", budget=""):
task_form_elements = (
form.Textbox("task_title_" + str(count), description="Title", value=task_title),
form.Textarea("task_description_" + str(count), description="Description", value=task_description),
form.Textbox("budget_" + str(count), description="Budget", value=budget)
)
return task_form_elements

def get_project_form_elements(project_title="", project_description="", category_name=""):
project_form_elements = (
form.Textbox("project_title", description="Title", value=project_title),
form.Textarea("project_description", description="Description", value=project_description),
form.Dropdown("category_name", description="Category Name", args=categories)
#form.Button("Submit", type="submit", description="submit")
)
return project_form_elements

def get_new_project_form(elements):
return form.Form(*elements,
form.Button("Add Task", type="submit", description="Add Task", value = "add_task"),
form.Button("Remove Task", type="submit", description="Remove Task ", value = "remove_task"),
form.Button("Create Project", type="submit", description="Create Project", value = "create_project")
)

# Define the guestbook form
guestbook_form = form.Form(
form.Textbox("entry", description="Entry"),
form.Button("Submit", type="submit", description="submit")
)


+ 4
- 8
src/app/views/index.py 파일 보기

@@ -6,7 +6,7 @@ from views.logout import Logout
from views.register import Register
from views.admin import Admin
from views.project import Project
from models.project import get_categories, get_projects_by_status_and_category
from views.my_projects import My_projects

# Define application routes
urls = (
@@ -15,7 +15,8 @@ urls = (
'/logout', 'Logout',
'/register', 'Register',
'/guestbook', 'Guestbook',
'/project', 'Project',
'/new_project', 'Project',
'/my_projects', 'My_projects',
'/admin', 'Admin',
)
@@ -46,10 +47,5 @@ class Index:
# Get main page
def GET(self):
data = web.input(categoryid=0)
projects=[]
if data.categoryid != 0:
open_projects = get_projects_by_status_and_category(data.categoryid, "open")
nav = get_nav_bar(session)
categories = get_categories()
return render.index(nav, categories, open_projects)
return render.index(nav)

+ 61
- 4
src/app/views/project.py 파일 보기

@@ -1,5 +1,5 @@
import web
from views.forms import project_form
from views.forms import get_task_form_elements, get_new_project_form, get_project_form_elements
import models.project
from views.utils import get_nav_bar

@@ -12,15 +12,72 @@ class Project:
def GET(self):
session = web.ctx.session
nav = get_nav_bar(session)
project_form_elements = get_project_form_elements()
task_form_elements = get_task_form_elements()
project_form = get_new_project_form((project_form_elements + task_form_elements))
return render.project(nav, project_form)

# Register new user in database
# Register new project in database
def POST(self):
data = web.input()
session = web.ctx.session
nav = get_nav_bar(session)
print(data)
print(session.userid)

task_count = self.get_task_count(data)
try:
if data["Add Task"]:
print("tiss")
project_form = self.compose_form(task_count, data, True)
return render.project(nav, project_form)
except Exception as e:
try:
if data["Remove Task"]:
print("ass")
project_form = self.compose_form(task_count, data, False)
return render.project(nav, project_form)
else:
pass
except Exception as e:
try:
if data["Create Project"]:
pass
else:
pass
except Exception as e:
pass

categories = models.project.set_project(data.category_name, str(session.userid),
data.project_title, data.project_description, "open")
print(categories)
raise web.seeother('/')

def get_task_count(self, data):
task_count = 0
while True:
try:
if data["task_title_"+str(task_count)] or data["task_description_"+str(task_count)] or data["task_budget_"+str(task_count)]:
task_count += 1
except Exception as e:
pass
break
return task_count

def compose_form(self, task_count, data, add):
project_form_elements = get_project_form_elements(data.project_title, data.project_description, data.category_name)
task_form_elements = ()
old_task_form_element = ()
print(task_count)
for i in range(0, task_count):
print("i: ", i)
old_task_form_element = get_task_form_elements(i, data["task_title_"+str(i)],
data["task_description_"+str(i)], data["budget_"+str(i)])
task_form_elements = (task_form_elements + old_task_form_element)
print(len(task_form_elements))

if add:
new_task_form_elements = get_task_form_elements(task_count)
project_form = get_new_project_form((project_form_elements + task_form_elements + new_task_form_elements))
else:
project_form = get_new_project_form((project_form_elements + task_form_elements))
return project_form

+ 2
- 1
src/app/views/utils.py 파일 보기

@@ -9,7 +9,8 @@ def get_nav_bar(session):
else:
result += ' <li><a href="register">Register</a></li>'
result += ' <li><a href="login">Login</a></li>'
result += ' <li><a href="project">Projects</a></li>'
result += ' <li><a href="new_project">New</a></li>'
result += ' <li><a href="my_projects">Projects</a></li>'
result += ' <li><a href="guestbook">Guestbook</a></li>'
result += ' </ul>'
result += '</nav>'


불러오는 중...
취소
저장