project.html 9.7 KB

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