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.
 
 
 
 
 

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