Le repo des sources pour le site web des JM2L
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 

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