adherent 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (513) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/adherent/icones/csv.png +0 -0
  3. data/app/assets/images/adherent/icones/xls.png +0 -0
  4. data/app/controllers/adherent/application_controller.rb +8 -0
  5. data/app/controllers/adherent/members_controller.rb +12 -6
  6. data/app/models/adherent/adhesion.rb +10 -4
  7. data/app/models/adherent/member.rb +42 -2
  8. data/app/models/adherent/query_member.rb +113 -0
  9. data/app/views/adherent/adhesions/_form.html.haml +2 -2
  10. data/app/views/adherent/members/index.html.erb +14 -13
  11. data/config/initializers/mime_types.rb +8 -0
  12. data/db/migrate/20150412145132_create_query_member.rb +23 -0
  13. data/lib/adherent/version.rb +2 -1
  14. data/spec/controllers/adherent/members_controller_spec.rb +10 -6
  15. data/spec/dummy/db/migrate/20150412145762_create_query_member.adherent.rb +24 -0
  16. data/spec/dummy/log/development.log +16529 -0
  17. data/spec/dummy/log/test.log +45516 -0
  18. data/spec/dummy/tmp/cache/assets/development/sprockets/002047c2c82601407c25cd51a2209152 +0 -0
  19. data/spec/dummy/tmp/cache/assets/development/sprockets/0021d97c1da8e39cdc31432611dc1f83 +0 -0
  20. data/spec/dummy/tmp/cache/assets/development/sprockets/0252818b90e0c222ecc1754584406b6f +0 -0
  21. data/spec/dummy/tmp/cache/assets/development/sprockets/03f10562155446429bb36992a0b92e3a +0 -0
  22. data/spec/dummy/tmp/cache/assets/development/sprockets/04414052cc366a532ec99b91c871a03c +0 -0
  23. data/spec/dummy/tmp/cache/assets/development/sprockets/057faeb3fad4dc36d3d7d0b8bb04325a +0 -0
  24. data/spec/dummy/tmp/cache/assets/development/sprockets/066963b3708be15003c276f90b04f410 +0 -0
  25. data/spec/dummy/tmp/cache/assets/development/sprockets/06871d5f41af82a912f6b1e16c95cf75 +0 -0
  26. data/spec/dummy/tmp/cache/assets/development/sprockets/068777b2f603edfa99533430e8c51dd8 +0 -0
  27. data/spec/dummy/tmp/cache/assets/development/sprockets/0701319e027b68d87b4d5727aa571973 +0 -0
  28. data/spec/dummy/tmp/cache/assets/development/sprockets/08e67f9b24a565ccbd1124ef05e6a592 +0 -0
  29. data/spec/dummy/tmp/cache/assets/development/sprockets/0919a8182dea7bbb570c08e2c307f288 +0 -0
  30. data/spec/dummy/tmp/cache/assets/development/sprockets/094b8456cb72b33ae87dae0ba7ddb898 +0 -0
  31. data/spec/dummy/tmp/cache/assets/development/sprockets/0a532f90b225ce9ac8c6bd7ae842e06b +0 -0
  32. data/spec/dummy/tmp/cache/assets/development/sprockets/0b4b5b1534650859b3c22081213b8978 +0 -0
  33. data/spec/dummy/tmp/cache/assets/development/sprockets/0c0801c7f4f10878de603bf2505ddfa3 +0 -0
  34. data/spec/dummy/tmp/cache/assets/development/sprockets/0c418a7e3c6101ef6e3c008f3e550abe +0 -0
  35. data/spec/dummy/tmp/cache/assets/development/sprockets/0cf09b6bd4058afb7797d332f36bdd68 +0 -0
  36. data/spec/dummy/tmp/cache/assets/development/sprockets/0d14e869566ca526fbdbbbc488475003 +0 -0
  37. data/spec/dummy/tmp/cache/assets/development/sprockets/0ea4d583ba95e0c1eb3b926932571034 +0 -0
  38. data/spec/dummy/tmp/cache/assets/development/sprockets/0ec565b2aab8a3ae9211952ed56f1a70 +0 -0
  39. data/spec/dummy/tmp/cache/assets/development/sprockets/0f4534d531ba963bc5bfe31fe1e440e0 +0 -0
  40. data/spec/dummy/tmp/cache/assets/development/sprockets/1011f3c7821f361a9526ffc199c64af3 +0 -0
  41. data/spec/dummy/tmp/cache/assets/development/sprockets/105f9ba3d5f2207f03e5a96732f61aa9 +0 -0
  42. data/spec/dummy/tmp/cache/assets/development/sprockets/10c2b2e71e26d6656bebe9a27a770898 +0 -0
  43. data/spec/dummy/tmp/cache/assets/development/sprockets/13131cc9d523e2676ed7beb2e5148049 +0 -0
  44. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  45. data/spec/dummy/tmp/cache/assets/development/sprockets/16a23b3b08e7cfe26acd23f26ae54248 +0 -0
  46. data/spec/dummy/tmp/cache/assets/development/sprockets/180048c037c7224ef7601fc6875d3a43 +0 -0
  47. data/spec/dummy/tmp/cache/assets/development/sprockets/18c9906bc5a7358693929c8c08d65545 +0 -0
  48. data/spec/dummy/tmp/cache/assets/development/sprockets/1bf0946089435ce76a87bd41668373c2 +0 -0
  49. data/spec/dummy/tmp/cache/assets/development/sprockets/1c1912cbfad76668e9cba7920057a20f +0 -0
  50. data/spec/dummy/tmp/cache/assets/development/sprockets/1c238542b2e90ad68e363ab1d4a8cfc9 +0 -0
  51. data/spec/dummy/tmp/cache/assets/development/sprockets/1c618f3d751d9ae8fa4c9ea3551fb1f9 +0 -0
  52. data/spec/dummy/tmp/cache/assets/development/sprockets/1e644a2769d2dd110598326a14417284 +0 -0
  53. data/spec/dummy/tmp/cache/assets/development/sprockets/1e744ce18e3322ef8a3644715da7159b +0 -0
  54. data/spec/dummy/tmp/cache/assets/development/sprockets/1f9079cfa7c961c037ecd0e2250043c6 +0 -0
  55. data/spec/dummy/tmp/cache/assets/development/sprockets/20a218b05c2726d14bd025c36ba31ddd +0 -0
  56. data/spec/dummy/tmp/cache/assets/development/sprockets/224cf987cad00c39ae3d39b971f8109b +0 -0
  57. data/spec/dummy/tmp/cache/assets/development/sprockets/22948c5cb4a59a4c252888f75cdf387a +0 -0
  58. data/spec/dummy/tmp/cache/assets/development/sprockets/22a52b924d1607de75741cca2b5b4100 +0 -0
  59. data/spec/dummy/tmp/cache/assets/development/sprockets/22e866ad99949e0e85383cb83ec9a880 +0 -0
  60. data/spec/dummy/tmp/cache/assets/development/sprockets/2329760cfd987dc40312a49d2c974211 +0 -0
  61. data/spec/dummy/tmp/cache/assets/development/sprockets/235f16eedc53801f4154c4204024a496 +0 -0
  62. data/spec/dummy/tmp/cache/assets/development/sprockets/24383c007af706866f9a978498308d01 +0 -0
  63. data/spec/dummy/tmp/cache/assets/development/sprockets/26f53f256948ecabba69abf1e1dea282 +0 -0
  64. data/spec/dummy/tmp/cache/assets/development/sprockets/274db0da960cfce46e72ed7649491db9 +0 -0
  65. data/spec/dummy/tmp/cache/assets/development/sprockets/2ac463f684368c0dd093fe7d5bc567bc +0 -0
  66. data/spec/dummy/tmp/cache/assets/development/sprockets/2bbf2acccb92437db752f36b9cb9cd62 +0 -0
  67. data/spec/dummy/tmp/cache/assets/development/sprockets/2c60d0f2e80cc940437007413465285a +0 -0
  68. data/spec/dummy/tmp/cache/assets/development/sprockets/2dbcdc03180b29fc99d1659f39b78cc1 +0 -0
  69. data/spec/dummy/tmp/cache/assets/development/sprockets/2e294fd6c56a0466193ed135f54eb355 +0 -0
  70. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  71. data/spec/dummy/tmp/cache/assets/development/sprockets/32aa9ce8b2315cc01f8a2c27374215ce +0 -0
  72. data/spec/dummy/tmp/cache/assets/development/sprockets/332a13206d3e2013aaed55e54759f872 +0 -0
  73. data/spec/dummy/tmp/cache/assets/development/sprockets/33541bbe0a7710d9f0fc192b296c73f2 +0 -0
  74. data/spec/dummy/tmp/cache/assets/development/sprockets/34a4093120a5fc0daec9697570a14cac +0 -0
  75. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  76. data/spec/dummy/tmp/cache/assets/development/sprockets/35ef41173b6f56b97a04b40f0fc1b293 +0 -0
  77. data/spec/dummy/tmp/cache/assets/development/sprockets/35fd8eed029678a1500c62cd3221b49f +0 -0
  78. data/spec/dummy/tmp/cache/assets/development/sprockets/3704d7891001f9591df9c70f00b8828b +0 -0
  79. data/spec/dummy/tmp/cache/assets/development/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
  80. data/spec/dummy/tmp/cache/assets/development/sprockets/372593a50247de2c5858f1202b500916 +0 -0
  81. data/spec/dummy/tmp/cache/assets/development/sprockets/379a386413dbf1e4401f7254b4aefbba +0 -0
  82. data/spec/dummy/tmp/cache/assets/development/sprockets/3902c2d919f5f30ddf1b8401aa626507 +0 -0
  83. data/spec/dummy/tmp/cache/assets/development/sprockets/39657549f1ee3a7107d451261ffb466d +0 -0
  84. data/spec/dummy/tmp/cache/assets/development/sprockets/39bf03b4ccf51b4eafd3fa520c741ede +0 -0
  85. data/spec/dummy/tmp/cache/assets/development/sprockets/3bd0f73e61519054c0590a021cc460e3 +0 -0
  86. data/spec/dummy/tmp/cache/assets/development/sprockets/3c7ac679f8c2cf31dec4ed6ee8064ece +0 -0
  87. data/spec/dummy/tmp/cache/assets/development/sprockets/3d39a82b50748df339cc29d1cb995ecc +0 -0
  88. data/spec/dummy/tmp/cache/assets/development/sprockets/3de477330a6f0c70bbf58e0efd9a66af +0 -0
  89. data/spec/dummy/tmp/cache/assets/development/sprockets/3def97f4406db752008fa340f74a6e3f +0 -0
  90. data/spec/dummy/tmp/cache/assets/development/sprockets/3f2a439772fcd9cd0f434f723837ae51 +0 -0
  91. data/spec/dummy/tmp/cache/assets/development/sprockets/40c0faa33270d368c95cfa1e5e797330 +0 -0
  92. data/spec/dummy/tmp/cache/assets/development/sprockets/42b486109907c85c344e3428f5615140 +0 -0
  93. data/spec/dummy/tmp/cache/assets/development/sprockets/43201002f6033898fe6ebf4b42863988 +0 -0
  94. data/spec/dummy/tmp/cache/assets/development/sprockets/4403ce85c7fe84fe60d426553aa99b1f +0 -0
  95. data/spec/dummy/tmp/cache/assets/development/sprockets/44fcfb6a84307ca96ceecf36e31f24fa +0 -0
  96. data/spec/dummy/tmp/cache/assets/development/sprockets/45b24d3af92162c80de74b80c72716b9 +0 -0
  97. data/spec/dummy/tmp/cache/assets/development/sprockets/45fd3019e156ddaed79f09cb426c74e0 +0 -0
  98. data/spec/dummy/tmp/cache/assets/development/sprockets/46b306efbef22611d63b16f70b1dfb92 +0 -0
  99. data/spec/dummy/tmp/cache/assets/development/sprockets/46cbfefc229778c4d546821f3dc866f4 +0 -0
  100. data/spec/dummy/tmp/cache/assets/development/sprockets/47a80d133284fdf4f9f0c0ac4a1ac041 +0 -0
  101. data/spec/dummy/tmp/cache/assets/development/sprockets/494f833c3bd29eaea447d16b5d6682e2 +0 -0
  102. data/spec/dummy/tmp/cache/assets/development/sprockets/49b5803aaa253c1ffa5214311973e684 +0 -0
  103. data/spec/dummy/tmp/cache/assets/development/sprockets/4af17d268e2ffe72af8a78b78811f666 +0 -0
  104. data/spec/dummy/tmp/cache/assets/development/sprockets/4ddf15b55b63cc061b47598887250483 +0 -0
  105. data/spec/dummy/tmp/cache/assets/development/sprockets/4e10005d181aab6cecebcddc92c6bddc +0 -0
  106. data/spec/dummy/tmp/cache/assets/development/sprockets/4f67efffc5aea8afd7ea072c6ba8712f +0 -0
  107. data/spec/dummy/tmp/cache/assets/development/sprockets/510692add38624ac80a87b191683d62f +0 -0
  108. data/spec/dummy/tmp/cache/assets/development/sprockets/510da110ae528e2d22533be39ff696c5 +0 -0
  109. data/spec/dummy/tmp/cache/assets/development/sprockets/520aebfb52aa75e3e8a9ba57b9b713a6 +0 -0
  110. data/spec/dummy/tmp/cache/assets/development/sprockets/52e940c5c1d8089bcdf984d4d27c5520 +0 -0
  111. data/spec/dummy/tmp/cache/assets/development/sprockets/536c10ae35b4049d46807a1bb3c0d960 +0 -0
  112. data/spec/dummy/tmp/cache/assets/development/sprockets/53e9dbf9ed4c2b1ff0c2a9cfc55ad6ed +0 -0
  113. data/spec/dummy/tmp/cache/assets/development/sprockets/555693fc60a32a02e49777fdf902626e +0 -0
  114. data/spec/dummy/tmp/cache/assets/development/sprockets/56f179a54ca866ae04070c6ebfba4ca7 +0 -0
  115. data/spec/dummy/tmp/cache/assets/development/sprockets/5768e2da329c68c958acde5d26124de0 +0 -0
  116. data/spec/dummy/tmp/cache/assets/development/sprockets/57e8e5954196bd14468ff5db3ae99cd0 +0 -0
  117. data/spec/dummy/tmp/cache/assets/development/sprockets/586ce8fe4b79a57617fc2fb5b0a61dfe +0 -0
  118. data/spec/dummy/tmp/cache/assets/development/sprockets/5a27a4c25ec209ba7816b8aca6322697 +0 -0
  119. data/spec/dummy/tmp/cache/assets/development/sprockets/5ab7f24aa3e6b2b56afab2d03e43c8b9 +0 -0
  120. data/spec/dummy/tmp/cache/assets/development/sprockets/5e053ce9ffcaf22837f5f8f89746cfc7 +0 -0
  121. data/spec/dummy/tmp/cache/assets/development/sprockets/5f7982cadcc1a33cc745cd505fd2f21e +0 -0
  122. data/spec/dummy/tmp/cache/assets/development/sprockets/620a73df9fe64ee474ff0455ab7ec4e6 +0 -0
  123. data/spec/dummy/tmp/cache/assets/development/sprockets/633c100575d535c778661ba0f1410f51 +0 -0
  124. data/spec/dummy/tmp/cache/assets/development/sprockets/63a72244bdf73521f399e501b341d16d +0 -0
  125. data/spec/dummy/tmp/cache/assets/development/sprockets/6425806ac0cdde2e39de3acf01fc3baf +0 -0
  126. data/spec/dummy/tmp/cache/assets/development/sprockets/65718e7a65fd89199b02b7cd38b90be9 +0 -0
  127. data/spec/dummy/tmp/cache/assets/development/sprockets/65d0b957c5865a5aa520b0cb26fce3fa +0 -0
  128. data/spec/dummy/tmp/cache/assets/development/sprockets/662e0c617259b839657d51e2c0ba6c4f +0 -0
  129. data/spec/dummy/tmp/cache/assets/development/sprockets/68a257f9d184b44971cbe05b3a018b79 +0 -0
  130. data/spec/dummy/tmp/cache/assets/development/sprockets/69a78967e103c4b02122552a2f3b9d11 +0 -0
  131. data/spec/dummy/tmp/cache/assets/development/sprockets/69f23513c7a86a829d1973fbdb21405b +0 -0
  132. data/spec/dummy/tmp/cache/assets/development/sprockets/6a27917dfb0d4a194b15c7fe33e8a2fe +0 -0
  133. data/spec/dummy/tmp/cache/assets/development/sprockets/6b4a271890f37338b02a9febc97c3daf +0 -0
  134. data/spec/dummy/tmp/cache/assets/development/sprockets/6cb768545ee34f1d849ccf3caf520913 +0 -0
  135. data/spec/dummy/tmp/cache/assets/development/sprockets/6df973778134c66fb80ebe9bc7f55527 +0 -0
  136. data/spec/dummy/tmp/cache/assets/development/sprockets/6f5d5de4baa6cda62a63b63743ff33e2 +0 -0
  137. data/spec/dummy/tmp/cache/assets/development/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
  138. data/spec/dummy/tmp/cache/assets/development/sprockets/707d14985ad94cdf9b5480953a10faf5 +0 -0
  139. data/spec/dummy/tmp/cache/assets/development/sprockets/70a81f9703f996ceb7861f31043fa772 +0 -0
  140. data/spec/dummy/tmp/cache/assets/development/sprockets/7191d39b2ec3b192c2f1c94eb2a71d46 +0 -0
  141. data/spec/dummy/tmp/cache/assets/development/sprockets/7566b213016e5bc90381985bbae7e445 +0 -0
  142. data/spec/dummy/tmp/cache/assets/development/sprockets/75df7dd0ef873271ce1062a2d14b45f1 +0 -0
  143. data/spec/dummy/tmp/cache/assets/development/sprockets/76688686fe11abed207295bdab7dbb1e +0 -0
  144. data/spec/dummy/tmp/cache/assets/development/sprockets/7936710203d4d28155f744eb687dc125 +0 -0
  145. data/spec/dummy/tmp/cache/assets/development/sprockets/7baa2e01021ef9bd8204236fee88d289 +0 -0
  146. data/spec/dummy/tmp/cache/assets/development/sprockets/7baa8d092b9d409d47643521a8b55e62 +0 -0
  147. data/spec/dummy/tmp/cache/assets/development/sprockets/7c297bdb92e1b06ff2d288b928c49ff9 +0 -0
  148. data/spec/dummy/tmp/cache/assets/development/sprockets/7d7522df5cd3ba1f22c81c653dd5d651 +0 -0
  149. data/spec/dummy/tmp/cache/assets/development/sprockets/7ee425f20d4d2577e8d2a67745c87d9a +0 -0
  150. data/spec/dummy/tmp/cache/assets/development/sprockets/802a3029fda33c1c24a1bb256347bc6f +0 -0
  151. data/spec/dummy/tmp/cache/assets/development/sprockets/814ed84cf825b66e8a93afa3046115cd +0 -0
  152. data/spec/dummy/tmp/cache/assets/development/sprockets/8259f3fc885403b4eea8dd12964c2ffc +0 -0
  153. data/spec/dummy/tmp/cache/assets/development/sprockets/828a391376a8e4e0cb3ed1f676ec060a +0 -0
  154. data/spec/dummy/tmp/cache/assets/development/sprockets/83ce7d021f07063451a06f6d60175f8a +0 -0
  155. data/spec/dummy/tmp/cache/assets/development/sprockets/850d92cf676cc2c2c662ee8dc328f82c +0 -0
  156. data/spec/dummy/tmp/cache/assets/development/sprockets/854e57b12b9e199bf99ee1e6b4140cb0 +0 -0
  157. data/spec/dummy/tmp/cache/assets/development/sprockets/863379807bfb3c1d38ad4ad41f283101 +0 -0
  158. data/spec/dummy/tmp/cache/assets/development/sprockets/88b3b9628f940ef50703d36ff435c67c +0 -0
  159. data/spec/dummy/tmp/cache/assets/development/sprockets/88cb6c31c0ef95f134773c1d49072412 +0 -0
  160. data/spec/dummy/tmp/cache/assets/development/sprockets/8969cef7fbf7b14282b11c62b32919c0 +0 -0
  161. data/spec/dummy/tmp/cache/assets/development/sprockets/8a7a27749f2f76175627ed4084e5ae1b +0 -0
  162. data/spec/dummy/tmp/cache/assets/development/sprockets/8c382a2a9aab338b046cc3fe6d47f435 +0 -0
  163. data/spec/dummy/tmp/cache/assets/development/sprockets/8c5ffb42727c5fc7794ac3c608b17c2e +0 -0
  164. data/spec/dummy/tmp/cache/assets/development/sprockets/8d46886219801353094d82d2e0b36f73 +0 -0
  165. data/spec/dummy/tmp/cache/assets/development/sprockets/8ea4f850c201e8912b42b4bc3e997211 +0 -0
  166. data/spec/dummy/tmp/cache/assets/development/sprockets/8fec68cfa10ef4643a92927e94d7a88c +0 -0
  167. data/spec/dummy/tmp/cache/assets/development/sprockets/90fc5652fe6161075680fcd4cd0c45d2 +0 -0
  168. data/spec/dummy/tmp/cache/assets/development/sprockets/9128c86b1a4a983b1e3cc44b2ab4a1c0 +0 -0
  169. data/spec/dummy/tmp/cache/assets/development/sprockets/9157a652853bd3cea861bd767fed0b08 +0 -0
  170. data/spec/dummy/tmp/cache/assets/development/sprockets/925684e5a9f1e78f793a879d3702e730 +0 -0
  171. data/spec/dummy/tmp/cache/assets/development/sprockets/93aa3074f1cd1a511a73c50254d6673b +0 -0
  172. data/spec/dummy/tmp/cache/assets/development/sprockets/942ea398c220dfe3c4b4aab028e0bb02 +0 -0
  173. data/spec/dummy/tmp/cache/assets/development/sprockets/947d70d3406792779a12f1f6d39d1b91 +0 -0
  174. data/spec/dummy/tmp/cache/assets/development/sprockets/9713f297e0ca72345a5b7202c052becf +0 -0
  175. data/spec/dummy/tmp/cache/assets/development/sprockets/973acbad728af4334804dd0454045384 +0 -0
  176. data/spec/dummy/tmp/cache/assets/development/sprockets/97829b155233b6d466bc829fff627287 +0 -0
  177. data/spec/dummy/tmp/cache/assets/development/sprockets/97f59d5e32c82d6c6f80530dd59eb1e5 +0 -0
  178. data/spec/dummy/tmp/cache/assets/development/sprockets/9909959901922ff5ee27206a9e56a99d +0 -0
  179. data/spec/dummy/tmp/cache/assets/development/sprockets/9a6548b678d621a1b9f0f9f27f130113 +0 -0
  180. data/spec/dummy/tmp/cache/assets/development/sprockets/9b410af44867a4979d1aea0ab84ed24b +0 -0
  181. data/spec/dummy/tmp/cache/assets/development/sprockets/9b6859af21d7d645ed13281e6419d6dc +0 -0
  182. data/spec/dummy/tmp/cache/assets/development/sprockets/9bc806b242d3b60b7a2e015640a87077 +0 -0
  183. data/spec/dummy/tmp/cache/assets/development/sprockets/9c4623e57da4d15adb71bd1b04188b1d +0 -0
  184. data/spec/dummy/tmp/cache/assets/development/sprockets/9c55f3eca763e68ded31023b7f66543a +0 -0
  185. data/spec/dummy/tmp/cache/assets/development/sprockets/9d4198672849d9edf7212a7e5b24345c +0 -0
  186. data/spec/dummy/tmp/cache/assets/development/sprockets/9d5d20a90c55b873f24c83ced17ab26b +0 -0
  187. data/spec/dummy/tmp/cache/assets/development/sprockets/9df8aa618d64c72ff01523582e414c27 +0 -0
  188. data/spec/dummy/tmp/cache/assets/development/sprockets/9edbcadf5d7bd3710cf93d08d9c78cf0 +0 -0
  189. data/spec/dummy/tmp/cache/assets/development/sprockets/9fdb8e951f975dae3836c2ccf0f65a34 +0 -0
  190. data/spec/dummy/tmp/cache/assets/development/sprockets/a0e62c7cdca2dc22e82b98d84fb135ea +0 -0
  191. data/spec/dummy/tmp/cache/assets/development/sprockets/a0edbc1dad95cc84f40d966fdf24377e +0 -0
  192. data/spec/dummy/tmp/cache/assets/development/sprockets/a259c79ff690848e93962f587da8f2ac +0 -0
  193. data/spec/dummy/tmp/cache/assets/development/sprockets/a26dcd35a73dac613f3bd3b377d42893 +0 -0
  194. data/spec/dummy/tmp/cache/assets/development/sprockets/a331bfa4691369dd432154ee4b5c4893 +0 -0
  195. data/spec/dummy/tmp/cache/assets/development/sprockets/a3a3f78f8e854339e32a5ab0638abbbf +0 -0
  196. data/spec/dummy/tmp/cache/assets/development/sprockets/a3e1c65520840eb6d0ae0ec11fcfd089 +0 -0
  197. data/spec/dummy/tmp/cache/assets/development/sprockets/a55eb7433db62f7bb96ad5a1d5e76d47 +0 -0
  198. data/spec/dummy/tmp/cache/assets/development/sprockets/a6007699da6bc59ddab5019f88a59065 +0 -0
  199. data/spec/dummy/tmp/cache/assets/development/sprockets/a61539b6c3198f19f8f388ba46a854b6 +0 -0
  200. data/spec/dummy/tmp/cache/assets/development/sprockets/a84cdd7b3061cdeac330d161f046a227 +0 -0
  201. data/spec/dummy/tmp/cache/assets/development/sprockets/a85d238965fe5d50a791dc1c6ee797b4 +0 -0
  202. data/spec/dummy/tmp/cache/assets/development/sprockets/a861e5ebcc07278b62dc9b1a154767ac +0 -0
  203. data/spec/dummy/tmp/cache/assets/development/sprockets/a939ccf173a7107ea61ade2219dfd61c +0 -0
  204. data/spec/dummy/tmp/cache/assets/development/sprockets/a9d3a45f08b286a7fb1127e534902b83 +0 -0
  205. data/spec/dummy/tmp/cache/assets/development/sprockets/aa83d6dfd86764aa8d69489a3264670d +0 -0
  206. data/spec/dummy/tmp/cache/assets/development/sprockets/aa8e08da5a759df504329ac665668cfe +0 -0
  207. data/spec/dummy/tmp/cache/assets/development/sprockets/aac72c81c4f00133234e7d1bb46d7925 +0 -0
  208. data/spec/dummy/tmp/cache/assets/development/sprockets/ab4a5456ce4a26ea6ccfc7162782762d +0 -0
  209. data/spec/dummy/tmp/cache/assets/development/sprockets/aba0c31d127bd18cf814b0ff829fa269 +0 -0
  210. data/spec/dummy/tmp/cache/assets/development/sprockets/ac0e6a1f5b87c2966f07864c89c0acc3 +0 -0
  211. data/spec/dummy/tmp/cache/assets/development/sprockets/aecccc74b2c5a692cc4a111266c21333 +0 -0
  212. data/spec/dummy/tmp/cache/assets/development/sprockets/af3bf8706967bab4d4f51779183f4344 +0 -0
  213. data/spec/dummy/tmp/cache/assets/development/sprockets/afa2f142e7bd81eac463da4fbe831498 +0 -0
  214. data/spec/dummy/tmp/cache/assets/development/sprockets/b08e1c0e374910078f89f1167190948b +0 -0
  215. data/spec/dummy/tmp/cache/assets/development/sprockets/b09e6678212250cb40b072b3161a72ff +0 -0
  216. data/spec/dummy/tmp/cache/assets/development/sprockets/b0bcbac4a093728722781997d798b882 +0 -0
  217. data/spec/dummy/tmp/cache/assets/development/sprockets/b0ce289a63f04d7c54d28cdfad9604de +0 -0
  218. data/spec/dummy/tmp/cache/assets/development/sprockets/b0d6ff4608e402650ca685bc013d5d0a +0 -0
  219. data/spec/dummy/tmp/cache/assets/development/sprockets/b14d197893a2562569404cd1e67a9426 +0 -0
  220. data/spec/dummy/tmp/cache/assets/development/sprockets/b1ced1471404d144869187ef589b8a77 +0 -0
  221. data/spec/dummy/tmp/cache/assets/development/sprockets/b22235f66fcf877116e5d908e8f72344 +0 -0
  222. data/spec/dummy/tmp/cache/assets/development/sprockets/b39aae3be4af2ea0846f7b7065ec6aed +0 -0
  223. data/spec/dummy/tmp/cache/assets/development/sprockets/b3bbb4709b3343a2e1f6fe2e4ad2e1ac +0 -0
  224. data/spec/dummy/tmp/cache/assets/development/sprockets/b4288860ba2256da39753a5e79904da2 +0 -0
  225. data/spec/dummy/tmp/cache/assets/development/sprockets/b42bf05ee0e89dcf7cb127f4d4a28f98 +0 -0
  226. data/spec/dummy/tmp/cache/assets/development/sprockets/b5db5427cdef8d152ae598d461178026 +0 -0
  227. data/spec/dummy/tmp/cache/assets/development/sprockets/b5f026717e0a827d4c73b953fddd57d8 +0 -0
  228. data/spec/dummy/tmp/cache/assets/development/sprockets/b61acbaee87426b4a215a2167cbebfc4 +0 -0
  229. data/spec/dummy/tmp/cache/assets/development/sprockets/b61f4c9e983288cc4474e15a4f8a347e +0 -0
  230. data/spec/dummy/tmp/cache/assets/development/sprockets/b81f43a01d9f68f845ad3c812d275c2e +0 -0
  231. data/spec/dummy/tmp/cache/assets/development/sprockets/b8479c03b63428b97c95ecc6e17323fe +0 -0
  232. data/spec/dummy/tmp/cache/assets/development/sprockets/b91564453cd7ec0a86c754d5158b6575 +0 -0
  233. data/spec/dummy/tmp/cache/assets/development/sprockets/ba64f0be716eb9c4b766f645a2345828 +0 -0
  234. data/spec/dummy/tmp/cache/assets/development/sprockets/bade9bfde878286f65c92ef261ac8fe3 +0 -0
  235. data/spec/dummy/tmp/cache/assets/development/sprockets/bc8018050fe1f25e9a84238d17decf3e +0 -0
  236. data/spec/dummy/tmp/cache/assets/development/sprockets/bd8063fecf2cd295e2b22705307779de +0 -0
  237. data/spec/dummy/tmp/cache/assets/development/sprockets/bed31f39e89681d79fe30e029aad3f58 +0 -0
  238. data/spec/dummy/tmp/cache/assets/development/sprockets/bf0218f8ad37b2633dadec0a06d10ca8 +0 -0
  239. data/spec/dummy/tmp/cache/assets/development/sprockets/c1d5b8783261726af51242f75d0034ef +0 -0
  240. data/spec/dummy/tmp/cache/assets/development/sprockets/c35251b000451b1b9f7274e0ae471704 +0 -0
  241. data/spec/dummy/tmp/cache/assets/development/sprockets/c39062f6a04c41168a923ea22d701a5a +0 -0
  242. data/spec/dummy/tmp/cache/assets/development/sprockets/c3e3f451f120a1362ffcccab302f1465 +0 -0
  243. data/spec/dummy/tmp/cache/assets/development/sprockets/c42b5b47b2b06af9c22c2bfd46d85170 +0 -0
  244. data/spec/dummy/tmp/cache/assets/development/sprockets/c43b7d48dcacb4c5f7fadfb5da249630 +0 -0
  245. data/spec/dummy/tmp/cache/assets/development/sprockets/c45264229ed7ce7be9c2a2e67b21ca00 +0 -0
  246. data/spec/dummy/tmp/cache/assets/development/sprockets/c4c3d076ac3be83dd6e799a0b8548a0f +0 -0
  247. data/spec/dummy/tmp/cache/assets/development/sprockets/c535e640eb483b962af9a2ef6db4ebf5 +0 -0
  248. data/spec/dummy/tmp/cache/assets/development/sprockets/c55e2bbc3d3c5566893be021ec1c4ab7 +0 -0
  249. data/spec/dummy/tmp/cache/assets/development/sprockets/c5c1585d4d511a81d6a5a6e691bc60af +0 -0
  250. data/spec/dummy/tmp/cache/assets/development/sprockets/c68f1c51bdf91793a0bbff4465174a47 +0 -0
  251. data/spec/dummy/tmp/cache/assets/development/sprockets/c6b956a670b41d8849fdaf0d66a33c8d +0 -0
  252. data/spec/dummy/tmp/cache/assets/development/sprockets/c6f338252e6fde5de124af9cbb5d8480 +0 -0
  253. data/spec/dummy/tmp/cache/assets/development/sprockets/c82fc1f02530a001e4d74045294ea16c +0 -0
  254. data/spec/dummy/tmp/cache/assets/development/sprockets/c84476f833d6035bcbe3fccc3d5fb79a +0 -0
  255. data/spec/dummy/tmp/cache/assets/development/sprockets/c8d04da57c10081fada8edf4a2b27ea9 +0 -0
  256. data/spec/dummy/tmp/cache/assets/development/sprockets/ca442e1a00de2d188585ae28fd7a4479 +0 -0
  257. data/spec/dummy/tmp/cache/assets/development/sprockets/cb05c62f9bde87615d74732a1475ba9d +0 -0
  258. data/spec/dummy/tmp/cache/assets/development/sprockets/cb476833cd1a806e251da407a58d9520 +0 -0
  259. data/spec/dummy/tmp/cache/assets/development/sprockets/cd7d9486b010a3ecb202e59044fe6bba +0 -0
  260. data/spec/dummy/tmp/cache/assets/development/sprockets/cf1bb0eb567af64974fd1335e73ea7e2 +0 -0
  261. data/spec/dummy/tmp/cache/assets/development/sprockets/cf34626c45538b36718fd50fa9bcb2e6 +0 -0
  262. data/spec/dummy/tmp/cache/assets/development/sprockets/cf93444cd435bf18c63fb2d3805e7937 +0 -0
  263. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  264. data/spec/dummy/tmp/cache/assets/development/sprockets/d1cbf6c90d6358cf08bdb8c27ed2ec09 +0 -0
  265. data/spec/dummy/tmp/cache/assets/development/sprockets/d27d4e6bd84d0108fc54a21959181335 +0 -0
  266. data/spec/dummy/tmp/cache/assets/development/sprockets/d314159e58c892b5eb193898a2d2d858 +0 -0
  267. data/spec/dummy/tmp/cache/assets/development/sprockets/d3a874e84a97c21320b348d19aa1e03f +0 -0
  268. data/spec/dummy/tmp/cache/assets/development/sprockets/d59e4078332f6867cc21d12f5a61d171 +0 -0
  269. data/spec/dummy/tmp/cache/assets/development/sprockets/d5a4b074b23dceb1252a9caabc60997e +0 -0
  270. data/spec/dummy/tmp/cache/assets/development/sprockets/d729ad91c96ff3545dfae3d391e43207 +0 -0
  271. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  272. data/spec/dummy/tmp/cache/assets/development/sprockets/d88c0d3362ebdb47849b797a3ec1b355 +0 -0
  273. data/spec/dummy/tmp/cache/assets/development/sprockets/da996593aa3789391cab3d7762f13687 +0 -0
  274. data/spec/dummy/tmp/cache/assets/development/sprockets/db36a18184e5fd54e44a6eee54e01770 +0 -0
  275. data/spec/dummy/tmp/cache/assets/development/sprockets/dbb83894d774d7ca09649f3fa4a56a10 +0 -0
  276. data/spec/dummy/tmp/cache/assets/development/sprockets/dbd2d94dbde49512102903953f4ac687 +0 -0
  277. data/spec/dummy/tmp/cache/assets/development/sprockets/dc146f8d1ff283ff045000f8349e3942 +0 -0
  278. data/spec/dummy/tmp/cache/assets/development/sprockets/dc93959c03eab404fae9175d3db1fa70 +0 -0
  279. data/spec/dummy/tmp/cache/assets/development/sprockets/dcabbbfdc4aa2d7b89e949c691cdc823 +0 -0
  280. data/spec/dummy/tmp/cache/assets/development/sprockets/dccdaf1023e5acfe8b50bc6758feb969 +0 -0
  281. data/spec/dummy/tmp/cache/assets/development/sprockets/dce67637c5015fb918e48897a4e6c96a +0 -0
  282. data/spec/dummy/tmp/cache/assets/development/sprockets/ddacb0da48b291954237b0c87d0f7abf +0 -0
  283. data/spec/dummy/tmp/cache/assets/development/sprockets/de3a671b026f4d842a94fe6babafc7ad +0 -0
  284. data/spec/dummy/tmp/cache/assets/development/sprockets/de4fdc4d1f700596d5f2ce7077fbc32e +0 -0
  285. data/spec/dummy/tmp/cache/assets/development/sprockets/df7e1e4d508705c77a96e8deb9d8cf4a +0 -0
  286. data/spec/dummy/tmp/cache/assets/development/sprockets/e058019b4b57023b96e2bacd9b872f6d +0 -0
  287. data/spec/dummy/tmp/cache/assets/development/sprockets/e128312dd259094d00196a3f02f41819 +0 -0
  288. data/spec/dummy/tmp/cache/assets/development/sprockets/e17667e7004e5cfc7f733b8762f47c3f +0 -0
  289. data/spec/dummy/tmp/cache/assets/development/sprockets/e1ee9d32c19869c2b1de3bed4eadc635 +0 -0
  290. data/spec/dummy/tmp/cache/assets/development/sprockets/e2d34e55c19309ae4d1b8628d38514c6 +0 -0
  291. data/spec/dummy/tmp/cache/assets/development/sprockets/e52bf847776498593423b635698c989c +0 -0
  292. data/spec/dummy/tmp/cache/assets/development/sprockets/e5b2af9eb2163eb30d5d1793e36971ea +0 -0
  293. data/spec/dummy/tmp/cache/assets/development/sprockets/e6d5c0cdc7e54ac96c2029818114ddb2 +0 -0
  294. data/spec/dummy/tmp/cache/assets/development/sprockets/e88f434eb6de6ae8e1c76ce83bd239da +0 -0
  295. data/spec/dummy/tmp/cache/assets/development/sprockets/e9650ee4408d83ea6d57b8c97535ce5f +0 -0
  296. data/spec/dummy/tmp/cache/assets/development/sprockets/e9d3b4c4c90f3be7d3d0abf681e6beb5 +0 -0
  297. data/spec/dummy/tmp/cache/assets/development/sprockets/eb50c3bd1d2a096785ed48ba31b74c4c +0 -0
  298. data/spec/dummy/tmp/cache/assets/development/sprockets/ebb4320b249107dd538d8c5fce819156 +0 -0
  299. data/spec/dummy/tmp/cache/assets/development/sprockets/ed1289bfd5270a38bd9adfcb8d0627c8 +0 -0
  300. data/spec/dummy/tmp/cache/assets/development/sprockets/edd41e775e8d24b1ecb4c02101d003c2 +0 -0
  301. data/spec/dummy/tmp/cache/assets/development/sprockets/ee0b5978881a6a496f615b7fa30f545a +0 -0
  302. data/spec/dummy/tmp/cache/assets/development/sprockets/ee6531726dfe6592fa84b42a420b6acd +0 -0
  303. data/spec/dummy/tmp/cache/assets/development/sprockets/f03d611409c3b2c45d75f97158197ee0 +0 -0
  304. data/spec/dummy/tmp/cache/assets/development/sprockets/f0fcd9c615efeee2f78b2f63fffe3ee9 +0 -0
  305. data/spec/dummy/tmp/cache/assets/development/sprockets/f182d38353047eae18909cbd48ed14f9 +0 -0
  306. data/spec/dummy/tmp/cache/assets/development/sprockets/f3766c14dea5591a30012a6a277df404 +0 -0
  307. data/spec/dummy/tmp/cache/assets/development/sprockets/f45cf956be156f4af2c09a24d3eeacc6 +0 -0
  308. data/spec/dummy/tmp/cache/assets/development/sprockets/f4ddcae783285dd8fc1d36e118c8cb7d +0 -0
  309. data/spec/dummy/tmp/cache/assets/development/sprockets/f6c8347aff37a4784ea82069ba176f5f +0 -0
  310. data/spec/dummy/tmp/cache/assets/development/sprockets/f74b3c294b6adddd7edb69ca36a17c72 +0 -0
  311. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  312. data/spec/dummy/tmp/cache/assets/development/sprockets/f896d4e2d77d23813547f069efae9995 +0 -0
  313. data/spec/dummy/tmp/cache/assets/development/sprockets/fa8643622dfe174cfaada5b55fefb926 +0 -0
  314. data/spec/dummy/tmp/cache/assets/development/sprockets/fb978620720358c7cca722496182fe52 +0 -0
  315. data/spec/dummy/tmp/cache/assets/development/sprockets/fca89522784c8592001dc314a2361344 +0 -0
  316. data/spec/dummy/tmp/cache/assets/development/sprockets/fcda547950e2d87a356e6450970d4d8a +0 -0
  317. data/spec/dummy/tmp/cache/assets/development/sprockets/fd147c53711773ad70daed13844ec1a4 +0 -0
  318. data/spec/dummy/tmp/cache/assets/development/sprockets/feddce8a241201fb35b4f171a77caa8a +0 -0
  319. data/spec/dummy/tmp/cache/assets/development/sprockets/fef07c3c165353f861564ede180350a4 +0 -0
  320. data/spec/dummy/tmp/cache/assets/test/sprockets/002047c2c82601407c25cd51a2209152 +0 -0
  321. data/spec/dummy/tmp/cache/assets/test/sprockets/0252818b90e0c222ecc1754584406b6f +0 -0
  322. data/spec/dummy/tmp/cache/assets/test/sprockets/03f10562155446429bb36992a0b92e3a +0 -0
  323. data/spec/dummy/tmp/cache/assets/test/sprockets/04414052cc366a532ec99b91c871a03c +0 -0
  324. data/spec/dummy/tmp/cache/assets/test/sprockets/057faeb3fad4dc36d3d7d0b8bb04325a +0 -0
  325. data/spec/dummy/tmp/cache/assets/test/sprockets/0701319e027b68d87b4d5727aa571973 +0 -0
  326. data/spec/dummy/tmp/cache/assets/test/sprockets/0919a8182dea7bbb570c08e2c307f288 +0 -0
  327. data/spec/dummy/tmp/cache/assets/test/sprockets/0c418a7e3c6101ef6e3c008f3e550abe +0 -0
  328. data/spec/dummy/tmp/cache/assets/test/sprockets/0cf09b6bd4058afb7797d332f36bdd68 +0 -0
  329. data/spec/dummy/tmp/cache/assets/test/sprockets/0ea4d583ba95e0c1eb3b926932571034 +0 -0
  330. data/spec/dummy/tmp/cache/assets/test/sprockets/0f4534d531ba963bc5bfe31fe1e440e0 +0 -0
  331. data/spec/dummy/tmp/cache/assets/test/sprockets/10c2b2e71e26d6656bebe9a27a770898 +0 -0
  332. data/spec/dummy/tmp/cache/assets/test/sprockets/180048c037c7224ef7601fc6875d3a43 +0 -0
  333. data/spec/dummy/tmp/cache/assets/test/sprockets/1bf0946089435ce76a87bd41668373c2 +0 -0
  334. data/spec/dummy/tmp/cache/assets/test/sprockets/1c618f3d751d9ae8fa4c9ea3551fb1f9 +0 -0
  335. data/spec/dummy/tmp/cache/assets/test/sprockets/1e644a2769d2dd110598326a14417284 +0 -0
  336. data/spec/dummy/tmp/cache/assets/test/sprockets/1e96fab65eff8789cd8c76ffadf40814 +0 -0
  337. data/spec/dummy/tmp/cache/assets/test/sprockets/20a218b05c2726d14bd025c36ba31ddd +0 -0
  338. data/spec/dummy/tmp/cache/assets/test/sprockets/224cf987cad00c39ae3d39b971f8109b +0 -0
  339. data/spec/dummy/tmp/cache/assets/test/sprockets/22948c5cb4a59a4c252888f75cdf387a +0 -0
  340. data/spec/dummy/tmp/cache/assets/test/sprockets/22a52b924d1607de75741cca2b5b4100 +0 -0
  341. data/spec/dummy/tmp/cache/assets/test/sprockets/22e866ad99949e0e85383cb83ec9a880 +0 -0
  342. data/spec/dummy/tmp/cache/assets/test/sprockets/2329760cfd987dc40312a49d2c974211 +0 -0
  343. data/spec/dummy/tmp/cache/assets/test/sprockets/24383c007af706866f9a978498308d01 +0 -0
  344. data/spec/dummy/tmp/cache/assets/test/sprockets/26f53f256948ecabba69abf1e1dea282 +0 -0
  345. data/spec/dummy/tmp/cache/assets/test/sprockets/2ac463f684368c0dd093fe7d5bc567bc +0 -0
  346. data/spec/dummy/tmp/cache/assets/test/sprockets/2dbcdc03180b29fc99d1659f39b78cc1 +0 -0
  347. data/spec/dummy/tmp/cache/assets/test/sprockets/2e1a77a09f7de5bce3ae91e9a65c84c1 +0 -0
  348. data/spec/dummy/tmp/cache/assets/test/sprockets/2e294fd6c56a0466193ed135f54eb355 +0 -0
  349. data/spec/dummy/tmp/cache/assets/test/sprockets/32aa9ce8b2315cc01f8a2c27374215ce +0 -0
  350. data/spec/dummy/tmp/cache/assets/test/sprockets/34a4093120a5fc0daec9697570a14cac +0 -0
  351. data/spec/dummy/tmp/cache/assets/test/sprockets/35fd8eed029678a1500c62cd3221b49f +0 -0
  352. data/spec/dummy/tmp/cache/assets/test/sprockets/372593a50247de2c5858f1202b500916 +0 -0
  353. data/spec/dummy/tmp/cache/assets/test/sprockets/3902c2d919f5f30ddf1b8401aa626507 +0 -0
  354. data/spec/dummy/tmp/cache/assets/test/sprockets/39657549f1ee3a7107d451261ffb466d +0 -0
  355. data/spec/dummy/tmp/cache/assets/test/sprockets/39bf03b4ccf51b4eafd3fa520c741ede +0 -0
  356. data/spec/dummy/tmp/cache/assets/test/sprockets/3bd0f73e61519054c0590a021cc460e3 +0 -0
  357. data/spec/dummy/tmp/cache/assets/test/sprockets/3c7ac679f8c2cf31dec4ed6ee8064ece +0 -0
  358. data/spec/dummy/tmp/cache/assets/test/sprockets/3de477330a6f0c70bbf58e0efd9a66af +0 -0
  359. data/spec/dummy/tmp/cache/assets/test/sprockets/3def97f4406db752008fa340f74a6e3f +0 -0
  360. data/spec/dummy/tmp/cache/assets/test/sprockets/3f2a439772fcd9cd0f434f723837ae51 +0 -0
  361. data/spec/dummy/tmp/cache/assets/test/sprockets/40c0faa33270d368c95cfa1e5e797330 +0 -0
  362. data/spec/dummy/tmp/cache/assets/test/sprockets/42b486109907c85c344e3428f5615140 +0 -0
  363. data/spec/dummy/tmp/cache/assets/test/sprockets/4403ce85c7fe84fe60d426553aa99b1f +0 -0
  364. data/spec/dummy/tmp/cache/assets/test/sprockets/45b24d3af92162c80de74b80c72716b9 +0 -0
  365. data/spec/dummy/tmp/cache/assets/test/sprockets/45fd3019e156ddaed79f09cb426c74e0 +0 -0
  366. data/spec/dummy/tmp/cache/assets/test/sprockets/46b306efbef22611d63b16f70b1dfb92 +0 -0
  367. data/spec/dummy/tmp/cache/assets/test/sprockets/47a80d133284fdf4f9f0c0ac4a1ac041 +0 -0
  368. data/spec/dummy/tmp/cache/assets/test/sprockets/49b5803aaa253c1ffa5214311973e684 +0 -0
  369. data/spec/dummy/tmp/cache/assets/test/sprockets/4af17d268e2ffe72af8a78b78811f666 +0 -0
  370. data/spec/dummy/tmp/cache/assets/test/sprockets/4dd3fce32a54a0f8fb029c30f41d3487 +0 -0
  371. data/spec/dummy/tmp/cache/assets/test/sprockets/4ddf15b55b63cc061b47598887250483 +0 -0
  372. data/spec/dummy/tmp/cache/assets/test/sprockets/510692add38624ac80a87b191683d62f +0 -0
  373. data/spec/dummy/tmp/cache/assets/test/sprockets/52e940c5c1d8089bcdf984d4d27c5520 +0 -0
  374. data/spec/dummy/tmp/cache/assets/test/sprockets/536c10ae35b4049d46807a1bb3c0d960 +0 -0
  375. data/spec/dummy/tmp/cache/assets/test/sprockets/53e9dbf9ed4c2b1ff0c2a9cfc55ad6ed +0 -0
  376. data/spec/dummy/tmp/cache/assets/test/sprockets/555693fc60a32a02e49777fdf902626e +0 -0
  377. data/spec/dummy/tmp/cache/assets/test/sprockets/5768e2da329c68c958acde5d26124de0 +0 -0
  378. data/spec/dummy/tmp/cache/assets/test/sprockets/57e8e5954196bd14468ff5db3ae99cd0 +0 -0
  379. data/spec/dummy/tmp/cache/assets/test/sprockets/586ce8fe4b79a57617fc2fb5b0a61dfe +0 -0
  380. data/spec/dummy/tmp/cache/assets/test/sprockets/5ab7f24aa3e6b2b56afab2d03e43c8b9 +0 -0
  381. data/spec/dummy/tmp/cache/assets/test/sprockets/5bb934dcd4ec1050b1f031f8ab61bdaa +0 -0
  382. data/spec/dummy/tmp/cache/assets/test/sprockets/63a72244bdf73521f399e501b341d16d +0 -0
  383. data/spec/dummy/tmp/cache/assets/test/sprockets/6425806ac0cdde2e39de3acf01fc3baf +0 -0
  384. data/spec/dummy/tmp/cache/assets/test/sprockets/65718e7a65fd89199b02b7cd38b90be9 +0 -0
  385. data/spec/dummy/tmp/cache/assets/test/sprockets/662e0c617259b839657d51e2c0ba6c4f +0 -0
  386. data/spec/dummy/tmp/cache/assets/test/sprockets/69a78967e103c4b02122552a2f3b9d11 +0 -0
  387. data/spec/dummy/tmp/cache/assets/test/sprockets/69f23513c7a86a829d1973fbdb21405b +0 -0
  388. data/spec/dummy/tmp/cache/assets/test/sprockets/6a27917dfb0d4a194b15c7fe33e8a2fe +0 -0
  389. data/spec/dummy/tmp/cache/assets/test/sprockets/6b4a271890f37338b02a9febc97c3daf +0 -0
  390. data/spec/dummy/tmp/cache/assets/test/sprockets/6cb768545ee34f1d849ccf3caf520913 +0 -0
  391. data/spec/dummy/tmp/cache/assets/test/sprockets/6df973778134c66fb80ebe9bc7f55527 +0 -0
  392. data/spec/dummy/tmp/cache/assets/test/sprockets/707d14985ad94cdf9b5480953a10faf5 +0 -0
  393. data/spec/dummy/tmp/cache/assets/test/sprockets/7191d39b2ec3b192c2f1c94eb2a71d46 +0 -0
  394. data/spec/dummy/tmp/cache/assets/test/sprockets/75df7dd0ef873271ce1062a2d14b45f1 +0 -0
  395. data/spec/dummy/tmp/cache/assets/test/sprockets/76688686fe11abed207295bdab7dbb1e +0 -0
  396. data/spec/dummy/tmp/cache/assets/test/sprockets/7936710203d4d28155f744eb687dc125 +0 -0
  397. data/spec/dummy/tmp/cache/assets/test/sprockets/7baa2e01021ef9bd8204236fee88d289 +0 -0
  398. data/spec/dummy/tmp/cache/assets/test/sprockets/7baa8d092b9d409d47643521a8b55e62 +0 -0
  399. data/spec/dummy/tmp/cache/assets/test/sprockets/7c297bdb92e1b06ff2d288b928c49ff9 +0 -0
  400. data/spec/dummy/tmp/cache/assets/test/sprockets/7d7522df5cd3ba1f22c81c653dd5d651 +0 -0
  401. data/spec/dummy/tmp/cache/assets/test/sprockets/8259f3fc885403b4eea8dd12964c2ffc +0 -0
  402. data/spec/dummy/tmp/cache/assets/test/sprockets/828a391376a8e4e0cb3ed1f676ec060a +0 -0
  403. data/spec/dummy/tmp/cache/assets/test/sprockets/83ce7d021f07063451a06f6d60175f8a +0 -0
  404. data/spec/dummy/tmp/cache/assets/test/sprockets/850d92cf676cc2c2c662ee8dc328f82c +0 -0
  405. data/spec/dummy/tmp/cache/assets/test/sprockets/8969cef7fbf7b14282b11c62b32919c0 +0 -0
  406. data/spec/dummy/tmp/cache/assets/test/sprockets/8a7a27749f2f76175627ed4084e5ae1b +0 -0
  407. data/spec/dummy/tmp/cache/assets/test/sprockets/8c382a2a9aab338b046cc3fe6d47f435 +0 -0
  408. data/spec/dummy/tmp/cache/assets/test/sprockets/8c5ffb42727c5fc7794ac3c608b17c2e +0 -0
  409. data/spec/dummy/tmp/cache/assets/test/sprockets/8ea4f850c201e8912b42b4bc3e997211 +0 -0
  410. data/spec/dummy/tmp/cache/assets/test/sprockets/8fec68cfa10ef4643a92927e94d7a88c +0 -0
  411. data/spec/dummy/tmp/cache/assets/test/sprockets/90fc5652fe6161075680fcd4cd0c45d2 +0 -0
  412. data/spec/dummy/tmp/cache/assets/test/sprockets/9128c86b1a4a983b1e3cc44b2ab4a1c0 +0 -0
  413. data/spec/dummy/tmp/cache/assets/test/sprockets/9157a652853bd3cea861bd767fed0b08 +0 -0
  414. data/spec/dummy/tmp/cache/assets/test/sprockets/925684e5a9f1e78f793a879d3702e730 +0 -0
  415. data/spec/dummy/tmp/cache/assets/test/sprockets/93aa3074f1cd1a511a73c50254d6673b +0 -0
  416. data/spec/dummy/tmp/cache/assets/test/sprockets/942ea398c220dfe3c4b4aab028e0bb02 +0 -0
  417. data/spec/dummy/tmp/cache/assets/test/sprockets/973acbad728af4334804dd0454045384 +0 -0
  418. data/spec/dummy/tmp/cache/assets/test/sprockets/97f59d5e32c82d6c6f80530dd59eb1e5 +0 -0
  419. data/spec/dummy/tmp/cache/assets/test/sprockets/9b410af44867a4979d1aea0ab84ed24b +0 -0
  420. data/spec/dummy/tmp/cache/assets/test/sprockets/9b6859af21d7d645ed13281e6419d6dc +0 -0
  421. data/spec/dummy/tmp/cache/assets/test/sprockets/9bc806b242d3b60b7a2e015640a87077 +0 -0
  422. data/spec/dummy/tmp/cache/assets/test/sprockets/9c4623e57da4d15adb71bd1b04188b1d +0 -0
  423. data/spec/dummy/tmp/cache/assets/test/sprockets/9c55f3eca763e68ded31023b7f66543a +0 -0
  424. data/spec/dummy/tmp/cache/assets/test/sprockets/9d4198672849d9edf7212a7e5b24345c +0 -0
  425. data/spec/dummy/tmp/cache/assets/test/sprockets/9fdb8e951f975dae3836c2ccf0f65a34 +0 -0
  426. data/spec/dummy/tmp/cache/assets/test/sprockets/a259c79ff690848e93962f587da8f2ac +0 -0
  427. data/spec/dummy/tmp/cache/assets/test/sprockets/a26dcd35a73dac613f3bd3b377d42893 +0 -0
  428. data/spec/dummy/tmp/cache/assets/test/sprockets/a3a3f78f8e854339e32a5ab0638abbbf +0 -0
  429. data/spec/dummy/tmp/cache/assets/test/sprockets/a3e1c65520840eb6d0ae0ec11fcfd089 +0 -0
  430. data/spec/dummy/tmp/cache/assets/test/sprockets/a6007699da6bc59ddab5019f88a59065 +0 -0
  431. data/spec/dummy/tmp/cache/assets/test/sprockets/a61539b6c3198f19f8f388ba46a854b6 +0 -0
  432. data/spec/dummy/tmp/cache/assets/test/sprockets/a84cdd7b3061cdeac330d161f046a227 +0 -0
  433. data/spec/dummy/tmp/cache/assets/test/sprockets/a85d238965fe5d50a791dc1c6ee797b4 +0 -0
  434. data/spec/dummy/tmp/cache/assets/test/sprockets/a9d3a45f08b286a7fb1127e534902b83 +0 -0
  435. data/spec/dummy/tmp/cache/assets/test/sprockets/aa8e08da5a759df504329ac665668cfe +0 -0
  436. data/spec/dummy/tmp/cache/assets/test/sprockets/aac72c81c4f00133234e7d1bb46d7925 +0 -0
  437. data/spec/dummy/tmp/cache/assets/test/sprockets/ac0e6a1f5b87c2966f07864c89c0acc3 +0 -0
  438. data/spec/dummy/tmp/cache/assets/test/sprockets/aecccc74b2c5a692cc4a111266c21333 +0 -0
  439. data/spec/dummy/tmp/cache/assets/test/sprockets/afa2f142e7bd81eac463da4fbe831498 +0 -0
  440. data/spec/dummy/tmp/cache/assets/test/sprockets/b08e1c0e374910078f89f1167190948b +0 -0
  441. data/spec/dummy/tmp/cache/assets/test/sprockets/b0bcbac4a093728722781997d798b882 +0 -0
  442. data/spec/dummy/tmp/cache/assets/test/sprockets/b0d6ff4608e402650ca685bc013d5d0a +0 -0
  443. data/spec/dummy/tmp/cache/assets/test/sprockets/b14d197893a2562569404cd1e67a9426 +0 -0
  444. data/spec/dummy/tmp/cache/assets/test/sprockets/b1ced1471404d144869187ef589b8a77 +0 -0
  445. data/spec/dummy/tmp/cache/assets/test/sprockets/b22235f66fcf877116e5d908e8f72344 +0 -0
  446. data/spec/dummy/tmp/cache/assets/test/sprockets/b4288860ba2256da39753a5e79904da2 +0 -0
  447. data/spec/dummy/tmp/cache/assets/test/sprockets/b42bf05ee0e89dcf7cb127f4d4a28f98 +0 -0
  448. data/spec/dummy/tmp/cache/assets/test/sprockets/b5db5427cdef8d152ae598d461178026 +0 -0
  449. data/spec/dummy/tmp/cache/assets/test/sprockets/b5f026717e0a827d4c73b953fddd57d8 +0 -0
  450. data/spec/dummy/tmp/cache/assets/test/sprockets/b61acbaee87426b4a215a2167cbebfc4 +0 -0
  451. data/spec/dummy/tmp/cache/assets/test/sprockets/b91564453cd7ec0a86c754d5158b6575 +0 -0
  452. data/spec/dummy/tmp/cache/assets/test/sprockets/bade9bfde878286f65c92ef261ac8fe3 +0 -0
  453. data/spec/dummy/tmp/cache/assets/test/sprockets/bd8063fecf2cd295e2b22705307779de +0 -0
  454. data/spec/dummy/tmp/cache/assets/test/sprockets/bed31f39e89681d79fe30e029aad3f58 +0 -0
  455. data/spec/dummy/tmp/cache/assets/test/sprockets/bf0218f8ad37b2633dadec0a06d10ca8 +0 -0
  456. data/spec/dummy/tmp/cache/assets/test/sprockets/c1d5b8783261726af51242f75d0034ef +0 -0
  457. data/spec/dummy/tmp/cache/assets/test/sprockets/c35251b000451b1b9f7274e0ae471704 +0 -0
  458. data/spec/dummy/tmp/cache/assets/test/sprockets/c39062f6a04c41168a923ea22d701a5a +0 -0
  459. data/spec/dummy/tmp/cache/assets/test/sprockets/c42b5b47b2b06af9c22c2bfd46d85170 +0 -0
  460. data/spec/dummy/tmp/cache/assets/test/sprockets/c45264229ed7ce7be9c2a2e67b21ca00 +0 -0
  461. data/spec/dummy/tmp/cache/assets/test/sprockets/c4c3d076ac3be83dd6e799a0b8548a0f +0 -0
  462. data/spec/dummy/tmp/cache/assets/test/sprockets/c535e640eb483b962af9a2ef6db4ebf5 +0 -0
  463. data/spec/dummy/tmp/cache/assets/test/sprockets/c55e2bbc3d3c5566893be021ec1c4ab7 +0 -0
  464. data/spec/dummy/tmp/cache/assets/test/sprockets/c5c1585d4d511a81d6a5a6e691bc60af +0 -0
  465. data/spec/dummy/tmp/cache/assets/test/sprockets/c6b956a670b41d8849fdaf0d66a33c8d +0 -0
  466. data/spec/dummy/tmp/cache/assets/test/sprockets/c6f338252e6fde5de124af9cbb5d8480 +0 -0
  467. data/spec/dummy/tmp/cache/assets/test/sprockets/c84476f833d6035bcbe3fccc3d5fb79a +0 -0
  468. data/spec/dummy/tmp/cache/assets/test/sprockets/cb476833cd1a806e251da407a58d9520 +0 -0
  469. data/spec/dummy/tmp/cache/assets/test/sprockets/cf1bb0eb567af64974fd1335e73ea7e2 +0 -0
  470. data/spec/dummy/tmp/cache/assets/test/sprockets/cf34626c45538b36718fd50fa9bcb2e6 +0 -0
  471. data/spec/dummy/tmp/cache/assets/test/sprockets/d1cbf6c90d6358cf08bdb8c27ed2ec09 +0 -0
  472. data/spec/dummy/tmp/cache/assets/test/sprockets/d27d4e6bd84d0108fc54a21959181335 +0 -0
  473. data/spec/dummy/tmp/cache/assets/test/sprockets/d314159e58c892b5eb193898a2d2d858 +0 -0
  474. data/spec/dummy/tmp/cache/assets/test/sprockets/d59e4078332f6867cc21d12f5a61d171 +0 -0
  475. data/spec/dummy/tmp/cache/assets/test/sprockets/d5a4b074b23dceb1252a9caabc60997e +0 -0
  476. data/spec/dummy/tmp/cache/assets/test/sprockets/d729ad91c96ff3545dfae3d391e43207 +0 -0
  477. data/spec/dummy/tmp/cache/assets/test/sprockets/d88c0d3362ebdb47849b797a3ec1b355 +0 -0
  478. data/spec/dummy/tmp/cache/assets/test/sprockets/da996593aa3789391cab3d7762f13687 +0 -0
  479. data/spec/dummy/tmp/cache/assets/test/sprockets/dc146f8d1ff283ff045000f8349e3942 +0 -0
  480. data/spec/dummy/tmp/cache/assets/test/sprockets/dccdaf1023e5acfe8b50bc6758feb969 +0 -0
  481. data/spec/dummy/tmp/cache/assets/test/sprockets/dce67637c5015fb918e48897a4e6c96a +0 -0
  482. data/spec/dummy/tmp/cache/assets/test/sprockets/ddacb0da48b291954237b0c87d0f7abf +0 -0
  483. data/spec/dummy/tmp/cache/assets/test/sprockets/de4fdc4d1f700596d5f2ce7077fbc32e +0 -0
  484. data/spec/dummy/tmp/cache/assets/test/sprockets/e058019b4b57023b96e2bacd9b872f6d +0 -0
  485. data/spec/dummy/tmp/cache/assets/test/sprockets/e128312dd259094d00196a3f02f41819 +0 -0
  486. data/spec/dummy/tmp/cache/assets/test/sprockets/e17667e7004e5cfc7f733b8762f47c3f +0 -0
  487. data/spec/dummy/tmp/cache/assets/test/sprockets/e2d34e55c19309ae4d1b8628d38514c6 +0 -0
  488. data/spec/dummy/tmp/cache/assets/test/sprockets/e52bf847776498593423b635698c989c +0 -0
  489. data/spec/dummy/tmp/cache/assets/test/sprockets/e5b2af9eb2163eb30d5d1793e36971ea +0 -0
  490. data/spec/dummy/tmp/cache/assets/test/sprockets/e6d5c0cdc7e54ac96c2029818114ddb2 +0 -0
  491. data/spec/dummy/tmp/cache/assets/test/sprockets/e9650ee4408d83ea6d57b8c97535ce5f +0 -0
  492. data/spec/dummy/tmp/cache/assets/test/sprockets/eb50c3bd1d2a096785ed48ba31b74c4c +0 -0
  493. data/spec/dummy/tmp/cache/assets/test/sprockets/ebb4320b249107dd538d8c5fce819156 +0 -0
  494. data/spec/dummy/tmp/cache/assets/test/sprockets/ed1289bfd5270a38bd9adfcb8d0627c8 +0 -0
  495. data/spec/dummy/tmp/cache/assets/test/sprockets/edd41e775e8d24b1ecb4c02101d003c2 +0 -0
  496. data/spec/dummy/tmp/cache/assets/test/sprockets/ee0b5978881a6a496f615b7fa30f545a +0 -0
  497. data/spec/dummy/tmp/cache/assets/test/sprockets/ee6531726dfe6592fa84b42a420b6acd +0 -0
  498. data/spec/dummy/tmp/cache/assets/test/sprockets/f03d611409c3b2c45d75f97158197ee0 +0 -0
  499. data/spec/dummy/tmp/cache/assets/test/sprockets/f0fcd9c615efeee2f78b2f63fffe3ee9 +0 -0
  500. data/spec/dummy/tmp/cache/assets/test/sprockets/f3766c14dea5591a30012a6a277df404 +0 -0
  501. data/spec/dummy/tmp/cache/assets/test/sprockets/f6c8347aff37a4784ea82069ba176f5f +0 -0
  502. data/spec/dummy/tmp/cache/assets/test/sprockets/f74b3c294b6adddd7edb69ca36a17c72 +0 -0
  503. data/spec/dummy/tmp/cache/assets/test/sprockets/fa8643622dfe174cfaada5b55fefb926 +0 -0
  504. data/spec/dummy/tmp/cache/assets/test/sprockets/fb978620720358c7cca722496182fe52 +0 -0
  505. data/spec/dummy/tmp/cache/assets/test/sprockets/fca89522784c8592001dc314a2361344 +0 -0
  506. data/spec/dummy/tmp/cache/assets/test/sprockets/fcda547950e2d87a356e6450970d4d8a +0 -0
  507. data/spec/dummy/tmp/cache/assets/test/sprockets/fd147c53711773ad70daed13844ec1a4 +0 -0
  508. data/spec/dummy/tmp/cache/assets/test/sprockets/fef07c3c165353f861564ede180350a4 +0 -0
  509. data/spec/features/js_spec.rb +2 -2
  510. data/spec/models/adherent/member_spec.rb +25 -0
  511. data/spec/models/adherent/query_member_spec.rb +155 -0
  512. metadata +468 -46
  513. data/app/assets/stylesheets/adherent/members.css +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5db061d98a083cc706a9bfc3f7415993278e7dc1
