Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

95 lines
3.8KB

  1. from web import form
  2. from models.project import get_categories
  3. # Define the login form
  4. login_form = form.Form(
  5. form.Textbox("username", description="Username"),
  6. form.Password("password", description="Password"),
  7. form.Button("Log In", type="submit", description="Login"),
  8. )
  9. # Define the register form
  10. register_form = form.Form(
  11. form.Textbox("username", description="Username"),
  12. form.Textbox("full_name", description="Full name"),
  13. form.Textbox("company", description="Company"),
  14. form.Textbox("phone_number", description="Phone Number"),
  15. form.Textbox("street_address", description="Street address"),
  16. form.Textbox("city", description="City"),
  17. form.Textbox("state", description="State"),
  18. form.Textbox("postal_code", description="Postal code"),
  19. form.Textbox("country", description="Country"),
  20. form.Password("password", description="Password"),
  21. form.Button("Register", type="submit", description="Register"),
  22. )
  23. # Get categories
  24. categories = get_categories()
  25. def get_task_form_elements(identifier=0, task_title="", task_description="", budget=""):
  26. """
  27. Generate a set of task form elements
  28. :param identifier: The id of the task
  29. :param task_title: Task title
  30. :param task_description: Task description
  31. :param budget: Task budget
  32. :type identifier: int, str
  33. :type task_title: str
  34. :type task_description: str
  35. :type budget: int, str
  36. :return: A set of task form elements
  37. """
  38. task_form_elements = (
  39. form.Textbox("task_title_" + str(identifier), description="Title", value=task_title),
  40. form.Textarea("task_description_" + str(identifier), description="Description", value=task_description),
  41. form.Textbox("budget_" + str(identifier), description="Budget", value=str(budget))
  42. )
  43. return task_form_elements
  44. def get_project_form_elements(project_title="", project_description="", category_name=""):
  45. """
  46. Generate a set of project form elements
  47. :param project_title: Project title
  48. :param project_description: Project description
  49. :param category_name: Name of the belonging category
  50. :type project_title: str
  51. :type project_description: str
  52. :type category_name: str
  53. :return: A set of project form elements
  54. """
  55. project_form_elements = (
  56. form.Textbox("project_title", description="Title", value=project_title),
  57. form.Textarea("project_description", description="Description", value=project_description),
  58. form.Dropdown("category_name", description="Category Name", args=categories)
  59. )
  60. return project_form_elements
  61. def get_user_form_elements(user_name, read_permission, write_permission, modify_permission):
  62. user_form_elements = (
  63. form.Textbox("username", description="User", value=user_name),
  64. form.Checkbox("read_permission", description="Read Permission", checked=True),
  65. form.Checkbox("write_permission", description="Write Permission", checked=False),
  66. form.Checkbox("modify_permission", description="Modify Permission", checked=False)
  67. )
  68. def get_new_project_form(elements):
  69. """
  70. Combine a project form element and task elements to make a complete project form
  71. :param elemets: All the project and task form elements
  72. :return: The ready to use project form
  73. """
  74. return form.Form(*elements,
  75. form.Button("Add User", type="submit", description="Add User", value="add_user"),
  76. form.Button("Add Task", type="submit", description="Add Task", value="add_task"),
  77. form.Button("Remove Task", type="submit", description="Remove Task ", value="remove_task"),
  78. form.Button("Create Project", type="submit", description="Create Project", value="create_project")
  79. )
  80. # Define the guestbook form
  81. guestbook_form = form.Form(
  82. form.Textbox("entry", description="Entry"),
  83. )