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.
 
 
 
 
 

144 linhas
5.9 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. % if u.is_IntervenantOnYear(for_year):
  26. <tr>
  27. % else:
  28. <tr style="color:lightgray">
  29. % endif
  30. <td style="text-align:center;">
  31. <span class="data">${u.slug}</span>
  32. <a href="/MesJM2L?user=${u.uid}">${u.nom} ${u.prenom}</a><br />
  33. <span style="align:center">
  34. ${u.vote_logo}
  35. <a href="mailto:${u.mail}">
  36. <i class="icon-envelope"></i>
  37. </a>
  38. % if u.Staff==1:
  39. <a href="javascript:alert('${u.nom}, ${u.prenom}\nStaff JM2L');">
  40. <i class="icon-star"></i>
  41. </a>
  42. % endif
  43. % if u.is_IntervenantOnYear(for_year):
  44. <a href="javascript:alert('${u.nom}, ${u.prenom}\nIntervenant');">
  45. <i class="icon-user"></i>
  46. </a>
  47. % endif
  48. % if u.active==0:
  49. <a href="javascript:alert('${u.nom}, ${u.prenom}\nInactive');">
  50. <i class="icon-ban-circle"></i>
  51. </a>
  52. % endif
  53. % if u.phone:
  54. <a href="javascript:alert('${u.nom}, ${u.prenom}\n${u.phone}');">
  55. <i class="icon-headphones"></i>
  56. </a>
  57. % endif
  58. <a href="/user/${u.slug}/badge">
  59. <i class="icon-qrcode"></i>
  60. </a>
  61. </span>
  62. </td>
  63. <td style="text-align:center;">
  64. <span class="data">${(now - u.last_logged).days}</span>${(now - u.last_logged).days} j
  65. </td>
  66. <td style="text-align:center;">
  67. % if u.events:
  68. <span class="data">${len(u.events)}</span>
  69. <select style="width:7em;">
  70. <option><strong>${len(u.events)} Intérv.</strong></option>
  71. % for y, g in itertools.groupby(sorted(u.events, key=lambda k:k.for_year, reverse=True), key=lambda k:k.for_year):
  72. <OPTGROUP LABEL="${y}">
  73. % for event in g:
  74. ${event.for_year}
  75. <OPTION onclick="location='/event/${event.for_year}/${event.slug}';">${event.event_type} - ${event.name}</OPTION>
  76. % endfor
  77. </OPTGROUP>
  78. % endfor
  79. </select>
  80. %else:
  81. <span class="data"></span>
  82. <i> - </i>
  83. % endif
  84. </td>
  85. <td style="text-align:center;">
  86. % if s and s.arrival_time:
  87. <span class="data">${s.arrival_time.strftime('%m/%d/%Y %H:%M:%S')}</span>
  88. ${s.arrival_time.strftime('%a %d <strong>%H:%M</strong>') | n}<br/>
  89. ${s.arrival_place}
  90. % if s.arrival_text:
  91. - NB: <strong>${s.arrival_text}</strong>
  92. % endif
  93. %else:
  94. <span class="data"></span>
  95. <i>Pas d'informations</i>
  96. % endif
  97. </td>
  98. % if s and s.repas:
  99. % for i, d in enumerate(['Ven Soir', 'Sam midi', 'Sam soir']):
  100. <td style="text-align:center">
  101. % if (s.repas & 2**i):
  102. <span class="data">Oui</span>Oui
  103. % else:
  104. <span class="data">Non</span>Non
  105. % endif
  106. </td>
  107. % endfor
  108. %else:
  109. <td style="text-align:center;" colspan="3">
  110. <i>Pas d'informations</i>
  111. </td>
  112. % endif
  113. </td>
  114. <td style="text-align:center;">
  115. % if s and s.depart_time:
  116. <span class="data">${s.depart_time.strftime('%m/%d/%Y %H:%M:%S')}</span>
  117. ${s.depart_time.strftime('%a %d <strong>%H:%M</strong>') | n}<br/>
  118. ${s.depart_place}
  119. % if s.depart_text:
  120. - NB: <strong>${s.arrival_text}</strong>
  121. % endif
  122. %else:
  123. <span class="data"></span>
  124. <i>Pas d'informations</i>
  125. % endif
  126. </td>
  127. <td>
  128. % if s:
  129. % if s.repas_allerg:
  130. <u>Allergies</u> : ${s.repas_allerg}<br/>
  131. % endif
  132. % if s.repas_contr:
  133. <u>Contraintes</u> : ${s.repas_contr}<br/>
  134. % endif
  135. % endif
  136. </td>
  137. </tr>
  138. % endfor
  139. </tbody>
  140. </table>
  141. </form>