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.
 
 
 
 
 

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