4
- data.tar.gz: 923387c4520c2d794bf386f4880f58343cbeb53f
3
+ metadata.gz: 127fbdd71b1bdaa6d9072a7033fe51b12509da0c
4
+ data.tar.gz: df8d29fd57d16ef6bd3a00e117d8d46f94df0052
5
5
  SHA512:
6
- metadata.gz: 2dacb0e0576b36cbc31ffa8446944be1571ef93b634d2ab87c62601e533b867b7550bdb1f69843a175d78943b0cc76672d7c3df223c408971ce873c2b8095611
7
- data.tar.gz: 1871ea355722ed68e3d33a58a89f716e1c5d6062e44774b4be25e0ffe4c1d991368d353f8062357f1a4185f575487a508e82615b94703bd101693f4074e472bd
6
+ metadata.gz: 190a65eb5593687177f11dd585704c2aa82df315664e5fa86416b60092a4ef42b0a892706cc2d97cc1c5a0818756151844f2c52b6c642342c01a0a9c3d38a967
7
+ data.tar.gz: bc51fcbe4e1deb9250cd972ae5acd3b1030cdda952b6e4c590b5bd89eda46b67669cbb6e059387d83f7765a8a3028facb55304fa8ae882d9f6f85efb18219b4d
@@ -2,5 +2,13 @@
2
2
  # pour avoir les méthodes d'authenfication proposées par l'ApplicationController
