adherent 0.2.3 → 0.2.4

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 (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