Le repo des sources pour le site web des JM2L
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 

198 řádky
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>