3
3
  # ainsi que la gestion des sessions et notamment la méthode find_organism
4
4
  class Adherent::ApplicationController < ApplicationController
5
+
6
+ # met en forme une date au format dd-mmm-yyyy en retirant le point
7
+ # par exemple 13-nov-2013 (et non 13-nov.-2016), ceci pour pouvoir
8
+ # facilement inclure la date dans le nom d'un fichier
9
+ def dashed_date(date)
10
+ I18n.l(date, format:'%d-%b-%Y').gsub('.', '')
11
+ end
12
+
5
13
  end
6
14
 
@@ -6,12 +6,18 @@ module Adherent
6
6
  class MembersController < ApplicationController
7
7
  # GET /members
8
8
  # GET /members.json
9
- def index
10
- @members = @organism.members
9
+ def index
10
+
11
+ @members = Adherent::QueryMember.query_members(@organism)
11
12
 
12
13
  respond_to do |format|
13
14
  format.html # index.html.erb
14
- format.json { render json: @members }
15
+ format.csv { send_data Adherent::QueryMember.to_csv(@organism),
16
+ :filename=>"#{@organism.title}-#{dashed_date(Date.today)}-Membres.csv" }
17
+
18
+ format.xls { send_data Adherent::QueryMember.to_csv(@organism),
19
+ :filename=>"#{@organism.title}-#{dashed_date(Date.today)}-Membres.xls" }
20
+ format.json { render json:@members }
15
21
  end
