index.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. {% extends "default_layout.html" %}
  2. {% block title %}{{ title }}{% endblock %}
  3. {% block css %}
  4. {% endblock %}
  5. {% block nav %}
  6. {% endblock %}
  7. {% block main %}
  8. <div class="container-fluid">
  9. <div class="row">
  10. <div class="col-2"><img id="logotipo" src="{{
  11. url_for('.static', filename = 'img/FdoF_logo_preto.png')
  12. }}" /></div>
  13. </div> <!-- row -->
  14. <div class="row">
  15. <div class="col-2">&nbsp;</div>
  16. <div class="col-2 table-primary">Cadeira ocupada</div>
  17. <div class="col-2 table-success">Cadeira Vazia</div>
  18. <!--
  19. <div class="col-2 table-warning">Mesa</div>
  20. -->
  21. <!--
  22. <div class="col badge-secondary">Corredor (vazio)</div>
  23. -->
  24. <!--
  25. <div class="col badge-dark">Corredor (intersecção)</div>
  26. -->
  27. <!--
  28. <div class="col badge-danger">Posição de mesa</div>
  29. -->
  30. <!--
  31. <div class="col active">Active</div>
  32. -->
  33. <!--
  34. <div class="col info">Info</div>
  35. -->
  36. <!--
  37. <div class="col light">Light</div>
  38. -->
  39. </div> <!-- row -->
  40. <div class="row">
  41. <div class="col-12">
  42. {% set contador = namespace(valor = 0) %}
  43. <!--
  44. Goworking atualmente é um grid de 10 linhas por 4 colunas, onde
  45. seis filas têm duas mesas e duas filas têm quatro mesas. A
  46. primeira fila é o jardim de inverno e a última fila é a recepção.
  47. -->
  48. {% for row in range(10) %} <!-- for row in range(10) -->
  49. <div class="row">
  50. {% for col in range(4) %} <!-- for col in range(4) -->
  51. <div class="col goworking-espaco-{{
  52. espacos[contador.valor].numero }}">
  53. <!-- Se não existir o campo 'mesa' no objeto do espaço, então
  54. é um espaço sem mesa. -->
  55. {% if espacos[contador.valor].mesa %}
  56. <table class="goworking-mesa-{{
  57. espacos[contador.valor]['mesa']['numero']
  58. }} table table-borderless table-responsive">
  59. <tbody>
  60. <tr>
  61. <td><!-- {{ espacos[contador.valor].numero }} --></td>
  62. <td class="table-{% if espacos[contador.valor].mesa.cadeiras[0].habitante %}primary{% else %}success{% endif %}"><button
  63. class="btn table-{% if espacos[contador.valor].mesa.cadeiras[0].habitante %}primary{% else %}success{% endif %}"
  64. type="button"
  65. data-toggle="modal"
  66. data-target="#modal-cadeira-{{
  67. espacos[contador.valor].mesa.cadeiras[0].id
  68. }}"
  69. >{{
  70. espacos[contador.valor].mesa.cadeiras[0].numero
  71. }}</button></td>
  72. <td></td>
  73. <td class="table-{% if espacos[contador.valor].mesa.cadeiras[1].habitante %}primary{% else %}success{% endif %}"><button
  74. class="btn table-{% if espacos[contador.valor].mesa.cadeiras[1].habitante %}primary{% else %}success{% endif %}"
  75. type="button"
  76. data-toggle="modal"
  77. data-target="#modal-cadeira-{{
  78. espacos[contador.valor].mesa.cadeiras[1].id
  79. }}"
  80. >{{
  81. espacos[contador.valor].mesa.cadeiras[1].numero
  82. }}</button></td>
  83. <td></td>
  84. </tr>
  85. <tr>
  86. <td class="mesa">&nbsp;</td>
  87. <td class="mesa">&nbsp;</td>
  88. <td class="mesa">&nbsp;</td>
  89. <td class="mesa">&nbsp;</td>
  90. <td class="mesa">&nbsp;</td>
  91. </tr>
  92. <tr>
  93. <td class="mesa">&nbsp;</td>
  94. <td class="mesa">&nbsp;</td>
  95. <td class="mesa">Mesa {{
  96. espacos[contador.valor].mesa.numero }}</td>
  97. <td class="mesa">&nbsp;</td>
  98. <td class="mesa">&nbsp;</td>
  99. </tr>
  100. <tr>
  101. <td class="mesa">&nbsp;</td>
  102. <td class="mesa">&nbsp;</td>
  103. <td class="mesa">&nbsp;</td>
  104. <td class="mesa">&nbsp;</td>
  105. <td class="mesa">&nbsp;</td>
  106. </tr>
  107. <tr>
  108. <td></td>
  109. <td class="table-{% if espacos[contador.valor].mesa.cadeiras[2].habitante %}primary{% else %}success{% endif %}"><button
  110. class="btn table-{% if espacos[contador.valor].mesa.cadeiras[2].habitante %}primary{% else %}success{% endif %}"
  111. type="button"
  112. data-toggle="modal"
  113. data-target="#modal-cadeira-{{
  114. espacos[contador.valor].mesa.cadeiras[2].id
  115. }}"
  116. >{{
  117. espacos[contador.valor].mesa.cadeiras[2].numero
  118. }}</button></td>
  119. <td></td>
  120. <td class="table-{% if espacos[contador.valor].mesa.cadeiras[3].habitante %}primary{% else %}success{% endif %}"><button
  121. class="btn table-{% if espacos[contador.valor].mesa.cadeiras[3].habitante %}primary{% else %}success{% endif %}"
  122. type="button"
  123. data-toggle="modal"
  124. data-target="#modal-cadeira-{{
  125. espacos[contador.valor].mesa.cadeiras[3].id
  126. }}"
  127. >{{
  128. espacos[contador.valor].mesa.cadeiras[3].numero
  129. }}</button></td>
  130. <td></td>
  131. </tr>
  132. </tbody>
  133. </table>
  134. {% else %}
  135. <table class="
  136. goworking-vazio table table-borderless table-responsive">
  137. <tbody>
  138. <tr>
  139. <td><!-- {{ espacos[contador.valor].numero }} --></td>
  140. <td>&nbsp;</td>
  141. <td>&nbsp;</td>
  142. <td>&nbsp;</td>
  143. <td>&nbsp;</td>
  144. </tr>
  145. <tr>
  146. <td>&nbsp;</td>
  147. <td>&nbsp;</td>
  148. <td>&nbsp;</td>
  149. <td>&nbsp;</td>
  150. <td>&nbsp;</td>
  151. </tr>
  152. <tr>
  153. <td>&nbsp;</td>
  154. <td>&nbsp;</td>
  155. <td>{{ espacos[contador.valor].desc }}</td>
  156. <td>&nbsp;</td>
  157. <td>&nbsp;</td>
  158. </tr>
  159. <tr>
  160. <td>&nbsp;</td>
  161. <td>&nbsp;</td>
  162. <td>&nbsp;</td>
  163. <td>&nbsp;</td>
  164. <td>&nbsp;</td>
  165. </tr>
  166. </tbody>
  167. </table>
  168. {% endif %}
  169. </div> <!-- col goworking-espaco-{{
  170. espacos[contador.valor].numero }} -->
  171. {% set contador.valor = contador.valor + 1 %}
  172. {% endfor %} <!-- endfor col in range(4) -->
  173. </div> <!-- row -->
  174. {% endfor %} <!-- endfor row in range(10) -->
  175. </div> <!-- col-12 -->
  176. </div> <!-- row -->
  177. </div> <!-- container-fluid -->
  178. {% endblock %}
  179. {% block javascript %}
  180. {% endblock %}
  181. {% block modal %}
  182. {% for habitante in habitantes %} <!-- for habitante in habitantes -->
  183. <div
  184. class="modal fade"
  185. id="modal-habitante-{{ habitante.id }}"
  186. tabindex="-1"
  187. role="dialog"
  188. aria-labelledby="habitante-{{ habitante.id }}"
  189. aria-hidden="true"
  190. style="background-color: #e8e8e8;"
  191. >
  192. <div class="modal-dialog modal-lg modal-xl" role="document">
  193. <div class="modal-content">
  194. <div class="modal-header">
  195. <h5 class="modal-title"
  196. id="habitante-{{ habitante.id }}">{{
  197. habitante.nome }}</h5>
  198. <button type="button" class="close" data-dismiss="modal"
  199. aria-label="Fechar">
  200. <span aria-hidden="true">&times;</span>
  201. </button>
  202. </div>
  203. <div class="modal-body">
  204. <div class="container-fluid">
  205. {% if habitante.empresa %}
  206. <div class="row">
  207. <div class="col-6 ml-auto">Empresa</div>
  208. <div class="col-6 ml-auto"><a
  209. href="#"
  210. data-toggle="modal"
  211. data-target="#modal-empresa-{{ habitante.empresa.id }}"
  212. data-dismiss="modal"
  213. >{{ habitante.empresa.nome }}</a></div>
  214. </div> <!-- row -->
  215. {% endif %}
  216. <div class="row">
  217. <div class="col-6 ml-auto">Cadeira</div>
  218. {% if habitante.cadeira %}
  219. <div class="col-6 ml-auto"><a
  220. href="#"
  221. data-toggle="modal"
  222. data-target="#modal-cadeira-{{ habitante.cadeira.id }}"
  223. data-dismiss="modal"
  224. >{{ habitante.cadeira.numero }}</a></div>
  225. {% else %}
  226. <div class="col-6 ml-auto alert-danger">Nenhuma&excl; Habitante est&aacute; sem cadeira&excl;</div>
  227. {% endif %}
  228. </div> <!-- row -->
  229. {% if habitante.cpf %}
  230. <div class="row">
  231. <div class="col-6 ml-auto">CPF</div>
  232. <div class="col-6 ml-auto">{{ habitante.cpf|cpf }}</div>
  233. </div> <!-- row -->
  234. {% endif %}
  235. {% if habitante.desc %}
  236. <div class="row">
  237. <div class="col-6 ml-auto">Mais informa&ccedil;&otilde;es</div>
  238. <div class="col-6 ml-auto">{{ habitante.desc }}</div>
  239. </div> <!-- row -->
  240. {% endif %}
  241. <div class="row">
  242. <div class="col-6 ml-auto">Data de entrada</div>
  243. <div class="col-6 ml-auto">{{ habitante.data_entrada|data }}</div>
  244. </div> <!-- row -->
  245. <div class="row">
  246. <div class="col-6 ml-auto">Data de renova&ccedil;&atilde;o</div>
  247. <div class="col-6 ml-auto">{{ habitante.data_renovacao|data }}</div>
  248. </div> <!-- row -->
  249. <div class="row">
  250. <div class="col-6 ml-auto">Data de sa&iacute;da</div>
  251. <div class="col-6 ml-auto">{{ habitante.data_saida|data }}</div>
  252. </div> <!-- row -->
  253. </div> <!-- container-fluid -->
  254. </div> <!-- modal-body -->
  255. <div class="modal-footer justify-content-center">
  256. <!--
  257. <button type="button" class="btn btn-success" data-dismiss="modal">Fechar</button>
  258. <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
  259. -->
  260. <a
  261. role="button"
  262. class="btn btn-info"
  263. href="{{
  264. url_for(
  265. 'goworking.habitante_editar',
  266. id = habitante.id,
  267. )
  268. }}"
  269. >Editar informa&ccedil;&otilde;es</a>
  270. </div> <!-- modal-footer justify-content-center -->
  271. </div> <!-- modal-content -->
  272. </div> <!-- modal-dialog modal-lg modal-xl -->
  273. </div> <!-- modal fade -->
  274. {% endfor %} <!-- endfor habitante in habitantes -->
  275. {% for empresa in empresas %} <!-- for empresa in empresas -->
  276. <div
  277. class="modal fade"
  278. id="modal-empresa-{{ empresa.id }}"
  279. tabindex="-1"
  280. role="dialog"
  281. aria-labelledby="empresa-{{ empresa.id }}"
  282. aria-hidden="true"
  283. style="background-color: #e8e8e8;"
  284. >
  285. <div class="modal-dialog modal-lg modal-xl" role="document">
  286. <div class="modal-content">
  287. <div class="modal-header">
  288. <h5 class="modal-title"
  289. id="empresa-{{ empresa.id }}">{{
  290. empresa.nome }}</h5>
  291. <button type="button" class="close" data-dismiss="modal"
  292. aria-label="Fechar">
  293. <span aria-hidden="true">&times;</span>
  294. </button>
  295. </div>
  296. <div class="modal-body">
  297. <div class="container-fluid">
  298. {% if empresa.habitantes %}
  299. <div class="row">
  300. <div class="col-6 ml-auto">Habitantes</div>
  301. <!-- for habitante in empresa.habitantes -->
  302. {% for habitante in empresa.habitantes %}
  303. <div class="col-1 ml-auto"><a
  304. href="#"
  305. data-toggle="modal"
  306. data-target="#modal-habitante-{{ habitante.id }}"
  307. data-dismiss="modal"
  308. >{{ habitante.nome }}</a></div>
  309. {% endfor %}
  310. <!-- endfor habitante in empresa.habitantes -->
  311. </div> <!-- row -->
  312. {% endif %} <!-- endif empresa.habitantes -->
  313. {% if empresa.cnpj %}
  314. <div class="row">
  315. <div class="col-6 ml-auto">CNPJ</div>
  316. <div class="col-6 ml-auto">{{ empresa.cnpj|cnpj }}</div>
  317. </div> <!-- row -->
  318. {% endif %}
  319. {% if empresa.desc %}
  320. <div class="row">
  321. <div class="col-6 ml-auto">Mais informa&ccedil;&otilde;es</div>
  322. <div class="col-6 ml-auto">{{ empresa.desc }}</div>
  323. </div> <!-- row -->
  324. {% endif %}
  325. </div> <!-- container-fluid -->
  326. </div> <!-- modal-body -->
  327. <div class="modal-footer justify-content-center">
  328. <!--
  329. <button type="button" class="btn btn-success" data-dismiss="modal">Fechar</button>
  330. <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
  331. -->
  332. <a
  333. role="button"
  334. class="btn btn-info"
  335. href="{{
  336. url_for(
  337. 'goworking.empresa_editar',
  338. id = empresa.id,
  339. )
  340. }}"
  341. >Editar informa&ccedil;&otilde;es</a>
  342. </div> <!-- modal-footer justify-content-center -->
  343. </div> <!-- modal-content -->
  344. </div> <!-- modal-dialog modal-lg modal-xl -->
  345. </div> <!-- modal fade -->
  346. {% endfor %} <!-- endfor empresa in empresas -->
  347. {% for cadeira in cadeiras %} <!-- for cadeira in cadeiras -->
  348. <div
  349. class="modal fade"
  350. id="modal-cadeira-{{ cadeira.id }}"
  351. tabindex="-1"
  352. role="dialog"
  353. aria-labelledby="cadeira-{{ cadeira.id }}"
  354. aria-hidden="true"
  355. style="background-color: #d21d21d21;"
  356. >
  357. <div class="modal-dialog modal-lg modal-xl" role="document">
  358. <div class="modal-content">
  359. <div class="modal-header">
  360. <h5 class="modal-title"
  361. id="cadeira-{{ cadeira.id }}">Cadeira {{
  362. cadeira.numero }}</h5>
  363. <button type="button" class="close" data-dismiss="modal"
  364. aria-label="Fechar">
  365. <span aria-hidden="true">&times;</span>
  366. </button>
  367. </div>
  368. <div class="modal-body">
  369. <div class="container-fluid">
  370. {% if cadeira.mesa %}
  371. <div class="row">
  372. <div class="col-6 ml-auto">Mesa</div>
  373. <div class="col-6 ml-auto">{{ cadeira.mesa.numero }}</div>
  374. </div> <!-- row -->
  375. {% endif %}
  376. <div class="row">
  377. <div class="col-6 ml-auto">Habitante</div>
  378. {% if cadeira.habitante %}
  379. <div class="col-6 ml-auto"><a
  380. href="#"
  381. data-toggle="modal"
  382. data-target="#modal-habitante-{{ cadeira.habitante.id }}"
  383. data-dismiss="modal"
  384. >{{ cadeira.habitante.nome }}</a></div>
  385. {% else %}
  386. <div class="col-6 ml-auto alert-danger">Ningu&eacute;m&excl; Cadeiras vazias s&atilde;o chatas...</div>
  387. {% endif %}
  388. </div> <!-- row -->
  389. {% if cadeira.desc %}
  390. <div class="row">
  391. <div class="col-6 ml-auto">Detalhes</div>
  392. <div class="col-6 ml-auto">{{ cadeira.desc }}</div>
  393. </div> <!-- row -->
  394. {% endif %}
  395. </div> <!-- container-fluid -->
  396. </div> <!-- modal-body -->
  397. <div class="modal-footer justify-content-center">
  398. <!--
  399. <button type="button" class="btn btn-success" data-dismiss="modal">Fechar</button>
  400. <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
  401. -->
  402. <a
  403. role="button"
  404. class="btn btn-info"
  405. href="{{
  406. url_for(
  407. 'goworking.cadeira_editar',
  408. id = cadeira.id,
  409. )
  410. }}"
  411. >Editar informa&ccedil;&otilde;es da cadeira</a>
  412. {% if cadeira.habitante %}
  413. <a
  414. role="button"
  415. class="btn btn-info"
  416. href="{{
  417. url_for(
  418. 'goworking.habitante_editar',
  419. id = cadeira.habitante.id,
  420. )
  421. }}"
  422. >Editar informa&ccedil;&otilde;es de habitante</a>
  423. {% else %}
  424. <a
  425. role="button"
  426. class="btn btn-success"
  427. href="{{
  428. url_for(
  429. 'goworking.habitante_cadeira',
  430. id_cadeira = cadeira.id,
  431. )
  432. }}"
  433. >Adicionar habitante &agrave; cadeira vazia</a>
  434. {% endif %}
  435. </div> <!-- modal-footer justify-content-center -->
  436. </div> <!-- modal-content -->
  437. </div> <!-- modal-dialog modal-lg modal-xl -->
  438. </div> <!-- modal fade -->
  439. {% endfor %} <!-- endfor cadeira in cadeiras -->
  440. {% endblock %}