Le repo des sources pour le site web des JM2L
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

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