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.
 
 
 
 
 

198 Zeilen
8.3 KiB

  1. <%inherit file="jm2l:templates/layout.mako"/>
  2. <%namespace name="helpers" file="jm2l:templates/helpers.mako"/>
  3. <%def name="cssAddOn()">
  4. <link rel="stylesheet" href="/vendor/select2/css/select2.css" type="text/css" media="screen" />
  5. <link rel="stylesheet" href="/vendor/fileupload/css/jquery.fileupload.css">
  6. <link rel="stylesheet" href="/vendor/fileupload/css/jquery.fileupload-ui.css">
  7. <!-- CSS adjustments for browsers with JavaScript disabled -->
  8. <noscript><link rel="stylesheet" href="/vendor/fileupload/css/jquery.fileupload-noscript.css"></noscript>
  9. <noscript><link rel="stylesheet" href="/vendor/fileupload/css/jquery.fileupload-ui-noscript.css"></noscript>
  10. </%def>
  11. <div class="row-fluid">
  12. <div class="span10 offset1">
  13. <a class="pull-right" href="/categorie/entity">Editer les catégories</a>
  14. <br>
  15. <form action="" method="POST">
  16. % if 'uid' in form._fields:
  17. ${form.uid}
  18. %endif
  19. <%
  20. DicForm = {
  21. 'name': {'PlaceHolder':u"Nom", 'ContainerStyle':"padding-right:5px;float:left;width:35em;", "FieldStyle":"width:31em;"},
  22. 'tiers_type': {'PlaceHolder':u"Nature", 'ContainerStyle':"padding-right:5px;", "FieldStyle":"width:15em;"},
  23. 'description': {'PlaceHolder':u"Description", 'ContainerStyle':"padding-right:5px;padding-top: 20px;", "FieldStyle":"width:90%;min-height:150px;" },
  24. 'website': {'PlaceHolder':u"Site web", 'ContainerStyle':"padding-right:15px;", 'ContainerStyle':"width:30em;"},
  25. 'membership': {'Ignore':True}
  26. }
  27. %>
  28. ${helpers.DisplayForm(form, DicForm)}
  29. % if 'uid' in form._fields:
  30. <fieldset>
  31. <legend>Acteurs</legend>
  32. <div class="repeat">
  33. <table class="wrapper table table-striped table-bordered" width="100%">
  34. <thead>
  35. <tr class="row">
  36. <th style="width:5em;text-align:center;">Année</th>
  37. <th style="width:22em;">Personne</th>
  38. <th style="width:22em;">Rôle</th>
  39. <th style="width:5em;">Action</th>
  40. </tr>
  41. </thead>
  42. <tbody class="container">
  43. <tr class="row template" style="line-height:2.2em;">
  44. ##<td><span class="move btn btn-mini btn-info">Move</span></td>
  45. <td>
  46. <select class="form-control" style="width:5em;" name="membership-{{row-count-placeholder}}-year_uid"
  47. id="membership-{{row-count-placeholder}}-year_uid">
  48. % for year in range(2015, 2005, -1):
  49. <%
  50. if year in [2014]:
  51. continue
  52. %> \
  53. <option value="${year}">${year}</option>
  54. %endfor
  55. </select>
  56. </td>
  57. <td style="text-align: center;">
  58. <input type="hidden" style="width:20em;" class="form-control" name="membership-{{row-count-placeholder}}-user_uid"
  59. id="membership-{{row-count-placeholder}}-user_uid" />
  60. </td>
  61. <td style="text-align: center;">
  62. <select class="form-control" style="width:20em;" name="membership-{{row-count-placeholder}}-role"
  63. id="membership-{{row-count-placeholder}}-role">
  64. % for opt in UserOptions:
  65. <option value="${opt.uid}">${opt.exch_subtype}</option>
  66. % endfor
  67. </select>
  68. <input type="text" class="form-control" name="membership-{{row-count-placeholder}}-role" />
  69. </td>
  70. <td>
  71. <span class="remove btn btn-mini btn-danger">
  72. <i class="icon-remove-sign icon-white"></i> Suppr.
  73. </span>
  74. </td>
  75. </tr>
  76. % for num, dicdata in enumerate(form._fields.get("membership").data):
  77. <tr class="row" style="padding:5px;line-height:2.2em;">
  78. ##<td><span class="move btn btn-mini btn-info">Move</span></td>
  79. <td style="text-align:center;">
  80. <input type="hidden" class="form-control" name="membership-${num}-year_uid"
  81. value="${dicdata.get('year_uid')}" style="width:4em;" />
  82. ${dicdata.get('year_uid')}
  83. </td>
  84. <td style="text-align:center;">
  85. <input type="hidden" class="form-control" name="membership-${num}-user_uid"
  86. value="${dicdata.get('user_uid')}" style="width:4em;" />
  87. <%
  88. tmpUser = DBUser.by_id(dicdata.get('user_uid'))
  89. %>
  90. % if tmpUser:
  91. ${tmpUser.prenom} ${tmpUser.nom}
  92. % endif
  93. </td>
  94. <td style="text-align:center;">
  95. <i>${dicdata.get('role', 'Aucun')}</i>
  96. </td>
  97. <td>
  98. <span class="remove btn btn-mini btn-danger">
  99. <i class="icon-remove-sign icon-white"></i> Suppr.
  100. </span>
  101. </td>
  102. </tr>
  103. % endfor
  104. </tbody>
  105. <tfoot>
  106. <tr>
  107. <td colspan="5" style="text-align:center;line-height: 3em;">
  108. <span class="add btn btn-mini btn-primary"><i class="icon-plus-sign icon-white"></i> Ajouter</span>
  109. </td>
  110. </tr>
  111. </tfoot>
  112. </table>
  113. </div>
  114. </fieldset>
  115. % endif
  116. % if 'uid' in form._fields:
  117. <button class="btn btn-primary" type="submit">Enregistrer</button>
  118. % else:
  119. <button class="btn btn-primary" type="submit">Proposer</button>
  120. % endif
  121. </form>
  122. % if 'uid' in form._fields:
  123. % if request.user:
  124. <fieldset>
  125. <legend>Support liés</legend>
  126. <div style="float:right;width:60%">
  127. <p> En plus de vos support de présentation classique.
  128. Pensez aussi aux affiches, aux flyers, aux stickers,
  129. au bulletin d'adhésion à une association, à la documentation technique...
  130. Tous ce qui peut être utile, de près ou de loin à la promotion de votre évenement.
  131. </p>
  132. </div>
  133. ${helpers.uploader("tiers", form.uid.data, u"fichiers" )}
  134. </fieldset>
  135. % else:
  136. <br>NB: Vous devez être identifié afin de proposer du contenu.
  137. % endif
  138. % else:
  139. <br>NB: Vous devez proposer votre entité avant de pouvoir
  140. téléverser des fichiers la concernant.
  141. % endif
  142. </div>
  143. </div>
  144. <%def name="jsAddOn()">
  145. <script src="/vendor/select2/js/select2.js"></script>
  146. <script src="/vendor/repeatable-fields/js/repeatable-fields.js"></script>
  147. <script src="/vendor/ckeditor/ckeditor.js"></script>
  148. <script type="text/javascript">
  149. var year_data = Array();
  150. var editor = CKEDITOR.replace('description', { autoGrow_onStartup: true, language: 'fr' } );
  151. for (var i=2005;i<2015;i++)
  152. { year_data[i.toString()] = i.toString(); };
  153. $("#tiers_type").select2({});
  154. function show_editor() {
  155. if (editor) {
  156. editor.destroy();
  157. editor=null;
  158. } else
  159. editor = CKEDITOR.replace('description');
  160. }
  161. jQuery(function() {
  162. jQuery('.repeat').each(function() {
  163. jQuery(this).repeatable_fields(
  164. {
  165. is_ready: function(container, therow) {
  166. var numrow=$(container).attr('data-rf-row-count');
  167. $("#membership-"+ (numrow-1) +"-user_uid").select2(
  168. {
  169. placeholder: 'Entrez ici un Nom ou un Prénom',
  170. minimumInputLength: 2, allowClear: true,
  171. ajax: {
  172. quietMillis: 250, url: "/json-users", dataType: 'json',
  173. data: function (term, page) {
  174. return { pageSize: 8, pageNum: page, searchTerm: term };
  175. },
  176. results: function (data, page) {
  177. var more = (page * 8) < data.Total;
  178. return { results: data.Results, more: more };
  179. }
  180. }
  181. });
  182. $("#membership-"+ (numrow-1) +"-year_uid").select2({});
  183. }
  184. });
  185. });
  186. });
  187. </script>
  188. </%def>