16
22
  end
17
23
 
@@ -22,7 +28,7 @@ module Adherent
22
28
 
23
29
  respond_to do |format|
24
30
  format.html # show.html.erb
25
- format.json { render json: @member }
31
+ format.json { render json:@member }
26
32
  end
27
33
  end
28
34
 
@@ -33,7 +39,7 @@ module Adherent
33
39
 
34
40
  respond_to do |format|
35
41
  format.html # new.html.erb
36
- format.json { render json: @member }
42
+ format.json { render json:@member }
37
43
  end
38
44
  end
39
45
 
@@ -53,7 +59,7 @@ module Adherent
53
59
  format.json { render json: @member, status: :created, location: @member }
54
60
  else
55
61
  format.html { render action: "new" }
56
- format.json { render json: @member.errors, status: :unprocessable_entity }
62
+ format.json { render json:@member.errors, status: :unprocessable_entity }
57
63
  end
58
64
  end
59
65
  end
@@ -8,10 +8,15 @@ module Adherent
8
8
  belongs_to :member
9
9
  has_many :reglements
10
10
 
11
+ # TODO changer le champ to_date en un champ until_date car crée de la
12
+ # confusion avec les méthodes to_date de Ruby
13
+
11
14
  validates :from_date, :to_date, :member_id, :amount, presence:true
