adherent 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +65 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/images/adherent/cal.gif +0 -0
  6. data/app/assets/images/adherent/icones/afficher.png +0 -0
  7. data/app/assets/images/adherent/icones/detail.png +0 -0
  8. data/app/assets/images/adherent/icones/modifier.png +0 -0
  9. data/app/assets/images/adherent/icones/money-plus.png +0 -0
  10. data/app/assets/images/adherent/icones/navigation90.png +0 -0
  11. data/app/assets/images/adherent/icones/nouveau.png +0 -0
  12. data/app/assets/images/adherent/icones/payment.png +0 -0
  13. data/app/assets/images/adherent/icones/retour.png +0 -0
  14. data/app/assets/images/adherent/icones/supprimer.png +0 -0
  15. data/app/assets/javascripts/adherent/adhesion.js +2 -0
  16. data/app/assets/javascripts/adherent/application.js +16 -0
  17. data/app/assets/javascripts/adherent/bootstrap.js +2038 -0
  18. data/app/assets/javascripts/adherent/coords.js +2 -0
  19. data/app/assets/javascripts/adherent/date_picker.js +47 -0
  20. data/app/assets/javascripts/adherent/members.js +2 -0
  21. data/app/assets/javascripts/adherent/payments.js +2 -0
  22. data/app/assets/javascripts/adherent/reglements.js +2 -0
  23. data/app/assets/stylesheets/adherent/adhesion.css +4 -0
  24. data/app/assets/stylesheets/adherent/application.css +14 -0
  25. data/app/assets/stylesheets/adherent/bootstrap.css +5695 -0
  26. data/app/assets/stylesheets/adherent/coords.css +4 -0
  27. data/app/assets/stylesheets/adherent/date_picker.css +24 -0
  28. data/app/assets/stylesheets/adherent/jc_application.css.scss +121 -0
  29. data/app/assets/stylesheets/adherent/jcmenu.css +43 -0
  30. data/app/assets/stylesheets/adherent/layouts.css.scss +79 -0
  31. data/app/assets/stylesheets/adherent/members.css +7 -0
  32. data/app/assets/stylesheets/adherent/old_bootstrap.css +125 -0
  33. data/app/assets/stylesheets/adherent/payments.css +4 -0
  34. data/app/assets/stylesheets/adherent/reglements.css +4 -0
  35. data/app/assets/stylesheets/scaffold.css +56 -0
  36. data/app/controllers/adherent/adhesions_controller.rb +84 -0
  37. data/app/controllers/adherent/application_controller.rb +6 -0
  38. data/app/controllers/adherent/coords_controller.rb +100 -0
  39. data/app/controllers/adherent/members_controller.rb +89 -0
  40. data/app/controllers/adherent/payments_controller.rb +55 -0
  41. data/app/controllers/adherent/reglements_controller.rb +26 -0
  42. data/app/helpers/adherent/adhesion_helper.rb +4 -0
  43. data/app/helpers/adherent/application_helper.rb +21 -0
  44. data/app/helpers/adherent/coords_helper.rb +4 -0
  45. data/app/helpers/adherent/members_helper.rb +4 -0
  46. data/app/helpers/adherent/payments_helper.rb +14 -0
  47. data/app/helpers/adherent/reglements_helper.rb +4 -0
  48. data/app/models/adherent/adhesion.rb +75 -0
  49. data/app/models/adherent/coord.rb +7 -0
  50. data/app/models/adherent/member.rb +36 -0
  51. data/app/models/adherent/payment.rb +60 -0
  52. data/app/models/adherent/reglement.rb +7 -0
  53. data/app/views/adherent/adhesions/_form.html.haml +13 -0
  54. data/app/views/adherent/adhesions/edit.html.erb +12 -0
  55. data/app/views/adherent/adhesions/index.html.haml +27 -0
  56. data/app/views/adherent/adhesions/new.html.erb +13 -0
  57. data/app/views/adherent/adhesions/show.html.erb +2 -0
  58. data/app/views/adherent/coords/_form.html.erb +22 -0
  59. data/app/views/adherent/coords/edit.html.erb +16 -0
  60. data/app/views/adherent/coords/index.html.erb +55 -0
  61. data/app/views/adherent/coords/new.html.erb +12 -0
  62. data/app/views/adherent/coords/show.html.erb +50 -0
  63. data/app/views/adherent/members/_form.html.erb +20 -0
  64. data/app/views/adherent/members/edit.html.erb +16 -0
  65. data/app/views/adherent/members/index.html.erb +52 -0
  66. data/app/views/adherent/members/new.html.erb +12 -0
  67. data/app/views/adherent/members/show.html.erb +36 -0
  68. data/app/views/adherent/payments/_form.html.haml +12 -0
  69. data/app/views/adherent/payments/edit.html.erb +2 -0
  70. data/app/views/adherent/payments/index.html.haml +30 -0
  71. data/app/views/adherent/payments/new.html.erb +13 -0
  72. data/app/views/adherent/payments/show.html.erb +2 -0
  73. data/app/views/adherent/reglements/_form.html.haml +12 -0
  74. data/app/views/adherent/reglements/index.html.erb +2 -0
  75. data/app/views/adherent/reglements/new.html.erb +13 -0
  76. data/app/views/adherent/reglements/show.html.erb +2 -0
  77. data/app/views/layouts/adherent/_flash_partial.html.haml +9 -0
  78. data/app/views/layouts/adherent/application.html.erb +42 -0
  79. data/config/initializers/constants.rb +6 -0
  80. data/config/initializers/date_picker_input.rb +39 -0
  81. data/config/initializers/pick_date_extension.rb +63 -0
  82. data/config/initializers/simple_form.rb +180 -0
  83. data/config/locales/fr.yml +222 -0
  84. data/config/locales/simple_form.fr.yml +59 -0
  85. data/config/locales/traduc.yml +9 -0
  86. data/config/routes.rb +22 -0
  87. data/db/migrate/20130805145522_create_adherent_members.rb +12 -0
  88. data/db/migrate/20130805152911_create_adherent_coords.rb +16 -0
  89. data/db/migrate/20130806053936_create_adherent_adhesions.rb +14 -0
  90. data/db/migrate/20130808054023_create_adherent_payments.rb +17 -0
  91. data/db/migrate/20130809052125_create_adherent_reglements.rb +13 -0
  92. data/db/migrate/20130810073908_add_organism_id_to_adherent_members.rb +5 -0
  93. data/lib/adherent/engine.rb +10 -0
  94. data/lib/adherent/version.rb +3 -0
  95. data/lib/adherent.rb +15 -0
  96. data/lib/tasks/adherent_tasks.rake +4 -0
  97. data/lib/templates/erb/scaffold/_form.html.erb +17 -0
  98. data/lib/templates/erb/scaffold/edit.html.erb +16 -0
  99. data/lib/templates/erb/scaffold/index.html.erb +36 -0
  100. data/lib/templates/erb/scaffold/new.html.erb +12 -0
  101. data/lib/templates/erb/scaffold/show.html.erb +22 -0
  102. data/test/adherent_test.rb +7 -0
  103. data/test/dummy/README.rdoc +261 -0
  104. data/test/dummy/Rakefile +7 -0
  105. data/test/dummy/app/assets/javascripts/application.js +16 -0
  106. data/test/dummy/app/assets/javascripts/organisms.js +2 -0
  107. data/test/dummy/app/assets/stylesheets/application.css +14 -0
  108. data/test/dummy/app/assets/stylesheets/organisms.css +4 -0
  109. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  110. data/test/dummy/app/controllers/application_controller.rb +16 -0
  111. data/test/dummy/app/controllers/organisms_controller.rb +86 -0
  112. data/test/dummy/app/helpers/application_helper.rb +2 -0
  113. data/test/dummy/app/helpers/organisms_helper.rb +2 -0
  114. data/test/dummy/app/models/organism.rb +5 -0
  115. data/test/dummy/app/views/layouts/application.html.erb +16 -0
  116. data/test/dummy/app/views/organisms/_form.html.haml +16 -0
  117. data/test/dummy/app/views/organisms/edit.html.haml +7 -0
  118. data/test/dummy/app/views/organisms/index.html.haml +21 -0
  119. data/test/dummy/app/views/organisms/new.html.haml +5 -0
  120. data/test/dummy/app/views/organisms/show.html.haml +14 -0
  121. data/test/dummy/config/application.rb +59 -0
  122. data/test/dummy/config/boot.rb +10 -0
  123. data/test/dummy/config/database.yml +55 -0
  124. data/test/dummy/config/environment.rb +5 -0
  125. data/test/dummy/config/environments/development.rb +37 -0
  126. data/test/dummy/config/environments/production.rb +67 -0
  127. data/test/dummy/config/environments/test.rb +37 -0
  128. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  129. data/test/dummy/config/initializers/inflections.rb +15 -0
  130. data/test/dummy/config/initializers/mime_types.rb +5 -0
  131. data/test/dummy/config/initializers/secret_token.rb +7 -0
  132. data/test/dummy/config/initializers/session_store.rb +8 -0
  133. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  134. data/test/dummy/config/locales/en.yml +5 -0
  135. data/test/dummy/config/locales/fr.yml +221 -0
  136. data/test/dummy/config/locales/simple_form.en.yml +26 -0
  137. data/test/dummy/config/routes.rb +9 -0
  138. data/test/dummy/config.ru +4 -0
  139. data/test/dummy/db/migrate/20130810074112_create_organisms.rb +10 -0
  140. data/test/dummy/db/migrate/20130810081835_create_adherent_members.adherent.rb +13 -0
  141. data/test/dummy/db/migrate/20130810081836_create_adherent_coords.adherent.rb +17 -0
  142. data/test/dummy/db/migrate/20130810081837_create_adherent_adhesions.adherent.rb +15 -0
  143. data/test/dummy/db/migrate/20130810081838_create_adherent_payments.adherent.rb +18 -0
  144. data/test/dummy/db/migrate/20130810081839_create_adherent_reglements.adherent.rb +14 -0
  145. data/test/dummy/db/migrate/20130810081840_add_organism_id_to_adherent_members.adherent.rb +6 -0
  146. data/test/dummy/db/schema.rb +79 -0
  147. data/test/dummy/log/development.log +90832 -0
  148. data/test/dummy/log/test.log +4951 -0
  149. data/test/dummy/public/404.html +26 -0
  150. data/test/dummy/public/422.html +26 -0
  151. data/test/dummy/public/500.html +25 -0
  152. data/test/dummy/public/favicon.ico +0 -0
  153. data/test/dummy/script/rails +6 -0
  154. data/test/dummy/test/fixtures/organisms.yml +9 -0
  155. data/test/dummy/test/functional/organisms_controller_test.rb +49 -0
  156. data/test/dummy/test/unit/helpers/organisms_helper_test.rb +4 -0
  157. data/test/dummy/test/unit/organism_test.rb +7 -0
  158. data/test/dummy/tmp/cache/assets/C44/670/sprockets%2Fe128312dd259094d00196a3f02f41819 +0 -0
  159. data/test/dummy/tmp/cache/assets/C4D/C10/sprockets%2Fe52bf847776498593423b635698c989c +0 -0
  160. data/test/dummy/tmp/cache/assets/C53/BA0/sprockets%2F0701319e027b68d87b4d5727aa571973 +0 -0
  161. data/test/dummy/tmp/cache/assets/C72/FD0/sprockets%2F211ada252149520831dc97669a2e3d70 +0 -0
  162. data/test/dummy/tmp/cache/assets/C8B/B50/sprockets%2F1bf0946089435ce76a87bd41668373c2 +0 -0
  163. data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
  164. data/test/dummy/tmp/cache/assets/C8D/BD0/sprockets%2F947d70d3406792779a12f1f6d39d1b91 +0 -0
  165. data/test/dummy/tmp/cache/assets/C90/510/sprockets%2Ff5920073f4480657faac32986b1f8587 +0 -0
  166. data/test/dummy/tmp/cache/assets/C91/5E0/sprockets%2F28a1436ca683918e98c79266d19d430e +0 -0
  167. data/test/dummy/tmp/cache/assets/CA0/DB0/sprockets%2F0333b2531e81b27b06c6f2829c6ab652 +0 -0
  168. data/test/dummy/tmp/cache/assets/CA2/E80/sprockets%2F332a13206d3e2013aaed55e54759f872 +0 -0
  169. data/test/dummy/tmp/cache/assets/CA4/930/sprockets%2F72a29d61339a55b21d1ac7ec59153244 +0 -0
  170. data/test/dummy/tmp/cache/assets/CA6/0A0/sprockets%2F63a72244bdf73521f399e501b341d16d +0 -0
  171. data/test/dummy/tmp/cache/assets/CA7/320/sprockets%2Ff20811f6c383aaf0958051fb829b3602 +0 -0
  172. data/test/dummy/tmp/cache/assets/CA9/F70/sprockets%2Fc82873599ca5d451407d1a58340ada23 +0 -0
  173. data/test/dummy/tmp/cache/assets/CAB/880/sprockets%2F3b58d34232750b28494eca3b6d7339a3 +0 -0
  174. data/test/dummy/tmp/cache/assets/CAD/BF0/sprockets%2Fd27d4e6bd84d0108fc54a21959181335 +0 -0
  175. data/test/dummy/tmp/cache/assets/CB1/900/sprockets%2F98768e5681d06ecae10153b850f22a64 +0 -0
  176. data/test/dummy/tmp/cache/assets/CC3/320/sprockets%2F6a1d777559c0368a3f41c28e9c358e58 +0 -0
  177. data/test/dummy/tmp/cache/assets/CC6/700/sprockets%2Fda996593aa3789391cab3d7762f13687 +0 -0
  178. data/test/dummy/tmp/cache/assets/CCB/400/sprockets%2Fb211324ce679335840009b6a2aa45cfc +0 -0
  179. data/test/dummy/tmp/cache/assets/CCC/450/sprockets%2F731d1832138b08d76d54530d0ea53abb +0 -0
  180. data/test/dummy/tmp/cache/assets/CD6/8A0/sprockets%2Fcb476833cd1a806e251da407a58d9520 +0 -0
  181. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  182. data/test/dummy/tmp/cache/assets/CD9/5A0/sprockets%2Fda84ff5dc1009f2b281035256a7812d9 +0 -0
  183. data/test/dummy/tmp/cache/assets/CDC/0B0/sprockets%2Ffef07c3c165353f861564ede180350a4 +0 -0
  184. data/test/dummy/tmp/cache/assets/CDD/EB0/sprockets%2F0e17703d917f6560e5c3b46ae85c09a2 +0 -0
  185. data/test/dummy/tmp/cache/assets/CE0/B90/sprockets%2F7baa8d092b9d409d47643521a8b55e62 +0 -0
  186. data/test/dummy/tmp/cache/assets/CE1/EB0/sprockets%2Fe2d34e55c19309ae4d1b8628d38514c6 +0 -0
  187. data/test/dummy/tmp/cache/assets/CE2/7C0/sprockets%2F1e3db2275be13ee98084d607564816bd +0 -0
  188. data/test/dummy/tmp/cache/assets/CE4/B80/sprockets%2Fdc146f8d1ff283ff045000f8349e3942 +0 -0
  189. data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
  190. data/test/dummy/tmp/cache/assets/CFA/700/sprockets%2Ff51725f304c66b6ed8ab01120cb1a593 +0 -0
  191. data/test/dummy/tmp/cache/assets/D0B/520/sprockets%2Fa659c61ab2078241e32ebaf671f87e41 +0 -0
  192. data/test/dummy/tmp/cache/assets/D0D/CC0/sprockets%2F90fc5652fe6161075680fcd4cd0c45d2 +0 -0
  193. data/test/dummy/tmp/cache/assets/D13/D30/sprockets%2Ff9d616cf2293e4f2ffe53f181410e523 +0 -0
  194. data/test/dummy/tmp/cache/assets/D14/210/sprockets%2Fb5db5427cdef8d152ae598d461178026 +0 -0
  195. data/test/dummy/tmp/cache/assets/D15/960/sprockets%2F557c56f5b8b86ba772e07281f1f3a0c7 +0 -0
  196. data/test/dummy/tmp/cache/assets/D16/870/sprockets%2F3f2a439772fcd9cd0f434f723837ae51 +0 -0
  197. data/test/dummy/tmp/cache/assets/D16/D00/sprockets%2F52e940c5c1d8089bcdf984d4d27c5520 +0 -0
  198. data/test/dummy/tmp/cache/assets/D17/680/sprockets%2Fa71f8f0bb597e3648d18d972aad62604 +0 -0
  199. data/test/dummy/tmp/cache/assets/D1A/390/sprockets%2F1d08a6978a059fa2494e078ec1ac7e93 +0 -0
  200. data/test/dummy/tmp/cache/assets/D1A/820/sprockets%2F20a218b05c2726d14bd025c36ba31ddd +0 -0
  201. data/test/dummy/tmp/cache/assets/D1A/D90/sprockets%2F6c459fd8844374d4aa166c64f544fae0 +0 -0
  202. data/test/dummy/tmp/cache/assets/D20/590/sprockets%2F22948c5cb4a59a4c252888f75cdf387a +0 -0
  203. data/test/dummy/tmp/cache/assets/D25/100/sprockets%2F4b9f1fdc6f9b86cc0624a7951766d926 +0 -0
  204. data/test/dummy/tmp/cache/assets/D25/C20/sprockets%2F1371c7975696fb3bbb964454c1ddff97 +0 -0
  205. data/test/dummy/tmp/cache/assets/D27/980/sprockets%2F65718e7a65fd89199b02b7cd38b90be9 +0 -0
  206. data/test/dummy/tmp/cache/assets/D2A/220/sprockets%2Fb0d6ff4608e402650ca685bc013d5d0a +0 -0
  207. data/test/dummy/tmp/cache/assets/D2B/FA0/sprockets%2F32aa9ce8b2315cc01f8a2c27374215ce +0 -0
  208. data/test/dummy/tmp/cache/assets/D32/5D0/sprockets%2F3acc8697202c55974ff0122bcf20fa2b +0 -0
  209. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  210. data/test/dummy/tmp/cache/assets/D37/CF0/sprockets%2Fb1fa058e880dd6bc8dc0704b26a44096 +0 -0
  211. data/test/dummy/tmp/cache/assets/D3E/7A0/sprockets%2Ff9a1dbe464c536a11de32284fbc89192 +0 -0
  212. data/test/dummy/tmp/cache/assets/D3F/640/sprockets%2F9b448668c4c3a12d6aaa017b94e69ed2 +0 -0
  213. data/test/dummy/tmp/cache/assets/D42/040/sprockets%2F3def97f4406db752008fa340f74a6e3f +0 -0
  214. data/test/dummy/tmp/cache/assets/D44/860/sprockets%2F9157a652853bd3cea861bd767fed0b08 +0 -0
  215. data/test/dummy/tmp/cache/assets/D44/BF0/sprockets%2Fcf34626c45538b36718fd50fa9bcb2e6 +0 -0
  216. data/test/dummy/tmp/cache/assets/D45/2A0/sprockets%2F9c55f3eca763e68ded31023b7f66543a +0 -0
  217. data/test/dummy/tmp/cache/assets/D48/B20/sprockets%2F5768e2da329c68c958acde5d26124de0 +0 -0
  218. data/test/dummy/tmp/cache/assets/D48/FD0/sprockets%2F4403ce85c7fe84fe60d426553aa99b1f +0 -0
  219. data/test/dummy/tmp/cache/assets/D4B/710/sprockets%2F41e4ac5488184198d7e33e18b7aece4f +0 -0
  220. data/test/dummy/tmp/cache/assets/D4B/C40/sprockets%2F2428f6c76bb4a5efb583e158681fb73d +0 -0
  221. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  222. data/test/dummy/tmp/cache/assets/D50/4F0/sprockets%2F06489ea52ac1bf5ebb888f5b8c719268 +0 -0
  223. data/test/dummy/tmp/cache/assets/D51/560/sprockets%2Ff6c8347aff37a4784ea82069ba176f5f +0 -0
  224. data/test/dummy/tmp/cache/assets/D56/090/sprockets%2F4af17d268e2ffe72af8a78b78811f666 +0 -0
  225. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  226. data/test/dummy/tmp/cache/assets/D5F/600/sprockets%2F9c4623e57da4d15adb71bd1b04188b1d +0 -0
  227. data/test/dummy/tmp/cache/assets/D5F/950/sprockets%2F083e58aaae13ddb213d627c950dc2d09 +0 -0
  228. data/test/dummy/tmp/cache/assets/D63/7A0/sprockets%2Fa0d549181d4ba25b5ed57b841efc2d14 +0 -0
  229. data/test/dummy/tmp/cache/assets/D68/100/sprockets%2F7d7522df5cd3ba1f22c81c653dd5d651 +0 -0
  230. data/test/dummy/tmp/cache/assets/D6A/5C0/sprockets%2F9b410af44867a4979d1aea0ab84ed24b +0 -0
  231. data/test/dummy/tmp/cache/assets/D6B/970/sprockets%2F214e29a7345faee9672bca1756e4aaf1 +0 -0
  232. data/test/dummy/tmp/cache/assets/D6B/D20/sprockets%2Fee6531726dfe6592fa84b42a420b6acd +0 -0
  233. data/test/dummy/tmp/cache/assets/D70/650/sprockets%2Fe9a55b9e2e492638448a622c2fc0bfab +0 -0
  234. data/test/dummy/tmp/cache/assets/D71/AF0/sprockets%2Fb289e7b3562dcfd42bd0957f27a2f52a +0 -0
  235. data/test/dummy/tmp/cache/assets/D73/0F0/sprockets%2F5ba6d2f108d33e64b84fc4dd91960d6e +0 -0
  236. data/test/dummy/tmp/cache/assets/D73/8B0/sprockets%2Fac0e6a1f5b87c2966f07864c89c0acc3 +0 -0
  237. data/test/dummy/tmp/cache/assets/D79/640/sprockets%2F7443c25f3c67c8dae8e5ee1b1df18853 +0 -0
  238. data/test/dummy/tmp/cache/assets/D7B/800/sprockets%2F850d92cf676cc2c2c662ee8dc328f82c +0 -0
  239. data/test/dummy/tmp/cache/assets/D7D/950/sprockets%2F8259f3fc885403b4eea8dd12964c2ffc +0 -0
  240. data/test/dummy/tmp/cache/assets/D80/5F0/sprockets%2F375f5ed76dd35537dbe20d7f597ed06c +0 -0
  241. data/test/dummy/tmp/cache/assets/D92/430/sprockets%2Fc55e2bbc3d3c5566893be021ec1c4ab7 +0 -0
  242. data/test/dummy/tmp/cache/assets/D98/DB0/sprockets%2F85d986b72de37b417ec3a1a8e0da5aa1 +0 -0
  243. data/test/dummy/tmp/cache/assets/D9A/810/sprockets%2F53a9bd5325fcfa4148c273e3deb2d19d +0 -0
  244. data/test/dummy/tmp/cache/assets/D9D/BA0/sprockets%2Fa3a3f78f8e854339e32a5ab0638abbbf +0 -0
  245. data/test/dummy/tmp/cache/assets/DA7/930/sprockets%2F06db55d1b7d0c96a4ff1657e169e6ece +0 -0
  246. data/test/dummy/tmp/cache/assets/DA8/0D0/sprockets%2F74dcf71bbdf4ad56a3b4338b93d9866c +0 -0
  247. data/test/dummy/tmp/cache/assets/DAD/860/sprockets%2F11e875f5b7f7f5efbad0f6b5f880e244 +0 -0
  248. data/test/dummy/tmp/cache/assets/DAD/8E0/sprockets%2F498547cbaefbf040cfff05e9c6e53386 +0 -0
  249. data/test/dummy/tmp/cache/assets/DB0/A80/sprockets%2F9fdb8e951f975dae3836c2ccf0f65a34 +0 -0
  250. data/test/dummy/tmp/cache/assets/DC1/9E0/sprockets%2F4fdc113ba37308cc3d7d2dbbe1e9d625 +0 -0
  251. data/test/dummy/tmp/cache/assets/DCC/170/sprockets%2Fa2b9a6a717a82fc483c94abbe71aa95f +0 -0
  252. data/test/dummy/tmp/cache/assets/DCD/870/sprockets%2F26f53f256948ecabba69abf1e1dea282 +0 -0
  253. data/test/dummy/tmp/cache/assets/DD4/350/sprockets%2Fdb9283bc185ba79f4e69ffcf1214d3ac +0 -0
  254. data/test/dummy/tmp/cache/assets/DD4/980/sprockets%2Fed1289bfd5270a38bd9adfcb8d0627c8 +0 -0
  255. data/test/dummy/tmp/cache/assets/DD7/110/sprockets%2Fa7626606dec6ffd4a8a4b76abb7f6a94 +0 -0
  256. data/test/dummy/tmp/cache/assets/DD7/2D0/sprockets%2F9f68c831ccc33f95a6b0a5d7aaf76d8a +0 -0
  257. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  258. data/test/dummy/tmp/cache/assets/DE5/930/sprockets%2Fdf7e1e4d508705c77a96e8deb9d8cf4a +0 -0
  259. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  260. data/test/dummy/tmp/cache/assets/E06/3E0/sprockets%2Fea82cc4edce5d77b1a6919e2ce267c5e +0 -0
  261. data/test/dummy/tmp/cache/assets/E09/D50/sprockets%2Ff4ddcae783285dd8fc1d36e118c8cb7d +0 -0
  262. data/test/dummy/tmp/cache/assets/E12/820/sprockets%2Ff8ced48d293d9ae81be776bac3d3de86 +0 -0
  263. data/test/dummy/tmp/cache/assets/E5A/2A0/sprockets%2Fed33dc2e47cddca2a7f3b9d850f01fef +0 -0
  264. data/test/dummy/tmp/cache/assets/E5A/610/sprockets%2Fca00ee89118a5de9af36a4df9a2eddda +0 -0
  265. data/test/dummy/tmp/cache/assets/E8E/C80/sprockets%2Fbcfe97b68b37db0b902decd4ea5ae8ea +0 -0
  266. data/test/fixtures/adherent/adhesions.yml +11 -0
  267. data/test/fixtures/adherent/coords.yml +21 -0
  268. data/test/fixtures/adherent/members.yml +13 -0
  269. data/test/fixtures/adherent/payments.yml +22 -0
  270. data/test/fixtures/adherent/reglements.yml +11 -0
  271. data/test/functional/adherent/adhesion_controller_test.rb +26 -0
  272. data/test/functional/adherent/coords_controller_test.rb +53 -0
  273. data/test/functional/adherent/members_controller_test.rb +54 -0
  274. data/test/functional/adherent/payments_controller_test.rb +26 -0
  275. data/test/functional/adherent/reglements_controller_test.rb +21 -0
  276. data/test/integration/navigation_test.rb +10 -0
  277. data/test/test_helper.rb +27 -0
  278. data/test/unit/adherent/adhesion_test.rb +35 -0
  279. data/test/unit/adherent/coord_test.rb +9 -0
  280. data/test/unit/adherent/member_test.rb +17 -0
  281. data/test/unit/adherent/payment_test.rb +24 -0
  282. data/test/unit/adherent/reglement_test.rb +9 -0
  283. data/test/unit/helpers/adherent/adhesion_helper_test.rb +6 -0
  284. data/test/unit/helpers/adherent/coords_helper_test.rb +6 -0
  285. data/test/unit/helpers/adherent/members_helper_test.rb +6 -0
  286. data/test/unit/helpers/adherent/payments_helper_test.rb +6 -0
  287. data/test/unit/helpers/adherent/reglements_helper_test.rb +6 -0
  288. metadata +627 -0
