project.html 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <link rel="stylesheet" href="../static/css/project.css"/>
  2. {% extends "base.html" %} {% block content %}
  3. <div class="projects_page">
  4. <div class="link_back_block">
  5. <a class="link_back" href="../">
  6. <p class="link_back_text">К проектам</p>
  7. </a>
  8. </div>
  9. <div class="project_header">
  10. <div class="edit_block">
  11. {% if current_user.id == project.creator %}
  12. <a id="edit_button" class="edit_button" href="">
  13. <img class="edit_button_image" src="../static/images/pen_b.png">
  14. </a>
  15. {% else %}
  16. <p class="edit_button"> </p>
  17. {% endif %}
  18. </div>
  19. <div class="brand_block">
  20. <img class="project_logo" src="../{{project.photo}}"/>
  21. <p class="name_project header_title">{{ project.name }}</p>
  22. </div>
  23. <div class="notification_block">
  24. </div>
  25. </div>
  26. <div class="body_block">
  27. <div class="head_staff_block">
  28. <h3 class="header_title">Участники</h3>
  29. <div class="collaborator_block">
  30. <div class="staff_block">
  31. {% for user in staff %}
  32. <div class="user">
  33. <a class="link_to_user" href="/user/{{ user.login }}">
  34. <img class="user_logo" src="../{{user.photo}}">
  35. <p class="user_names">{{user.name}}</p>
  36. </a>
  37. </div>
  38. {% endfor %}
  39. </div>
  40. </div>
  41. </div>
  42. <div class="header_task_block">
  43. <div class="head_task">
  44. <h3 class="header_title_2">Задачи</h3>
  45. <div class="new_task_block">
  46. <a class="new_task_link" id="new_task_link" href="/">
  47. <img class="new_task_image" src="../static/images/plus_b.png">
  48. </a>
  49. </div>
  50. </div>
  51. <div class="task_block">
  52. <div class="task">
  53. {% for quest in quests %}
  54. <div class="accordion list_quests" id="accordionPanelsStayOpen{{ quest.id }}">
  55. <div class="accordion-item quest">
  56. <h2 class="accordion-header quest_header" id="panelsStayOpen-heading{{ quest.id }}">
  57. <button class="accordion-button quest_header_button" type="button"
  58. data-bs-toggle="collapse"
  59. data-bs-target="#panelsStayOpen-collapse{{ quest.id }}" aria-expanded="true"
  60. aria-controls="panelsStayOpen-collapse{{ quest.id }}">
  61. <div class="quest_button_block_one">
  62. <div class="quest_title_block">
  63. <p class="quest_title">{{ quest.name }}</p>
  64. </div>
  65. </div>
  66. {% if quest.overdue == 'yes' and quest.realized != 1 %}
  67. <div class="deadline_block alert alert-danger" role="alert">
  68. {{ quest.time_left }}
  69. </div>
  70. {% elif quest.overdue == 'today' and quest.realized != 1 %}
  71. <div class="deadline_block alert alert-warning" role="alert">
  72. Дедлайн сегодня
  73. </div>
  74. {% elif quest.overdue == 'no' and quest.realized != 1 %}
  75. <div class="deadline_block alert alert-success" role="alert">
  76. {{ quest.time_left }}
  77. </div>
  78. {% elif quest.overdue == '' and quest.realized != 1 %}
  79. <div class="deadline_block alert alert-warning" role="alert">
  80. Дедлайна нет
  81. </div>
  82. {% else %}
  83. <div class="deadline_block alert alert-success" role="alert">
  84. Задача выполнена
  85. </div>
  86. {% endif %}
  87. </button>
  88. </h2>
  89. <div id="panelsStayOpen-collapse{{ quest.id }}"
  90. class="accordion-collapse collapse quest_body_block"
  91. aria-labelledby="panelsStayOpen-heading{{ quest.id }}">
  92. <div class="accordion-body quest_body">
  93. {% if quest.realized == 0 %}
  94. <div class="quest_body">
  95. <div class="quest_description_block">
  96. <p class="quest_description_title">Описание</p>
  97. <div class="quest_description">
  98. <p class="quest_description_text">{{ quest.description }}</p>
  99. </div>
  100. </div>
  101. <div class="quest_solve_button">
  102. <a class="quest_solve_link" href="{{ project.id }}/quest/{{ quest.id }}">
  103. <p class="quest_solve_text">Решить</p>
  104. </a>
  105. </div>
  106. </div>
  107. {% else %}
  108. <div class="quest_body">
  109. <div class="quest_description_block">
  110. <p class="quest_description_title">Описание</p>
  111. <div class="quest_description">
  112. <p class="quest_description_text">{{ quest.description }}</p>
  113. </div>
  114. </div>
  115. <div class="quest_solve_button">
  116. <a class="quest_solve_link" href="{{ project.id }}/quest/{{ quest.id }}">
  117. <p class="quest_solve_text">Посмотреть</p>
  118. </a>
  119. </div>
  120. </div>
  121. {% endif %}
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. {% endfor %}
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <div class="files_block">
  132. <div class="head_files">
  133. <h2 class="files_title">Файлы</h2>
  134. <form action="" method="post" class="file_form" id="file_form" enctype="multipart/form-data">
  135. {{ form_file.hidden_tag() }}
  136. <div class="form_data bottom_data">
  137. {{ form_file.file(class="input_data", id="selectedFile", type="file", style="display: none;") }}
  138. {% for error in form_file.file.errors %}
  139. <div class="alert alert-danger" role="alert">{{ error }}</div>
  140. {% endfor %}
  141. </div>
  142. {{ form_file.submit(type="submit", id="upload_button", class="btn btn-success upload_button",
  143. style="display: none;") }}
  144. <button type="button" class="upload_button btn btn-primary" id="select_file_button"
  145. onclick="push_file()">Добавить
  146. </button>
  147. </form>
  148. </div>
  149. <div class="list_files_block">
  150. <div class="list_files">
  151. {% for item in file_tree %}
  152. {% if item['type'] == 'file' %}
  153. <div class="file">
  154. <div class="file_head">
  155. <nav class="file_head_group" style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
  156. <ol class="breadcrumb file_head_path">
  157. {% for path in item['current_path'] %}
  158. <li class="breadcrumb-item active file_path" aria-current="page">{{ path }}</li>
  159. {% endfor %}
  160. </ol>
  161. </nav>
  162. </div>
  163. <div class="file_buttons">
  164. <div class="btn-group file_buttons_groud">
  165. {% if current_user.id == project.creator or item['object'].user == current_user.id %}
  166. <a href="../project/{{ project.id }}/file/{{ item['object'].id }}/delete?from=project"
  167. class="btn btn-primary file_delete"><p class="button_text">Удалить</p></a>
  168. {% endif %}
  169. <a href="../../../{{ item['path'] }}" download="" class="btn btn-primary file_download"><p
  170. class="button_text">Скачать</p></a>
  171. </div>
  172. </div>
  173. </div>
  174. {% elif item['type'] == 'folder' %}
  175. {% endif %}
  176. {% endfor %}
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. <script type="text/javascript" src="../static/js/project.js"></script>
  182. {% endblock %}