Le repo des sources pour le site web des JM2L
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

140 linhas
5.8 KiB

  1. # -*- coding: utf-8 -*-
  2. <%inherit file="jm2l:templates/Participant/list.mako"/>
  3. <%
  4. import datetime
  5. import itertools
  6. now = datetime.datetime.now()
  7. %>
  8. <form class="filterform" action="#">
  9. <table class="table table-bordered table-hover">
  10. <thead>
  11. <tr>
  12. <th style="width:7em;text-align:center;"></th>
  13. <th style="width:5em;text-align:center;">Visite</th>
  14. <th style="width:7em;text-align:center;">Activité</th>
  15. <th style="text-align:center;">Arrivée prévue</th>
  16. <th style="width:5em;text-align:center;">${DicRepas['Ven']} Repas Vendredi</th>
  17. <th style="width:5em;text-align:center;">${DicRepas['Midi']} Repas Midi </th>
  18. <th style="width:5em;text-align:center;">${DicRepas['Soir']} Repas Soir</th>
  19. <th style="text-align:center;">Départ prévu</th>
  20. <th style="text-align:center;">Notes</th>
  21. </tr>
  22. </thead>
  23. <tbody id="list">
  24. % for u, s in Users:
  25. <tr>
  26. <td style="text-align:center;">
  27. <span class="data">${u.slug}</span>
  28. <a href="/MesJM2L?user=${u.uid}">${u.nom} ${u.prenom}</a><br />
  29. <span style="align:center">
  30. ${u.vote_logo}
  31. <a href="mailto:${u.mail}">
  32. <i class="icon-envelope"></i>
  33. </a>
  34. % if u.Staff==1:
  35. <a href="javascript:alert('${u.nom}, ${u.prenom}\nStaff JM2L');">
  36. <i class="icon-star"></i>
  37. </a>
  38. % endif
  39. % if u.Staff==0:
  40. <a href="javascript:alert('${u.nom}, ${u.prenom}\nIntervenant');">
  41. <i class="icon-user"></i>
  42. </a>
  43. % endif
  44. % if u.active==0:
  45. <a href="javascript:alert('${u.nom}, ${u.prenom}\nInactive');">
  46. <i class="icon-ban-circle"></i>
  47. </a>
  48. % endif
  49. % if u.phone:
  50. <a href="javascript:alert('${u.nom}, ${u.prenom}\n${u.phone}');">
  51. <i class="icon-headphones"></i>
  52. </a>
  53. % endif
  54. <a href="/user/${u.slug}/badge">
  55. <i class="icon-qrcode"></i>
  56. </a>
  57. </span>
  58. </td>
  59. <td style="text-align:center;">
  60. <span class="data">${(now - u.last_logged).days}</span>${(now - u.last_logged).days} j
  61. </td>
  62. <td style="text-align:center;">
  63. % if u.events:
  64. <span class="data">${len(u.events)}</span>
  65. <select style="width:7em;">
  66. <option><strong>${len(u.events)} Intérv.</strong></option>
  67. % for y, g in itertools.groupby(sorted(u.events, key=lambda k:k.for_year, reverse=True), key=lambda k:k.for_year):
  68. <OPTGROUP LABEL="${y}">
  69. % for event in g:
  70. ${event.for_year}
  71. <OPTION onclick="location='/event/${event.for_year}/${event.slug}';">${event.event_type} - ${event.name}</OPTION>
  72. % endfor
  73. </OPTGROUP>
  74. % endfor
  75. </select>
  76. %else:
  77. <span class="data"></span>
  78. <i> - </i>
  79. % endif
  80. </td>
  81. <td style="text-align:center;">
  82. % if s and s.arrival_time:
  83. <span class="data">${s.arrival_time.strftime('%m/%d/%Y %H:%M:%S')}</span>
  84. ${s.arrival_time.strftime('%a %d <strong>%H:%M</strong>') | n}<br/>
  85. ${s.arrival_place}
  86. % if s.arrival_text:
  87. - NB: <strong>${s.arrival_text}</strong>
  88. % endif
  89. %else:
  90. <span class="data"></span>
  91. <i>Pas d'informations</i>
  92. % endif
  93. </td>
  94. % if s and s.repas:
  95. % for i, d in enumerate(['Ven Soir', 'Sam midi', 'Sam soir']):
  96. <td style="text-align:center">
  97. % if (s.repas & 2**i):
  98. <span class="data">Oui</span>Oui
  99. % else:
  100. <span class="data">Non</span>Non
  101. % endif
  102. </td>
  103. % endfor
  104. %else:
  105. <td style="text-align:center;" colspan="3">
  106. <i>Pas d'informations</i>
  107. </td>
  108. % endif
  109. </td>
  110. <td style="text-align:center;">
  111. % if s and s.depart_time:
  112. <span class="data">${s.depart_time.strftime('%m/%d/%Y %H:%M:%S')}</span>
  113. ${s.depart_time.strftime('%a %d <strong>%H:%M</strong>') | n}<br/>
  114. ${s.depart_place}
  115. % if s.depart_text:
  116. - NB: <strong>${s.arrival_text}</strong>
  117. % endif
  118. %else:
  119. <span class="data"></span>
  120. <i>Pas d'informations</i>
  121. % endif
  122. </td>
  123. <td>
  124. % if s:
  125. % if s.repas_allerg:
  126. <u>Allergies</u> : ${s.repas_allerg}<br/>
  127. % endif
  128. % if s.repas_contr:
  129. <u>Contraintes</u> : ${s.repas_contr}<br/>
  130. % endif
  131. % endif
  132. </td>
  133. </tr>
  134. % endfor
  135. </tbody>
  136. </table>
  137. </form>