12
15
  validates_numericality_of :amount, greater_than_or_equal_to: 0
13
16
  validate :chrono_order
14
17
 
18
+ # défini dans le module pick_date_extension.
19
+ # Voir les conseils et instructions de ce module
15
20
  pick_date_for :from_date, :to_date
16
21
 
17
22
  # partant d'une adhésion, retourne un hash avec les attributs correspondants à
@@ -28,16 +33,15 @@ module Adherent
28
33
  montant = amount if montant == 0
29
34
  {:from_date =>I18n.l(read_attribute(:to_date)+1),
30
35
  :to_date=>I18n.l(read_attribute(:to_date).years_since(1)),
31
- amount: montant
36
+ amount: montant
32
37
  }
33
38
  end
34
39
 
35
40
  # liste toutes les adhésions qui ne sont pas payées.
36
41
  # pour rappel un where ne fonctionne pas avec un aggrégat obligeant à utiliser la clause having
37
- # reglements_amount.to_i donne le montant des règlements enregistrés
38
- # to_i est nécessaire car le retour fait par Rails est un string
42
+ #
39
43
  scope :unpaid, -> {select('adherent_adhesions.*, sum(adherent_reglements.amount) as reglements_amount').
40
- joins('left join adherent_reglements on adherent_reglements.adhesion_id = adherent_adhesions.id').
44
+ joins('left join adherent_reglements on adherent_adhesions.id = adherent_reglements.adhesion_id').
41
45
  group('adherent_adhesions.id').
42
46
  having('adherent_adhesions.amount > 0 AND (adherent_adhesions.amount > sum(adherent_reglements.amount) OR sum(adherent_reglements.amount) IS NULL)')}
