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.
 
 
 
 
 

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