@@ -0,0 +1,89 @@
1
+ # coding utf-8
2
+
3
+ require_dependency "adherent/application_controller"
4
+
5
+ module Adherent
6
+ class MembersController < ApplicationController
7
+ # GET /members
8
+ # GET /members.json
9
+ def index
10
+ @members = @organism.members.all
11
+
12
+ respond_to do |format|
13
+ format.html # index.html.erb
14
+ format.json { render json: @members }
15
+ end
16
+ end
17
+
18
+ # GET /members/1
19
+ # GET /members/1.json
20
+ def show
21
+ @member = Member.find(params[:id])
22
+
23
+ respond_to do |format|
24
+ format.html # show.html.erb
25
+ format.json { render json: @member }
26
+ end
27
+ end
28
+
29
+ # GET /members/new
30
+ # GET /members/new.json
31
+ def new
32
+ @member = @organism.members.new
33
+
34
+ respond_to do |format|
35
+ format.html # new.html.erb
36
+ format.json { render json: @member }
37
+ end
38
+ end
39
+
40
+ # GET /members/1/edit
41
+ def edit
42
+ @member = Member.find(params[:id])
43
+ end
44
+
45
+ # POST /members
46
+ # POST /members.json
47
+ def create
48
+ @member = @organism.members.new(params[:member])
49
+
50
+ respond_to do |format|
51
+ if @member.save
52
+ format.html { redirect_to new_member_coord_url(@member.id), notice: 'Le membre a été créé avec succès ; Enregistrez maintenant les coordonnées' }
53
+ format.json { render json: @member, status: :created, location: @member }
54
+ else
55
+ format.html { render action: "new" }
56
+ format.json { render json: @member.errors, status: :unprocessable_entity }
57
+ end
58
+ end
59
+ end
60
+
61
+ # PUT /members/1
62
+ # PUT /members/1.json
63
+ def update
64
+ @member = Member.find(params[:id])
65
+
66
+ respond_to do |format|
67
+ if @member.update_attributes(params[:member])
68
+ format.html { redirect_to @member, notice: 'Les données ont été mises à jour' }
69
+ format.json { head :no_content }
70
+ else
71
+ format.html { render action: "edit" }
72
+ format.json { render json: @member.errors, status: :unprocessable_entity }
73
+ end
74
+ end
75
+ end
76
+
77
+ # DELETE /members/1
78
+ # DELETE /members/1.json
79
+ def destroy
80
+ @member = Member.find(params[:id])
81
+ @member.destroy
82
+
83
+ respond_to do |format|
84
+ format.html { redirect_to members_url }
85
+ format.json { head :no_content }
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,55 @@
1
+ require_dependency "adherent/application_controller"
2
+
3
+ module Adherent
4
+ class PaymentsController < ApplicationController
5
+
6
+ before_filter :find_member
7
+
8
+ def index
9
+ @payments = @member.payments
10
+ end
11
+
12
+ def new
13
+ @payment = @member.payments.new(date:Date.today, amount:@member.unpaid_amount)
14
+ end
15
+
16
+ def create
17
+ @payment=@member.payments.new(params[:payment])
18
+ if @payment.save
19
+
20
+ flash[:notice] = 'Le paiement a été enregistré'
21
+ redirect_to member_adhesions_path(@member)
22
+ else
23
+ flash[:alert] = 'Impossible d\'enregistrer ce paiement'
24
+ render 'new'
25
+ end
26
+ end
27
+
28
+ def edit
29
+ end
30
+
31
+ def show
32
+ end
33
+
34
+ # DELETE /payment/1
35
+ # DELETE /coords/1.json
36
+ def destroy
37
+ @payment = @member.payments.find(params[:id])
38
+ @payment.destroy
39
+
40
+ respond_to do |format|
41
+ format.html { redirect_to member_payments_url(@member) }
42
+
43
+ end
44
+ end
45
+
46
+
47
+ protected
48
+
49
+
50
+
51
+ def find_member
52
+ @member = Member.find(params[:member_id])
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,26 @@
1
+ require_dependency "adherent/application_controller"
2
+
3
+ module Adherent
4
+ class ReglementsController < ApplicationController
5
+
6
+ # enegistrer un nouveau réglement est en fait créer une nouvelle imputation
7
+ # pour un paiement.
8
+ # Il est donc obligatoire d'avoir un paiement
9
+ #
10
+ def new
11
+ @payment = Payment.find(params[:payment_id])
12
+ @member = @payment.member
13
+ @reglement = @payment.reglements.new(amount:@payment.non_impute)
14
+ @unpaid_adhesions = Adhesion.unpaid
15
+ end
16
+
17
+ def create
18
+ @payment = Payment.find(params[:payment_id])
19
+ @payment.imputation_on_adh(params[:reglement][:adhesion_id])
20
+ redirect_to member_payments_path(@payment.member)
21
+
22
+ end
23
+
24
+
25
+ end
26
+ end
@@ -0,0 +1,4 @@
1
+ module Adherent
2
+ module AdhesionHelper
3
+ end
4
+ end
@@ -0,0 +1,21 @@
1
+ module Adherent
2
+ module ApplicationHelper
3
+
4
+
5
+ def icon_to(icon_file, options={}, html_options={})
6
+ raise ArgumentError unless icon_file
7
+ title = alt = icon_file.split('.')[0].capitalize
8
+
9
+ html_options[:title] ||=title
10
+ html_options[:class] ||= 'icon_menu'
11
+ # html_options[:tabindex]= "-1"
12
+ img_path="adherent/icones/#{icon_file}"
13
+ link_to image_tag(img_path, :alt=> alt), options, html_options
14
+ end
15
+
16
+ # Pour transformer un montant selon le format numérique français avec deux décimales
17
+ def virgule(montant)
18
+ ActionController::Base.helpers.number_with_precision(montant, precision:2) rescue '0,00'
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,4 @@
1
+ module Adherent
2
+ module CoordsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Adherent
2
+ module MembersHelper
3
+ end
4
+ end
@@ -0,0 +1,14 @@
1
+ module Adherent
2
+ module PaymentsHelper
3
+ def list_imputations(payment)
4
+
5
+ content_tag(:ul) do
6
+ payment.reglements.map do |r|
7
+ content_tag(:li) do
8
+ "Adhésion #{r.adhesion.member.to_s} pour #{number_to_currency(r.amount, locale: :fr)}"
9
+ end
10
+ end.join.html_safe
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ module Adherent
2
+ module ReglementsHelper
3
+ end
4
+ end
@@ -0,0 +1,75 @@
1
+
2
+
3
+ module Adherent
4
+ class Adhesion < ActiveRecord::Base
5
+
6
+ attr_accessible :from_date, :member, :to_date, :amount
7
+
8
+ belongs_to :member
9
+ has_many :reglements
10
+
11
+ validates :from_date, :to_date, :member_id, :amount, presence:true
12
+ validates_numericality_of :amount, greater_than_or_equal_to: 0
13
+ validate :chrono_order
14
+
15
+ pick_date_for :from_date, :to_date
16
+
17
+ # partant d'une adhésion, retourne un hash avec les attributs correspondants à
18
+ # un renouvellement d'adhésion
19
+ def self.next_adh_values(adh = nil)
20
+ if adh
21
+ {:from_date =>I18n.l(adh.read_attribute(:to_date)+1), :to_date=>I18n.l(adh.read_attribute(:to_date).years_since(1))}
22
+ else
23
+ {:from_date=>I18n.l(Date.today), :to_date=>I18n.l(Date.today.years_since(1) - 1)}
24
+ end
25
+ end
26
+
27
+ # liste toutes les adhésions qui ne sont pas payées
28
+ # TODO voir pour faire une requête SQL qui serait surment moins
29
+ # consommatrice de mémoire
30
+ def self.unpaid
31
+ all.reject {|adh| adh.is_paid?}
32
+ end
33
+
34
+ # méthode mise en place pour assurer une mise en forme lisible
35
+ # dans la sélection des imputations
36
+ def to_s_for_select
37
+ "#{member.to_s} - #{Adherent::ApplicationController.helpers.number_to_currency(due, locale: :fr)}"
38
+ end
39
+
40
+
41
+
42
+ # indique si une adhésion a été réglée
43
+ def is_paid?
44
+ sprintf('%0.02f',due) == '0.00'
45
+ end
46
+
47
+ # retourne le montant dû sur l'adhésion
48
+ def due
49
+ amount - received
50
+ end
51
+
52
+ def received
53
+ reglements.sum(:amount)
54
+ end
55
+
56
+ # ajoute un réglement provenant d'un payment pour un montant donné;
57
+ # renvoie le montant qui a été effectivement imputé sur cette adhésion.
58
+ def add_reglement(payment_id, montant)
59
+ imputation = [montant, due].min
60
+ r = reglements.new(amount:imputation)
61
+ r.payment_id = payment_id
62
+ r.save!
63
+ imputation
64
+ end
65
+
66
+
67
+
68
+ protected
69
+
70
+ def chrono_order
71
+ return unless (from_date && to_date) # on doit avoir les deux dates
72
+ errors.add(:from_date, 'la date de début ne peut être après la date de fin') if read_attribute(:from_date) > read_attribute(:to_date)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,7 @@
1
+ module Adherent
2
+ class Coord < ActiveRecord::Base
3
+ belongs_to :member
4
+
5
+ attr_accessible :address, :city, :gsm, :mail, :office, :references, :tel, :zip
6
+ end
7
+ end
@@ -0,0 +1,36 @@
1
+ module Adherent
2
+ class Member < ActiveRecord::Base
3
+ attr_accessible :birthdate, :forname, :name, :number
4
+
5
+ belongs_to :organism, class_name: 'Organism'
6
+ has_one :coord
7
+ has_many :adhesions
8
+ has_many :payments
9
+
10
+ validates :number, :name, :forname , :presence=>true
11
+ validates_uniqueness_of :number, :scope=>:organism_id
12
+
13
+ def unpaid_adhesions
14
+ adhesions.reject {|adh| adh.is_paid? }
15
+ end
16
+
17
+ def unpaid_adhesions?
18
+ unpaid_adhesions.any?
19
+ end
20
+
21
+ def unpaid_amount
22
+ unpaid_adhesions.sum(&:due)
23
+ end
24
+
25
+ def to_s
26
+ [forname, name.capitalize].join(' ')
27
+ end
28
+
29
+ def next_adhesion
30
+ adh = adhesions(true).order('to_date').last
31
+ n_ad = Adhesion.next_adh_values(adh)
32
+ adhesions.new(n_ad)
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,60 @@
1
+ module Adherent
2
+ class Payment < ActiveRecord::Base
3
+
4
+ has_many :reglements, :dependent=>:destroy
5
+ belongs_to :member
6
+
7
+ attr_accessible :amount, :date, :mode
8
+
9
+ validates :amount, :date, :mode, presence:true
10
+
11
+ pick_date_for :date
12
+
13
+ # le montant ne peut être que positif
14
+ validates_numericality_of :amount, greater_than: 0
15
+ # le mode doit être dans les MODES
16
+ validates_inclusion_of :mode, in: Adherent::MODES
17
+
18
+ after_create :imputation
19
+
20
+
21
+ # quand on reçoit un paiement, il faut en réaliser l'imputation,
22
+ # plusieurs cas de figure sont à envisager.
23
+ #
24
+ # Le cas le plus simple est lorsque le montant est inférieur ou égal ou
25
+ # montant dus par le membre pour les adhésions en cours.
26
+ #
27
+ # Donc on impute sur les adhésions du membre non soldées et on regarde s'il reste
28
+ # quelque chose.
29
+ #
30
+ #
31
+ #
32
+ def imputation
33
+ # liste les adhésions non soldées et le montant total dû
34
+ # pour chaque adhésion non soldée (prise dans l'ordre chrono)
35
+ # on crée un réglement du montant dû dans la limité du montant du paiement.
36
+ un_paid_adhs = member.adhesions.order(:to_date).reject {|adh| adh.is_paid?}
37
+ a_imputer = amount
38
+ un_paid_adhs.each do |adh|
39
+ if a_imputer > 0
40
+ impute = adh.add_reglement(id, a_imputer)
41
+ a_imputer -= impute
42
+ end
43
+ end
44
+ end
45
+
46
+ # pour faire une imputation sur une adhesion dont l'id est transmise en argument
47
+ # TODO faire que la valeur de retour soit true ou false pour
48
+ # que la méthode créate du controller puisse tester et rediriger en conséquence
49
+ def imputation_on_adh(adh_id)
50
+ Adhesion.find(adh_id).add_reglement(id, amount)
51
+ end
52
+
53
+ # calcule le montant du paiement qui n'a pas été imputé, donc qui
54
+ # ne correspond pas à des réglements
55
+ def non_impute
56
+ amount - reglements(true).sum(:amount)
57
+ end
58
+
59
+ end
60
+ end
@@ -0,0 +1,7 @@
1
+ module Adherent
2
+ class Reglement < ActiveRecord::Base
3
+ belongs_to :adhesion
4
+ belongs_to :payment
5
+ attr_accessible :amount
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ .inputs.row-fluid#transfer
2
+ = simple_form_for([@member, @adhesion], :html=>{class:'form-inline'}) do |f|
3
+ =f.error_notification
4
+ .row-fluid
5
+ .span12
6
+ = f.input :from_date, wrapper_html:{class:'span2'}, label_html:{class: 'span4'}, input_html:{class:'span8', value:@adhesion.from_date}, :as=>:date_picker
7
+ = f.input :to_date, wrapper_html:{class:'span2'}, label_html:{class: 'span4'}, input_html:{class:'span8', value:@adhesion.to_date}, :as=>:date_picker
8
+ = f.input :amount, wrapper_html:{class:'span2'}, label_html:{class: 'span4'}, input_html:{class:'span8'}
9
+
10
+ .row-fluid
11
+ .span12
12
+ .form-actions
13
+ = f.button :submit, id: 'new_adhesion', class: "btn-primary span2"
@@ -0,0 +1,12 @@
1
+ <%= content_for :menu do %>
2
+
3
+ <%= icon_to 'navigation90.png', member_adhesions_path(@member) %>
4
+ <% end -%>
5
+
6
+ <div class="champ">
7
+ <h3>Modification adhésion pour <%= @member.to_s %></h3>
8
+ </div>
9
+ <div class="row-fluid inner-champ">
10
+
11
+ <%= render 'form' %>
12
+ </div>
@@ -0,0 +1,27 @@
1
+ = content_for :menu do
2
+ = icon_to 'navigation90.png', members_path, title:'Liste des membres'
3
+ = icon_to 'nouveau.png', new_member_adhesion_path(@member), title:'Nouvelle adhésion ou renouvellement'
4
+
5
+
6
+ .champ
7
+ %h3 Historique des adhésions pour #{@member.to_s}
8
+
9
+ %table.table.table-striped.table-bordered.table-condensed(cellpadding="0" cellspacing="0" border="0")
10
+ %thead
11
+ %tr
12
+ %th Du
13
+ %th Au
14
+ %th Montant
15
+ %th Reste à payer
16
+ %th Actions
17
+ %tbody
18
+ - @adhesions.each do |adhesion|
19
+ %tr
20
+ %td= adhesion.from_date
21
+ %td= adhesion.to_date
22
+ %td= number_to_currency(adhesion.amount, locale: :fr)
23
+ %td= number_to_currency(adhesion.due, locale: :fr)
24
+ %td
25
+ = icon_to 'modifier.png', edit_member_adhesion_path(@member, adhesion)
26
+ = icon_to 'supprimer.png', [@member,adhesion], method: :delete, confirm: 'Etes vous sûr ?'
27
+ = icon_to('money-plus.png', new_member_payment_path(@member), title:'Ajouter un paiement') unless adhesion.is_paid?
@@ -0,0 +1,13 @@
1
+ <%= content_for :menu do %>
2
+
3
+ <%= icon_to 'navigation90.png', member_adhesions_path(@member) %>
4
+ <% end -%>
5
+
6
+ <div class="champ">
7
+ <h3>Renouvellement ou nouvelle adhésion pour <%= @member.to_s %></h3>
8
+ </div>
9
+ <div class="row-fluid inner-champ">
10
+
11
+ <%= render 'form' %>
12
+ </div>
13
+
@@ -0,0 +1,2 @@
1
+ <h1>Adhesion#show</h1>
2
+ <p>Find me in app/views/adherent/adhesion/show.html.erb</p>
@@ -0,0 +1,22 @@
1
+ <div class="inputs row-fluid" id="form_coord" >
2
+
3
+ <%= simple_form_for([@member, @coord], :url=>member_coord_path(@member), :html=> {class: 'form-horizontal'}) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="row-fluid">
7
+ <div class="span12">
8
+ <%= f.input :mail, input_html: {class: "span3"} %>
9
+ <%= f.input :tel, input_html: {class: "span3"} %>
10
+ <%= f.input :gsm, input_html: {class: "span3"} %>
11
+ <%= f.input :office, input_html: {class: "span3"} %>
12
+ <%= f.input :address, input_html: {rows: 4, class: "span3"} %>
13
+ <%= f.input :zip, input_html: {class: "span3"} %>
14
+ <%= f.input :city, input_html: {class: "span3"} %>
15
+
16
+ </div>
17
+ </div>
18
+
19
+ <div class="form-actions">
20
+ <%= f.button :submit, class: "btn-primary span2" %>
21
+ </div>
22
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <%= content_for :menu do %>
2
+
3
+ <%= icon_to 'nouveau.png', new_coord_path %>
4
+ <%= icon_to 'detail.png', @coord %>
5
+ <%= icon_to 'retour.png', :back %>
6
+ <% end -%>
7
+
8
+ <div class="champ">
9
+ <h3>Modification <%= I18n.t('coord').pluralize %></h3>
10
+ </div>
11
+ <div class="inner-champ">
12
+ <%= render 'form' %>
13
+ </div>
14
+
15
+
16
+
@@ -0,0 +1,55 @@
1
+ <%= content_for :menu do %>
2
+ <%= icon_to 'nouveau.png', new_coord_path %>
3
+ <% end -%>
4
+
5
+
6
+ <div class="champ">
7
+
8
+
9
+ <h3> Liste des <%= I18n::t('coords') %></h3>
10
+ <table class="table table-striped table-bordered table-condensed" cellpadding="0" cellspacing="0" border="0">
11
+ <thead>
12
+ <tr>
13
+
14
+ <th><%= I18n::t('mail') %></th>
15
+
16
+ <th><%= I18n::t('tel') %></th>
17
+
18
+ <th><%= I18n::t('gsm') %></th>
19
+
20
+ <th><%= I18n::t('office') %></th>
21
+
22
+ <th><%= I18n::t('address') %></th>
23
+
24
+ <th><%= I18n::t('zip') %></th>
25
+
26
+ <th><%= I18n::t('city') %></th>
27
+
28
+
29
+
30
+ <th>Actions</th>
31
+
32
+ </tr>
33
+ </thead>
34
+ <tbody>
35
+ <% @coords.each do |coord| %>
36
+ <tr>
37
+ <td><%= coord.mail %></td>
38
+ <td><%= coord.tel %></td>
39
+ <td><%= coord.gsm %></td>
40
+ <td><%= coord.office %></td>
41
+ <td><%= coord.address %></td>
42
+ <td><%= coord.zip %></td>
43
+ <td><%= coord.city %></td>
44
+
45
+ <td><%= icon_to 'detail.png', member_coord_path(coord.member) %>
46
+ <%= icon_to 'modifier.png', edit_member_coord_path(coord.member) %>
47
+ <%= icon_to 'supprimer.png', coord, :confirm => 'Etes vous sur ?', :method => :delete %></td>
48
+ </tr>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
52
+
53
+ </div>
54
+
55
+
@@ -0,0 +1,12 @@
1
+ <%= content_for :menu do %>
2
+
3
+ <%= icon_to 'navigation90.png', members_path %>
4
+ <% end -%>
5
+
6
+ <div class="champ">
7
+ <h3>Saisie des coordonnées de <%= @member.to_s %></h3>
8
+ </div>
9
+ <div class="row-fluid inner-champ">
10
+
11
+ <%= render 'form' %>
12
+ </div>
@@ -0,0 +1,50 @@
1
+
2
+ <%= content_for :menu do %>
3
+ <%= icon_to 'navigation90.png', members_path %>
4
+ <%= icon_to 'modifier.png', edit_member_coord_path(@member) %>
5
+
6
+ <% end -%>
7
+
8
+ <div class="champ">
9
+ <h3>Fiche <%= I18n::t('coord').pluralize %> <%= "#{@member.forname} #{@member.name}" %> </h3>
10
+ </div>
11
+ <div class="row-fluid inner-champ">
12
+
13
+
14
+ <p>
15
+ <b> <%= I18n::t('mail') %>:</b>
16
+ <%= @coord.mail %>
17
+ </p>
18
+
19
+ <p>
20
+ <b> <%= I18n::t('tel') %>:</b>
21
+ <%= @coord.tel %>
22
+ </p>
23
+
24
+ <p>
25
+ <b> <%= I18n::t('gsm') %>:</b>
26
+ <%= @coord.gsm %>
27
+ </p>
28
+
29
+ <p>
30
+ <b> <%= I18n::t('office') %>:</b>
31
+ <%= @coord.office %>
32
+ </p>
33
+
34
+ <p>
35
+ <b> <%= I18n::t('address') %>:</b>
36
+ <%= @coord.address %>
37
+ </p>
38
+
39
+ <p>
40
+ <b> <%= I18n::t('zip') %>:</b>
41
+ <%= @coord.zip %>
42
+ </p>
43
+
44
+ <p>
45
+ <b> <%= I18n::t('city') %>:</b>
46
+ <%= @coord.city %>
47
+ </p>
48
+
49
+ </div>
50
+
@@ -0,0 +1,20 @@
1
+ <div class="inputs row-fluid" id="form_member" >
2
+
3
+ <%= simple_form_for(@member, :html=> {class: 'form-horizontal'}) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="row-fluid">
7
+ <div class="span12">
8
+ <%= f.input :number, input_html: {class: "span3"} %>
9
+ <%= f.input :name, input_html: {class: "span3"} %>
10
+ <%= f.input :forname, input_html: {class: "span3"} %>
11
+ <%= f.input :birthdate, input_html: {class: "span1"},
12
+ start_year:(Date.today.year - 100),
13
+ end_year:(Date.today.year) %>
14
+ </div>
15
+ </div>
16
+
17
+ <div class="form-actions">
18
+ <%= f.button :submit, class: "btn-primary span2" %>
19
+ </div>
20
+ <% end %>