43
47
 
@@ -48,6 +52,8 @@ module Adherent
48
52
  "#{member.to_s} - #{Adherent::ApplicationController.helpers.number_to_currency(due, locale: :fr)}"
49
53
  end
50
54
 
55
+
56
+
51
57
 
52
58
 
53
59
  # indique si une adhésion a été réglée
@@ -1,10 +1,12 @@
1
+ # coding: utf-8
2
+
1
3
  module Adherent
2
4
  class Member < ActiveRecord::Base
3
5
 
4
-
6
+
5
7
  pick_date_for :birthdate
6
8
 
7
- belongs_to :organism, class_name: '::Organism'
9
+ belongs_to :organism, class_name:'::Organism'
8
10
  has_one :coord, dependent: :destroy
9
11
  has_many :adhesions, dependent: :destroy
10
12
  has_many :payments
@@ -34,6 +36,17 @@ module Adherent
34
36
  [forname, name.upcase].join(' ')
35
37
  end
36
38
 
39
+ # indique la date de fin de son adhésion actuelle.
40
+ # S'il n'y a pas d'adhésion, on prend la date de création du membre
41
+ #
42
+ # On n'a qu'un I18n::l car le to_date de last_adhesion est déja mis
43
+ # au format par le module pick_date_extension
44
+ #
45
+ def jusquau
46
+ la = last_adhesion
47
+ la ? la.to_date : I18n::l(created_at.to_date)
48
+ end
49
+
37
50
  # renvoie une nouvelle adhésion préremplie avec les éléments issus de la
