Le repo des sources pour le site web des JM2L
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

163 lines
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>