38
51
  # dernière adhésion.
39
52
  # il est possible d'imposer le montant si nécessaire
@@ -48,5 +61,32 @@ module Adherent
48
61
  adhesions.new(vals)
49
62
  end
50
63
 
64
+
65
+ # Permet en une seule requête de récupérer les données de la vue index
66
+ # avec l'id, le number, name, forname, mail, tel, l'échande de l'adhésion
67
+ # (champ to_date), le montant des reglements reçus pour les adhésions de
68
+ # ce membre (champ t_reglements), le montant des adhésions de ce membre
69
+ # champ (t_adhesions)
70
+ def self.index_members
71
+ sql= <<EOF
72
+ SELECT adherent_members.id, number, name, forname, birthdate, adherent_coords.mail AS mail, adherent_coords.tel AS tel,
73
+ (SELECT to_date FROM adherent_adhesions WHERE adherent_adhesions.member_id = adherent_members.id ORDER BY to_date DESC LIMIT 1 ) AS m_to_date,
74
+ (SELECT SUM(adherent_reglements.amount) FROM adherent_reglements, adherent_adhesions WHERE adherent_reglements.adhesion_id = adherent_adhesions.id AND adherent_adhesions.member_id = adherent_members.id) AS t_reglements,
75
+ (SELECT SUM(amount) FROM adherent_adhesions WHERE adherent_adhesions.member_id = adherent_members.id) AS t_adhesions
76
+ FROM adherent_members LEFT JOIN adherent_coords ON adherent_members.id = adherent_coords.member_id;
77
+ EOF
78
+ Adherent::Member.connection.execute( sql.gsub("\n", ''))
79
+ end
80
+
81
+
82
+
83
+
84
+ protected
85
+
86
+ def last_adhesion
87
+ adhesions.order('to_date').last
88
+ end
89
+
90
+
51
91
  end
52
92
  end
@@ -0,0 +1,113 @@
1
+ require 'csv'
2
+
3
+ module Adherent
4
+ # La classe QueryMember s'appuie sur une view de SQL appelée
5
+ # adherent_query_members.
6
+ #
7
+ # Elle reprend les principaux éléments de Member (organism_id, id, name,
8
+ # forname, birthdate, et rajoute la date de la dernière adhésion (champ
9
+ # m_to_date), le montant total des adhésions dues (t_adhesions) et le montant
10
+ # total des règlements (t_reglements).
11
+ #
12
+ # Ces deux derniers champs sont utilisés pour savoir si le membre est à
13
+ # jour de ses paiements (méthode #a_jour?)
14
+ #
15
+ class QueryMember < ActiveRecord::Base
16
+
17
+
18
+
19
+ def self.columns() @columns ||= []; end
20
+
21
+ def self.column(name, sql_type = nil, default = nil, null = true)
22
+ columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
23
+ end
24
+
25
+ column :id, :integer
26
+ column :organism_id, :integer
27
+ column :number, :string
28
+ column :name, :string
29
+ column :forname, :string
30
+ column :birthdate, :date
31
+ column :m_to_date, :date
32
+ column :t_adhesions, :decimal
33
+ column :t_reglements, :decimal
34
+
35
+
36
+ # juste pour avoir la remise en forme du champ birthdate
37
+ # pour l'affichage
38
+ pick_date_for :birthdate
39
+
40
+ # booléen indiquant si l'adhérent est à jour de ces cotisations
41
+ def a_jour?
42
+ montant_du <= 0.001
43
+ end
44
+
45
+ def self.query_sql(organism)
46
+ %Q(SELECT adherent_members.id, organism_id, number, name, forname, birthdate,
47
+ adherent_coords.mail AS mail, adherent_coords.tel AS tel,
48
+ (SELECT to_date FROM adherent_adhesions
49
+ WHERE adherent_adhesions.member_id = adherent_members.id
50
+ ORDER BY to_date DESC LIMIT 1 ) AS m_to_date,
51
+ (SELECT SUM(adherent_reglements.amount) FROM adherent_reglements,
52
+ adherent_adhesions
53
+ WHERE adherent_reglements.adhesion_id = adherent_adhesions.id AND
54
+ adherent_adhesions.member_id = adherent_members.id) AS t_reglements,
55
+ (SELECT SUM(amount) FROM adherent_adhesions
56
+ WHERE adherent_adhesions.member_id = adherent_members.id) AS t_adhesions
57
+ FROM adherent_members
58
+
59
+ LEFT JOIN adherent_coords ON adherent_members.id = adherent_coords.member_id
60
+ WHERE organism_id = #{organism.id};
61
+ )
62
+ end
63
+
64
+ def self.query_members(organism)
65
+ find_by_sql(query_sql(organism))
66
+ end
67
+
68
+ # ici on aurait pu utiliser pick_date_for mais cela pose le problème
69
+ # des dates non remplies. Ce qui a son tour est gênant pour le tri dans
70
+ # les tables.
71
+ def m_to_date
72
+ td = read_attribute(:m_to_date)
73
+ td.is_a?(Date) ? (I18n::l td) : '31/12/2099'
74
+ end
75
+
76
+ # montant dû par l'adhérent pour ses adhésions
77
+ def montant_du
78
+ tadh = t_adhesions ? BigDecimal.new(t_adhesions, 2) : BigDecimal.new(0.0, 2)
79
+ treg = t_reglements ? BigDecimal.new(t_reglements, 2) : BigDecimal.new(0.0, 2)
80
+ tadh - treg
81
+ end
82
+
83
+ # edition en csv des membres d'un organisme dont l'id est
84
+ # transmis en argument
85
+ def self.to_csv(organism, options = {col_sep:"\t"})
86
+ ms = query_members(organism)
87
+ CSV.generate(options) do |csv|
88
+ csv << ['Numero', 'Nom', 'Prénom', 'Date de naissance',
89
+ 'Mail', 'Tél', 'Doit', 'Fin Adh.']
90
+ ms.each do |m|
91
+ csv << [m.number, m.name, m.forname, m.birthdate, m.mail, m.tel,
92
+ ActiveSupport::NumberHelper.number_to_rounded(m.montant_du, precision:2),
93
+ m.m_to_date]
94
+ end
95
+ end
96
+ end
97
+
98
+ # Pour avoir l'encodage Windows, voir à mettre dans un module si
99
+ # répété avec d'autres modèles
100
+ def self.to_xls(organism, options = {col_sep:"\t"})
101
+ to_csv(organism, options).encode("windows-1252")
102
+ end
103
+
104
+
105
+
106
+ protected
107
+
108
+ # forcément car basé sur une view sql
109
+ def readonly?
110
+ true
111
+ end
112
+ end
113
+ end
@@ -8,11 +8,11 @@
8
8
  my_wrapper_html:{class:'col-lg-9'},
9
9
  input_html:{value:@adhesion.from_date},
10
10
  :as=>:date_picker
11
- = f.input :to_date, wrapper_html:{class:'col-lg-3'},
11
+ = f.input :to_date,
12
12
  wrapper_html:{class:'col-lg-4'},
13
13
  my_wrapper_html:{class:'col-lg-9'},
14
14
  input_html:{value:@adhesion.to_date}, :as=>:date_picker
15
- = f.input :amount, wrapper_html:{class:'col-lg-3'},
15
+ = f.input :amount,
16
16
  wrapper_html:{class:'col-lg-4'},
17
17
  label_html:{class:'col-lg-4'},
18
18
  my_wrapper_html:{class:'col-lg-8'},
@@ -2,6 +2,8 @@
2
2
 
3
3
  <%= icon_to 'nouveau.png', new_member_path, title:'Ajouter un membre' %>
4
4
  <%= icon_to 'payment.png', payments_path, title:'Table des paiements' %>
5
+ <%= icon_to('csv.png', members_path(@organism,:format=>:csv)) %>
6
+ <%= icon_to('xls.png', members_path(@organism, :format=>:csv)) %>
5
7
  <% end -%>
6
8
 
7
9
 
@@ -13,37 +15,36 @@
13
15
  id='members' cellpadding="0" cellspacing="0" border="0">
14
16
  <thead>
15
17
  <tr>
16
-
17
18
  <th>Numero </th>
18
-
19
19
  <th><%= I18n::t('name') %></th>
20
-
21
20
  <th><%= I18n::t('forname') %></th>
22
-
23
21
  <th class='date-euro'><%= I18n::t('birthdate') %></th>
24
-
25
22
  <th><%= I18n::t('mail') %></th>
26
23
  <th><%= I18n::t('tel') %></th>
27
-
24
+ <th>Doit</th>
25
+ <th class='date-euro'>Fin Adh.</th>
28
26
  <th class='actions'>Actions</th>
29
27
 
30
28
  </tr>
31
29
  </thead>
32
30
  <tbody>
33
31
  <% @members.each do |member| %>
34
- <tr class="<%= member.unpaid_adhesions? ? 'impaye' : 'ok' %>" id="<%="member_#{member.id}"%>">
32
+ <tr id="<%="member_#{member.id}"%>">
35
33
  <td><%= member.number %></td>
36
34
  <td><%= member.name %></td>
37
35
  <td><%= member.forname %></td>
38
36
  <td><%= member.birthdate %></td>
39
- <td><%= member.coord ? member.coord.mail : '' %>
40
- <td><%= member.coord ? member.coord.tel : '' %>
41
- <td><%= icon_to 'card-address.png', member_coord_path(member), title:'Coordonnées', id:"coord_member_#{member.id}" %>
37
+ <td><%= member.mail %></td>
38
+ <td><%= member.tel %></td>
39
+ <td class="numeric"><%= number_to_currency member.montant_du %></td>
40
+ <td><%= member.m_to_date %></td>
41
+ <td>
42
+ <%= icon_to 'card-address.png', member_coord_path(member), title:'Coordonnées', id:"coord_member_#{member.id}" %>
42
43
  <%= icon_to 'bandaid.png', member_adhesions_path(member), title:'Liste des adhésions', id:"adhesion_member_#{member.id}"%>
43
-
44
- <%= icon_to 'payment.png', member_payments_path(member), title: 'Liste des paiements' , id:"payment_member_#{member.id}"%>
44
+ <%= icon_to 'payment.png', member_payments_path(member), title: 'Liste des paiements' , id:"payment_member_#{member.id}"%>
45
45
  <%= icon_to 'modifier.png', edit_member_path(member) , id:"edit_member_#{member.id}" %>
46
- <%= icon_to 'supprimer.png', member, id:"delete_member_#{member.id}", data:{:confirm => 'Etes vous sûr ?'}, :method => :delete %></td>
46
+ <%= icon_to 'supprimer.png', member_path(id:member.id), :method => :delete, data:{:confirm => 'Etes vous sûr ?'} %>
47
+ </td>
47
48
  </tr>
48
49
  <% end %>
49
50
  </tbody>
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
6
+
7
+ # Mime::Type.register "application/pdf", :pdf
8
+ Mime::Type.register_alias "application/xls", :xls
@@ -0,0 +1,23 @@
1
+ class CreateQueryMember < ActiveRecord::Migration
2
+ def up
3
+ self.connection.execute %Q(CREATE OR REPLACE VIEW adherent_query_members AS
4
+ SELECT adherent_members.id, organism_id, number, name, forname, birthdate,
5
+ adherent_coords.mail AS mail, adherent_coords.tel AS tel,
6
+ (SELECT to_date FROM adherent_adhesions
7
+ WHERE adherent_adhesions.member_id = adherent_members.id
8
+ ORDER BY to_date DESC LIMIT 1 ) AS m_to_date,
9
+ (SELECT SUM(adherent_reglements.amount) FROM adherent_reglements,
10
+ adherent_adhesions
11
+ WHERE adherent_reglements.adhesion_id = adherent_adhesions.id AND
12
+ adherent_adhesions.member_id = adherent_members.id) AS t_reglements,
13
+ (SELECT SUM(amount) FROM adherent_adhesions
14
+ WHERE adherent_adhesions.member_id = adherent_members.id) AS t_adhesions
15
+ FROM adherent_members
16
+ LEFT JOIN adherent_coords ON adherent_members.id = adherent_coords.member_id;
17
+ )
18
+ end
19
+
20
+ def down
21
+ self.connection.execute "DROP VIEW IF EXISTS adherent_query_members"
22
+ end
23
+ end
@@ -13,5 +13,6 @@ module Adherent
13
13
  # VERSION = "0.2.2.2" # correction french_decimal_input
14
14
  # VERSION = "0.2.2.3" # adaptation à la précompilation des assets
15
15
  # VERSION = "0.2.2.4" # correction des références des assets data_tables
16
- VERSION = '0.2.3' # Ajout d'un champ comment pour les paiements
16
+ # VERSION = '0.2.3' # Ajout d'un champ comment pour les paiements
17
+ VERSION = '0.2.4' # Vue index avec fin adh et montant du plus export
17
18
  end
@@ -10,9 +10,7 @@ describe Adherent::MembersController, :type => :controller do
10
10
 
11
11
 
12
12
  describe "GET index" do
13
-
14
-
15
-
13
+
16
14
  it 'rend la vue index' do
17
15
  get :index
18
16
  expect(response).to render_template("index")
@@ -20,11 +18,17 @@ describe Adherent::MembersController, :type => :controller do
20
18
 
21
19
 
22
20
  it "assigns all members as @members" do
23
- expect_any_instance_of(Organism).to receive(:members).and_return([1,2])
24
-
21
+ expect(Adherent::QueryMember).to receive(:query_members).and_return([1,2])
25
22
  get :index
26
23
  expect(assigns(:members)).to eq([1,2])
27
-
24
+ end
25
+
26
+ it 'peut rendre un csv' do
27
+ expect {get :index, format:'csv'}.not_to raise_error
28
+ end
29
+
30
+ it 'ou un xls' do
31
+ expect {get :index, format:'xls'}.not_to raise_error
28
32
  end
29
33
  end
30
34
 
@@ -0,0 +1,24 @@
1
+ # This migration comes from adherent (originally 20150412145132)
2
+ class CreateQueryMember < ActiveRecord::Migration
3
+ def up
4
+ self.connection.execute %Q(CREATE OR REPLACE VIEW adherent_query_members AS
5
+ SELECT adherent_members.id, organism_id, number, name, forname, birthdate,
6
+ adherent_coords.mail AS mail, adherent_coords.tel AS tel,
7
+ (SELECT to_date FROM adherent_adhesions
8
+ WHERE adherent_adhesions.member_id = adherent_members.id
9
+ ORDER BY to_date DESC LIMIT 1 ) AS m_to_date,
10
+ (SELECT SUM(adherent_reglements.amount) FROM adherent_reglements,
11
+ adherent_adhesions
12
+ WHERE adherent_reglements.adhesion_id = adherent_adhesions.id AND
13
+ adherent_adhesions.member_id = adherent_members.id) AS t_reglements,
14
+ (SELECT SUM(amount) FROM adherent_adhesions
15
+ WHERE adherent_adhesions.member_id = adherent_members.id) AS t_adhesions
16
+ FROM adherent_members
17
+ LEFT JOIN adherent_coords ON adherent_members.id = adherent_coords.member_id;
18
+ )
19
+ end
20
+
21
+ def down
22
+ self.connection.execute "DROP VIEW IF EXISTS adherent_query_members"
23
+ end
24
+ end