obitum-rails_admin 0.0.1

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 (401) hide show
  1. data/Gemfile +57 -0
  2. data/LICENSE.md +20 -0
  3. data/README.md +206 -0
  4. data/Rakefile +14 -0
  5. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  6. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  7. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  8. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  9. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  10. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  11. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  12. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  13. data/app/assets/images/rails_admin/calendar.png +0 -0
  14. data/app/assets/images/rails_admin/clock.png +0 -0
  15. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  16. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  17. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  18. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  19. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  20. data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  21. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  22. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  23. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  24. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  25. data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  26. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  27. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  28. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  29. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  30. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  31. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  32. data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  33. data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  34. data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  35. data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  36. data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  37. data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
  38. data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
  39. data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
  40. data/app/assets/images/rails_admin/logo.png +0 -0
  41. data/app/assets/images/rails_admin/magnifier.png +0 -0
  42. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  43. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  44. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  45. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  46. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  47. data/app/assets/javascripts/rails_admin/custom/ui.js +12 -0
  48. data/app/assets/javascripts/rails_admin/jquery-ui-1.8.16.custom.js +5271 -0
  49. data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +484 -0
  50. data/app/assets/javascripts/rails_admin/jquery.pjax.js +266 -0
  51. data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +1219 -0
  52. data/app/assets/javascripts/rails_admin/jquery_nested_form.js +58 -0
  53. data/app/assets/javascripts/rails_admin/ra.datetimepicker.js +67 -0
  54. data/app/assets/javascripts/rails_admin/ra.filter-box.js +120 -0
  55. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +280 -0
  56. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +181 -0
  57. data/app/assets/javascripts/rails_admin/ra.remote-form.js +148 -0
  58. data/app/assets/javascripts/rails_admin/rails_admin.js.erb +19 -0
  59. data/app/assets/javascripts/rails_admin/themes/default/ui.js +12 -0
  60. data/app/assets/javascripts/rails_admin/ui.js.coffee +33 -0
  61. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  62. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  63. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  64. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  65. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  66. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  67. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.css.scss +733 -0
  68. data/app/assets/stylesheets/rails_admin/base/README +2 -0
  69. data/app/assets/stylesheets/rails_admin/base/mixins.css.scss +1 -0
  70. data/app/assets/stylesheets/rails_admin/base/theming.css.scss +145 -0
  71. data/app/assets/stylesheets/rails_admin/base/variables.css.scss +1 -0
  72. data/app/assets/stylesheets/rails_admin/custom/mixins.css.scss +12 -0
  73. data/app/assets/stylesheets/rails_admin/custom/theming.css.scss +13 -0
  74. data/app/assets/stylesheets/rails_admin/custom/variables.css.scss +15 -0
  75. data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +41 -0
  76. data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +180 -0
  77. data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.css.scss +53 -0
  78. data/app/assets/stylesheets/rails_admin/ra.calendar-additions.css.scss +25 -0
  79. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.css.scss +85 -0
  80. data/app/assets/stylesheets/rails_admin/rails_admin.css +4 -0
  81. data/app/assets/stylesheets/rails_admin/themes/default/mixins.css.scss +8 -0
  82. data/app/assets/stylesheets/rails_admin/themes/default/theming.css.scss +11 -0
  83. data/app/assets/stylesheets/rails_admin/themes/default/variables.css.scss +12 -0
  84. data/app/controllers/rails_admin/application_controller.rb +87 -0
  85. data/app/controllers/rails_admin/main_controller.rb +148 -0
  86. data/app/helpers/rails_admin/application_helper.rb +97 -0
  87. data/app/helpers/rails_admin/form_builder.rb +106 -0
  88. data/app/helpers/rails_admin/main_helper.rb +36 -0
  89. data/app/views/kaminari/twitter-bootstrap/_gap.html.haml +2 -0
  90. data/app/views/kaminari/twitter-bootstrap/_next_page.html.haml +4 -0
  91. data/app/views/kaminari/twitter-bootstrap/_page.html.haml +4 -0
  92. data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +10 -0
  93. data/app/views/kaminari/twitter-bootstrap/_prev_page.html.haml +4 -0
  94. data/app/views/layouts/rails_admin/_navigation.html.haml +17 -0
  95. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +11 -0
  96. data/app/views/layouts/rails_admin/application.html.haml +39 -0
  97. data/app/views/rails_admin/main/_dashboard_history.html.haml +10 -0
  98. data/app/views/rails_admin/main/_delete_notice.html.haml +19 -0
  99. data/app/views/rails_admin/main/_form_colorpicker.html.haml +23 -0
  100. data/app/views/rails_admin/main/_form_datetime.html.haml +4 -0
  101. data/app/views/rails_admin/main/_form_enumeration.html.haml +4 -0
  102. data/app/views/rails_admin/main/_form_field.html.haml +1 -0
  103. data/app/views/rails_admin/main/_form_file_upload.html.haml +17 -0
  104. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +57 -0
  105. data/app/views/rails_admin/main/_form_filtering_select.html.haml +46 -0
  106. data/app/views/rails_admin/main/_form_nested_many.html.haml +6 -0
  107. data/app/views/rails_admin/main/_form_nested_one.html.haml +6 -0
  108. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +34 -0
  109. data/app/views/rails_admin/main/_form_text.html.haml +9 -0
  110. data/app/views/rails_admin/main/_submit_buttons.html.haml +13 -0
  111. data/app/views/rails_admin/main/bulk_delete.html.haml +7 -0
  112. data/app/views/rails_admin/main/dashboard.html.haml +31 -0
  113. data/app/views/rails_admin/main/delete.html.haml +14 -0
  114. data/app/views/rails_admin/main/edit.html.haml +2 -0
  115. data/app/views/rails_admin/main/export.html.haml +71 -0
  116. data/app/views/rails_admin/main/history.html.haml +42 -0
  117. data/app/views/rails_admin/main/index.html.haml +123 -0
  118. data/app/views/rails_admin/main/new.html.haml +2 -0
  119. data/app/views/rails_admin/main/show.html.haml +14 -0
  120. data/config/initializers/active_record_extensions.rb +19 -0
  121. data/config/initializers/devise_patch.rb +9 -0
  122. data/config/initializers/haml.rb +3 -0
  123. data/config/locales/rails_admin.en.yml +129 -0
  124. data/config/routes.rb +12 -0
  125. data/lib/generators/rails_admin/install_generator.rb +84 -0
  126. data/lib/generators/rails_admin/templates/drop.rb +18 -0
  127. data/lib/generators/rails_admin/templates/initializer.erb +101 -0
  128. data/lib/generators/rails_admin/templates/migration.rb +18 -0
  129. data/lib/generators/rails_admin/uninstall_generator.rb +22 -0
  130. data/lib/generators/rails_admin/utils.rb +30 -0
  131. data/lib/rails_admin.rb +39 -0
  132. data/lib/rails_admin/abstract_model.rb +73 -0
  133. data/lib/rails_admin/abstract_object.rb +28 -0
  134. data/lib/rails_admin/adapters/active_record.rb +347 -0
  135. data/lib/rails_admin/config.rb +293 -0
  136. data/lib/rails_admin/config/actions.rb +121 -0
  137. data/lib/rails_admin/config/actions/base.rb +105 -0
  138. data/lib/rails_admin/config/actions/bulk_delete.rb +56 -0
  139. data/lib/rails_admin/config/actions/dashboard.rb +40 -0
  140. data/lib/rails_admin/config/actions/delete.rb +50 -0
  141. data/lib/rails_admin/config/actions/edit.rb +52 -0
  142. data/lib/rails_admin/config/actions/export.rb +37 -0
  143. data/lib/rails_admin/config/actions/history_index.rb +34 -0
  144. data/lib/rails_admin/config/actions/history_show.rb +34 -0
  145. data/lib/rails_admin/config/actions/index.rb +73 -0
  146. data/lib/rails_admin/config/actions/new.rb +60 -0
  147. data/lib/rails_admin/config/actions/show.rb +27 -0
  148. data/lib/rails_admin/config/actions/show_in_app.rb +23 -0
  149. data/lib/rails_admin/config/base.rb +111 -0
  150. data/lib/rails_admin/config/fields.rb +97 -0
  151. data/lib/rails_admin/config/fields/association.rb +115 -0
  152. data/lib/rails_admin/config/fields/base.rb +274 -0
  153. data/lib/rails_admin/config/fields/factories/carrierwave.rb +12 -0
  154. data/lib/rails_admin/config/fields/factories/devise.rb +30 -0
  155. data/lib/rails_admin/config/fields/factories/dragonfly.rb +21 -0
  156. data/lib/rails_admin/config/fields/factories/enum.rb +11 -0
  157. data/lib/rails_admin/config/fields/factories/paperclip.rb +27 -0
  158. data/lib/rails_admin/config/fields/factories/password.rb +17 -0
  159. data/lib/rails_admin/config/fields/group.rb +65 -0
  160. data/lib/rails_admin/config/fields/groupable.rb +25 -0
  161. data/lib/rails_admin/config/fields/types.rb +26 -0
  162. data/lib/rails_admin/config/fields/types/all.rb +23 -0
  163. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +43 -0
  164. data/lib/rails_admin/config/fields/types/boolean.rb +29 -0
  165. data/lib/rails_admin/config/fields/types/carrierwave.rb +40 -0
  166. data/lib/rails_admin/config/fields/types/color.rb +37 -0
  167. data/lib/rails_admin/config/fields/types/date.rb +24 -0
  168. data/lib/rails_admin/config/fields/types/datetime.rb +165 -0
  169. data/lib/rails_admin/config/fields/types/decimal.rb +14 -0
  170. data/lib/rails_admin/config/fields/types/dragonfly.rb +59 -0
  171. data/lib/rails_admin/config/fields/types/enum.rb +35 -0
  172. data/lib/rails_admin/config/fields/types/file_upload.rb +65 -0
  173. data/lib/rails_admin/config/fields/types/float.rb +14 -0
  174. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +14 -0
  175. data/lib/rails_admin/config/fields/types/has_many_association.rb +37 -0
  176. data/lib/rails_admin/config/fields/types/has_one_association.rb +35 -0
  177. data/lib/rails_admin/config/fields/types/hidden.rb +19 -0
  178. data/lib/rails_admin/config/fields/types/integer.rb +20 -0
  179. data/lib/rails_admin/config/fields/types/paperclip.rb +46 -0
  180. data/lib/rails_admin/config/fields/types/password.rb +42 -0
  181. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +76 -0
  182. data/lib/rails_admin/config/fields/types/string.rb +43 -0
  183. data/lib/rails_admin/config/fields/types/text.rb +38 -0
  184. data/lib/rails_admin/config/fields/types/time.rb +36 -0
  185. data/lib/rails_admin/config/fields/types/timestamp.rb +18 -0
  186. data/lib/rails_admin/config/has_fields.rb +135 -0
  187. data/lib/rails_admin/config/has_groups.rb +23 -0
  188. data/lib/rails_admin/config/hideable.rb +28 -0
  189. data/lib/rails_admin/config/model.rb +82 -0
  190. data/lib/rails_admin/config/proxy.rb +40 -0
  191. data/lib/rails_admin/config/sections.rb +38 -0
  192. data/lib/rails_admin/config/sections/base.rb +19 -0
  193. data/lib/rails_admin/config/sections/create.rb +11 -0
  194. data/lib/rails_admin/config/sections/edit.rb +11 -0
  195. data/lib/rails_admin/config/sections/export.rb +11 -0
  196. data/lib/rails_admin/config/sections/list.rb +27 -0
  197. data/lib/rails_admin/config/sections/nested.rb +10 -0
  198. data/lib/rails_admin/config/sections/show.rb +10 -0
  199. data/lib/rails_admin/config/sections/update.rb +10 -0
  200. data/lib/rails_admin/engine.rb +21 -0
  201. data/lib/rails_admin/extension.rb +29 -0
  202. data/lib/rails_admin/extensions/cancan.rb +5 -0
  203. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +59 -0
  204. data/lib/rails_admin/extensions/history.rb +5 -0
  205. data/lib/rails_admin/extensions/history/auditing_adapter.rb +37 -0
  206. data/lib/rails_admin/extensions/history/history.rb +68 -0
  207. data/lib/rails_admin/extensions/paper_trail.rb +5 -0
  208. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +92 -0
  209. data/lib/rails_admin/generic_support.rb +18 -0
  210. data/lib/rails_admin/i18n_support.rb +43 -0
  211. data/lib/rails_admin/support/core_extensions.rb +44 -0
  212. data/lib/rails_admin/support/csv_converter.rb +109 -0
  213. data/lib/rails_admin/version.rb +6 -0
  214. data/lib/tasks/prepare_ci_env.rake +27 -0
  215. data/lib/tasks/rails_admin.rake +18 -0
  216. data/spec/ci.sh +2 -0
  217. data/spec/controllers/application_controller_spec.rb +30 -0
  218. data/spec/controllers/main_controller_spec.rb +114 -0
  219. data/spec/database_helpers.rb +15 -0
  220. data/spec/dummy_app/Gemfile +53 -0
  221. data/spec/dummy_app/Rakefile +7 -0
  222. data/spec/dummy_app/app/controllers/application_controller.rb +3 -0
  223. data/spec/dummy_app/app/controllers/players_controller.rb +5 -0
  224. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  225. data/spec/dummy_app/app/locales/models.en.yml +16 -0
  226. data/spec/dummy_app/app/models/abstract.rb +5 -0
  227. data/spec/dummy_app/app/models/ball.rb +8 -0
  228. data/spec/dummy_app/app/models/category.rb +3 -0
  229. data/spec/dummy_app/app/models/cms.rb +5 -0
  230. data/spec/dummy_app/app/models/cms/basic_page.rb +7 -0
  231. data/spec/dummy_app/app/models/cms/unscoped_page.rb +3 -0
  232. data/spec/dummy_app/app/models/comment.rb +3 -0
  233. data/spec/dummy_app/app/models/division.rb +8 -0
  234. data/spec/dummy_app/app/models/draft.rb +11 -0
  235. data/spec/dummy_app/app/models/fan.rb +5 -0
  236. data/spec/dummy_app/app/models/field_test.rb +20 -0
  237. data/spec/dummy_app/app/models/hardball.rb +2 -0
  238. data/spec/dummy_app/app/models/league.rb +10 -0
  239. data/spec/dummy_app/app/models/nested_field_test.rb +3 -0
  240. data/spec/dummy_app/app/models/player.rb +23 -0
  241. data/spec/dummy_app/app/models/rel_test.rb +6 -0
  242. data/spec/dummy_app/app/models/team.rb +25 -0
  243. data/spec/dummy_app/app/models/user.rb +21 -0
  244. data/spec/dummy_app/app/uploaders/carrierwave_uploader.rb +53 -0
  245. data/spec/dummy_app/app/views/layouts/application.html.erb +13 -0
  246. data/spec/dummy_app/app/views/players/show.html.haml +1 -0
  247. data/spec/dummy_app/config.ru +4 -0
  248. data/spec/dummy_app/config/application.rb +47 -0
  249. data/spec/dummy_app/config/boot.rb +6 -0
  250. data/spec/dummy_app/config/database.yml +22 -0
  251. data/spec/dummy_app/config/environment.rb +5 -0
  252. data/spec/dummy_app/config/environments/development.rb +27 -0
  253. data/spec/dummy_app/config/environments/production.rb +51 -0
  254. data/spec/dummy_app/config/environments/test.rb +39 -0
  255. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  256. data/spec/dummy_app/config/initializers/devise.rb +142 -0
  257. data/spec/dummy_app/config/initializers/inflections.rb +10 -0
  258. data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
  259. data/spec/dummy_app/config/initializers/quiet_assets.rb +10 -0
  260. data/spec/dummy_app/config/initializers/rails_admin.rb +11 -0
  261. data/spec/dummy_app/config/initializers/secret_token.rb +7 -0
  262. data/spec/dummy_app/config/initializers/session_store.rb +8 -0
  263. data/spec/dummy_app/config/routes.rb +10 -0
  264. data/spec/dummy_app/db/migrate/00000000000001_create_divisions_migration.rb +13 -0
  265. data/spec/dummy_app/db/migrate/00000000000002_create_drafts_migration.rb +19 -0
  266. data/spec/dummy_app/db/migrate/00000000000003_create_leagues_migration.rb +12 -0
  267. data/spec/dummy_app/db/migrate/00000000000004_create_players_migration.rb +20 -0
  268. data/spec/dummy_app/db/migrate/00000000000005_create_teams_migration.rb +22 -0
  269. data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +19 -0
  270. data/spec/dummy_app/db/migrate/00000000000007_create_histories_table.rb +16 -0
  271. data/spec/dummy_app/db/migrate/00000000000008_create_fans_migration.rb +12 -0
  272. data/spec/dummy_app/db/migrate/00000000000009_create_fans_teams_migration.rb +11 -0
  273. data/spec/dummy_app/db/migrate/00000000000010_add_revenue_to_team_migration.rb +9 -0
  274. data/spec/dummy_app/db/migrate/00000000000011_add_suspended_to_player_migration.rb +9 -0
  275. data/spec/dummy_app/db/migrate/00000000000012_add_avatar_columns_to_user.rb +16 -0
  276. data/spec/dummy_app/db/migrate/00000000000013_add_roles_to_user.rb +9 -0
  277. data/spec/dummy_app/db/migrate/00000000000014_add_color_to_team_migration.rb +9 -0
  278. data/spec/dummy_app/db/migrate/20101223222233_create_rel_tests.rb +15 -0
  279. data/spec/dummy_app/db/migrate/20110103205808_create_comments.rb +15 -0
  280. data/spec/dummy_app/db/migrate/20110123042530_rename_histories_to_rails_admin_histories.rb +9 -0
  281. data/spec/dummy_app/db/migrate/20110224184303_create_field_tests.rb +22 -0
  282. data/spec/dummy_app/db/migrate/20110328193014_create_cms_basic_pages.rb +14 -0
  283. data/spec/dummy_app/db/migrate/20110329183136_remove_league_id_from_teams.rb +9 -0
  284. data/spec/dummy_app/db/migrate/20110607152842_add_format_to_field_test.rb +9 -0
  285. data/spec/dummy_app/db/migrate/20110714095433_create_balls.rb +12 -0
  286. data/spec/dummy_app/db/migrate/20110831090841_add_protected_field_and_restricted_field_to_field_tests.rb +6 -0
  287. data/spec/dummy_app/db/migrate/20110901131551_change_division_primary_key.rb +19 -0
  288. data/spec/dummy_app/db/migrate/20110901142530_rename_league_id_foreign_key_on_divisions.rb +5 -0
  289. data/spec/dummy_app/db/migrate/20110901150912_set_primary_key_not_null_for_divisions.rb +21 -0
  290. data/spec/dummy_app/db/migrate/20110901154834_change_length_for_rails_admin_histories.rb +9 -0
  291. data/spec/dummy_app/db/migrate/20111103174459_create_unscoped_pages.rb +9 -0
  292. data/spec/dummy_app/db/migrate/20111108143642_add_dragonfly_and_carrierwave_to_field_tests.rb +7 -0
  293. data/spec/dummy_app/db/migrate/20111115041025_add_type_to_balls.rb +5 -0
  294. data/spec/dummy_app/db/migrate/20111123092549_create_nested_field_tests.rb +10 -0
  295. data/spec/dummy_app/db/migrate/20111130075338_add_dragonfly_asset_name_to_field_tests.rb +5 -0
  296. data/spec/dummy_app/db/migrate/20111215083258_create_foo_bars.rb +8 -0
  297. data/spec/dummy_app/db/migrate/20120117151733_add_custom_field_to_teams.rb +5 -0
  298. data/spec/dummy_app/db/migrate/20120118122004_add_categories.rb +7 -0
  299. data/spec/dummy_app/db/seeds.rb +18 -0
  300. data/spec/dummy_app/foo/Gemfile +17 -0
  301. data/spec/dummy_app/foo/MIT-LICENSE +20 -0
  302. data/spec/dummy_app/foo/README.rdoc +3 -0
  303. data/spec/dummy_app/foo/Rakefile +39 -0
  304. data/spec/dummy_app/foo/app/assets/javascripts/foo/application.js +9 -0
  305. data/spec/dummy_app/foo/app/assets/stylesheets/foo/application.css +7 -0
  306. data/spec/dummy_app/foo/app/controllers/foo/application_controller.rb +4 -0
  307. data/spec/dummy_app/foo/app/helpers/foo/application_helper.rb +4 -0
  308. data/spec/dummy_app/foo/app/models/foo/bar.rb +4 -0
  309. data/spec/dummy_app/foo/app/views/layouts/foo/application.html.erb +14 -0
  310. data/spec/dummy_app/foo/config/routes.rb +2 -0
  311. data/spec/dummy_app/foo/foo.gemspec +23 -0
  312. data/spec/dummy_app/foo/lib/foo.rb +4 -0
  313. data/spec/dummy_app/foo/lib/foo/engine.rb +5 -0
  314. data/spec/dummy_app/foo/lib/foo/version.rb +3 -0
  315. data/spec/dummy_app/foo/lib/tasks/foo_tasks.rake +4 -0
  316. data/spec/dummy_app/foo/script/rails +6 -0
  317. data/spec/dummy_app/foo/test/dummy/Rakefile +7 -0
  318. data/spec/dummy_app/foo/test/dummy/app/assets/javascripts/application.js +9 -0
  319. data/spec/dummy_app/foo/test/dummy/app/assets/stylesheets/application.css +7 -0
  320. data/spec/dummy_app/foo/test/dummy/app/controllers/application_controller.rb +3 -0
  321. data/spec/dummy_app/foo/test/dummy/app/helpers/application_helper.rb +2 -0
  322. data/spec/dummy_app/foo/test/dummy/app/views/layouts/application.html.erb +14 -0
  323. data/spec/dummy_app/foo/test/dummy/config.ru +4 -0
  324. data/spec/dummy_app/foo/test/dummy/config/application.rb +45 -0
  325. data/spec/dummy_app/foo/test/dummy/config/boot.rb +10 -0
  326. data/spec/dummy_app/foo/test/dummy/config/database.yml +25 -0
  327. data/spec/dummy_app/foo/test/dummy/config/environment.rb +5 -0
  328. data/spec/dummy_app/foo/test/dummy/config/environments/development.rb +30 -0
  329. data/spec/dummy_app/foo/test/dummy/config/environments/production.rb +60 -0
  330. data/spec/dummy_app/foo/test/dummy/config/environments/test.rb +39 -0
  331. data/spec/dummy_app/foo/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  332. data/spec/dummy_app/foo/test/dummy/config/initializers/inflections.rb +10 -0
  333. data/spec/dummy_app/foo/test/dummy/config/initializers/mime_types.rb +5 -0
  334. data/spec/dummy_app/foo/test/dummy/config/initializers/secret_token.rb +7 -0
  335. data/spec/dummy_app/foo/test/dummy/config/initializers/session_store.rb +8 -0
  336. data/spec/dummy_app/foo/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  337. data/spec/dummy_app/foo/test/dummy/config/locales/en.yml +5 -0
  338. data/spec/dummy_app/foo/test/dummy/config/routes.rb +4 -0
  339. data/spec/dummy_app/foo/test/dummy/db/schema.rb +21 -0
  340. data/spec/dummy_app/foo/test/dummy/public/404.html +26 -0
  341. data/spec/dummy_app/foo/test/dummy/public/422.html +26 -0
  342. data/spec/dummy_app/foo/test/dummy/public/500.html +26 -0
  343. data/spec/dummy_app/foo/test/dummy/public/favicon.ico +0 -0
  344. data/spec/dummy_app/foo/test/dummy/script/rails +6 -0
  345. data/spec/dummy_app/foo/test/fixtures/foo/bars.yml +11 -0
  346. data/spec/dummy_app/foo/test/foo_test.rb +7 -0
  347. data/spec/dummy_app/foo/test/integration/navigation_test.rb +10 -0
  348. data/spec/dummy_app/foo/test/test_helper.rb +10 -0
  349. data/spec/dummy_app/foo/test/unit/foo/bar_test.rb +9 -0
  350. data/spec/dummy_app/public/404.html +0 -0
  351. data/spec/dummy_app/public/favicon.ico +0 -0
  352. data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg +0 -0
  353. data/spec/dummy_app/public/system/dragonfly/development/2011/11/24/10_36_27_888_Pensive_Parakeet.jpg.meta +1 -0
  354. data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg +0 -0
  355. data/spec/dummy_app/public/system/dragonfly/development/2011/11/30/08_54_39_906_Costa_Rican_Frog.jpg.meta +1 -0
  356. data/spec/dummy_app/public/system/paperclip_assets/1/original/Boston City Flow.jpg +0 -0
  357. data/spec/dummy_app/public/system/paperclip_assets/1/thumb/Boston City Flow.jpg +0 -0
  358. data/spec/dummy_app/public/system/paperclip_assets/3/original/Costa Rican Frog.jpg +0 -0
  359. data/spec/dummy_app/public/system/paperclip_assets/3/thumb/Costa Rican Frog.jpg +0 -0
  360. data/spec/dummy_app/public/system/paperclip_assets/6/original/liste-electorale.pdf +0 -0
  361. data/spec/dummy_app/public/system/paperclip_assets/6/thumb/liste-electorale.pdf +148 -0
  362. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/Boston_City_Flow.jpg +0 -0
  363. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/3/thumb_Boston_City_Flow.jpg +0 -0
  364. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/Costa_Rican_Frog.jpg +0 -0
  365. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/4/thumb_Costa_Rican_Frog.jpg +0 -0
  366. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/Pensive_Parakeet.jpg +0 -0
  367. data/spec/dummy_app/public/uploads/field_test/carrierwave_asset/6/thumb_Pensive_Parakeet.jpg +0 -0
  368. data/spec/dummy_app/script/rails +6 -0
  369. data/spec/factories.rb +66 -0
  370. data/spec/generator_helpers.rb +30 -0
  371. data/spec/generators/install_generator_spec.rb +85 -0
  372. data/spec/generators/uninstall_generator_spec.rb +35 -0
  373. data/spec/helpers/application_helper_spec.rb +212 -0
  374. data/spec/lib/abstract_object_spec.rb +119 -0
  375. data/spec/lib/custom_field.rb +7 -0
  376. data/spec/lib/rails_admin_spec.rb +301 -0
  377. data/spec/requests/actions.rb +161 -0
  378. data/spec/requests/authorization/cancan_spec.rb +350 -0
  379. data/spec/requests/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +25 -0
  380. data/spec/requests/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +57 -0
  381. data/spec/requests/basic/create/rails_admin_basic_create_spec.rb +143 -0
  382. data/spec/requests/basic/create/rails_admin_namespaced_model_create_spec.rb +39 -0
  383. data/spec/requests/basic/delete/rails_admin_basic_delete_spec.rb +27 -0
  384. data/spec/requests/basic/destroy/rails_admin_basic_destroy_spec.rb +56 -0
  385. data/spec/requests/basic/edit/rails_admin_basic_edit_spec.rb +109 -0
  386. data/spec/requests/basic/export/rails_admin_basic_export_spec.rb +87 -0
  387. data/spec/requests/basic/list/rails_admin_basic_list_spec.rb +417 -0
  388. data/spec/requests/basic/new/rails_admin_basic_new_spec.rb +74 -0
  389. data/spec/requests/basic/new/rails_admin_namespaced_model_new_spec.rb +31 -0
  390. data/spec/requests/basic/show/rails_admin_basic_show_spec.rb +92 -0
  391. data/spec/requests/basic/update/rails_admin_basic_update_spec.rb +191 -0
  392. data/spec/requests/config/edit/rails_admin_config_edit_spec.rb +913 -0
  393. data/spec/requests/config/list/rails_admin_config_list_spec.rb +509 -0
  394. data/spec/requests/config/navigation/rails_admin_config_navigation_spec.rb +107 -0
  395. data/spec/requests/config/rails_admin_config_spec.rb +227 -0
  396. data/spec/requests/config/show/rails_admin_config_show_spec.rb +282 -0
  397. data/spec/requests/history/rails_admin_history_spec.rb +66 -0
  398. data/spec/requests/rails_admin_spec.rb +146 -0
  399. data/spec/requests/relation_spec.rb +26 -0
  400. data/spec/spec_helper.rb +91 -0
  401. metadata +967 -0
@@ -0,0 +1,23 @@
1
+ require 'rails_admin/config/fields/group'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module HasGroups
6
+ # Accessor for a group
7
+ #
8
+ # If group with given name does not yet exist it will be created. If a
9
+ # block is passed it will be evaluated in the context of the group
10
+ def group(name, &block)
11
+ group = parent.groups.find {|g| name == g.name }
12
+ group ||= (parent.groups << RailsAdmin::Config::Fields::Group.new(self, name)).last
13
+ group.tap{|g| g.section = self}.instance_eval &block if block
14
+ group
15
+ end
16
+
17
+ # Reader for groups that are marked as visible
18
+ def visible_groups
19
+ parent.groups.map {|f| f.section = self; f.with(bindings) }.select(&:visible).select{|g| g.visible_fields.present?}
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,28 @@
1
+ module RailsAdmin
2
+ module Config
3
+ # Defines a visibility configuration
4
+ module Hideable
5
+ # Visibility defaults to true.
6
+ def self.included(klass)
7
+ klass.register_instance_option(:visible?) do
8
+ !root.try :excluded?
9
+ end
10
+ end
11
+
12
+ # Reader whether field is hidden.
13
+ def hidden?
14
+ not visible
15
+ end
16
+
17
+ # Writer to hide field.
18
+ def hide(&block)
19
+ visible block ? proc { false == (instance_eval &block) } : false
20
+ end
21
+
22
+ # Writer to show field.
23
+ def show(&block)
24
+ visible block || true
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,82 @@
1
+ require 'rails_admin/config'
2
+ require 'rails_admin/config/base'
3
+ require 'rails_admin/config/hideable'
4
+ require 'rails_admin/config/has_groups'
5
+ require 'rails_admin/config/fields/group'
6
+ require 'rails_admin/config/fields'
7
+ require 'rails_admin/config/has_fields'
8
+ require 'rails_admin/config/sections'
9
+ require 'rails_admin/config/actions'
10
+
11
+
12
+ module RailsAdmin
13
+ module Config
14
+ # Model specific configuration object.
15
+ class Model < RailsAdmin::Config::Base
16
+ include RailsAdmin::Config::Hideable
17
+ include RailsAdmin::Config::Sections
18
+
19
+ attr_reader :abstract_model
20
+ attr_accessor :groups
21
+
22
+ def initialize(entity)
23
+ @abstract_model = begin
24
+ if entity.kind_of?(RailsAdmin::AbstractModel)
25
+ entity
26
+ elsif entity.kind_of?(Class) || entity.kind_of?(String) || entity.kind_of?(Symbol)
27
+ RailsAdmin::AbstractModel.new(entity)
28
+ else
29
+ RailsAdmin::AbstractModel.new(entity.class)
30
+ end
31
+ end
32
+
33
+ @groups = [ RailsAdmin::Config::Fields::Group.new(self, :default).tap {|g| g.label{I18n.translate("admin.form.basic_info")} } ]
34
+ @bindings = {}
35
+ @parent = nil
36
+ @root = self
37
+ end
38
+
39
+ def excluded?
40
+ @excluded ||= !RailsAdmin::AbstractModel.all.map(&:model).include?(abstract_model.model)
41
+ end
42
+
43
+ def object_label
44
+ bindings[:object].send object_label_method
45
+ end
46
+
47
+ # The display for a model instance (i.e. a single database record).
48
+ # Unless configured in a model config block, it'll try to use :name followed by :title methods, then
49
+ # any methods that may have been added to the label_methods array via Configuration.
50
+ # Failing all of these, it'll return the class name followed by the model's id.
51
+ register_instance_option(:object_label_method) do
52
+ @object_label_method ||= Config.label_methods.find { |method| (@dummy_object ||= abstract_model.model.new).respond_to? method } || :rails_admin_default_object_label_method
53
+ end
54
+
55
+ register_instance_option(:label) do
56
+ (@label ||= {})[::I18n.locale] ||= abstract_model.model.model_name.human(:default => abstract_model.model.model_name.demodulize.underscore.humanize)
57
+ end
58
+
59
+ register_instance_option(:label_plural) do
60
+ (@label_plural ||= {})[::I18n.locale] ||= abstract_model.model.model_name.human(:count => 2, :default => label.pluralize)
61
+ end
62
+
63
+ register_instance_option(:weight) do
64
+ 0
65
+ end
66
+
67
+ register_instance_option(:parent) do
68
+ :root
69
+ end
70
+
71
+ register_instance_option(:navigation_label) do
72
+ false
73
+ end
74
+
75
+ # Act as a proxy for the base section configuration that actually
76
+ # store the configurations.
77
+ def method_missing(m, *args, &block)
78
+ self.send(:base).send(m, *args, &block)
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,40 @@
1
+ module RailsAdmin
2
+ module Config
3
+ class Proxy
4
+
5
+ instance_methods.each {|m| undef_method m unless m =~ /^(__|instance_eval|object_id)/ }
6
+
7
+ attr_reader :bindings
8
+
9
+ def initialize(object, bindings = {})
10
+ @object = object
11
+ @bindings = bindings
12
+ end
13
+
14
+ # Bind variables to be used by the configuration options
15
+ def bind(key, value = nil)
16
+ if key.kind_of?(Hash)
17
+ @bindings = key
18
+ else
19
+ @bindings[key] = value
20
+ end
21
+ self
22
+ end
23
+
24
+ def method_missing(name, *args, &block)
25
+ if @object.respond_to?(name)
26
+ reset = @object.instance_variable_get("@bindings")
27
+ begin
28
+ @object.instance_variable_set("@bindings", @bindings)
29
+ response = @object.__send__(name, *args, &block)
30
+ ensure
31
+ @object.instance_variable_set("@bindings", @reset)
32
+ end
33
+ response
34
+ else
35
+ super(name, *args, &block)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,38 @@
1
+ require 'active_support/core_ext/string/inflections'
2
+ require 'rails_admin/config/sections/base'
3
+ require 'rails_admin/config/sections/edit'
4
+ require 'rails_admin/config/sections/update'
5
+ require 'rails_admin/config/sections/create'
6
+ require 'rails_admin/config/sections/nested'
7
+ require 'rails_admin/config/sections/list'
8
+ require 'rails_admin/config/sections/export'
9
+ require 'rails_admin/config/sections/show'
10
+
11
+
12
+ module RailsAdmin
13
+ module Config
14
+ # Sections describe different views in the RailsAdmin engine. Configurable sections are
15
+ # list and navigation.
16
+ #
17
+ # Each section's class object can store generic configuration about that section (such as the
18
+ # number of visible tabs in the main navigation), while the instances (accessed via model
19
+ # configuration objects) store model specific configuration (such as the visibility of the
20
+ # model).
21
+ module Sections
22
+ def self.included(klass)
23
+ # Register accessors for all the sections in this namespace
24
+ constants.each do |name|
25
+ section = "RailsAdmin::Config::Sections::#{name}".constantize
26
+ name = name.to_s.underscore.to_sym
27
+ klass.send(:define_method, name) do |&block|
28
+ @sections = {} unless @sections
29
+ @sections[name] = section.new(self) unless @sections[name]
30
+ @sections[name].instance_eval &block if block
31
+ @sections[name]
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+
@@ -0,0 +1,19 @@
1
+ require 'rails_admin/config/base'
2
+ require 'rails_admin/config/has_fields'
3
+ require 'rails_admin/config/has_groups'
4
+
5
+ module RailsAdmin
6
+ module Config
7
+ module Sections
8
+ # Configuration of the show view for a new object
9
+ class Base < RailsAdmin::Config::Base
10
+ include RailsAdmin::Config::HasFields
11
+ include RailsAdmin::Config::HasGroups
12
+
13
+ def initialize(parent)
14
+ super(parent)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ require 'rails_admin/config/sections/edit'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ # Configuration of the edit view for a new object
7
+ class Create < RailsAdmin::Config::Sections::Edit
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'rails_admin/config/sections/base'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ # Configuration of the edit view for an existing object
7
+ class Edit < RailsAdmin::Config::Sections::Base
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'rails_admin/config/sections/base'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ # Configuration of the navigation view
7
+ class Export < RailsAdmin::Config::Sections::Base
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,27 @@
1
+ require 'rails_admin/config/sections/base'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ # Configuration of the list view
7
+ class List < RailsAdmin::Config::Sections::Base
8
+ register_instance_option :filters do
9
+ []
10
+ end
11
+
12
+ # Number of items listed per page
13
+ register_instance_option :items_per_page do
14
+ RailsAdmin::Config.default_items_per_page
15
+ end
16
+
17
+ register_instance_option :sort_by do
18
+ parent.abstract_model.model.primary_key
19
+ end
20
+
21
+ register_instance_option :sort_reverse? do
22
+ true # By default show latest first
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,10 @@
1
+ require 'rails_admin/config/sections/edit'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ class Nested < RailsAdmin::Config::Sections::Edit
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ require 'rails_admin/config/sections/base'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ class Show < RailsAdmin::Config::Sections::Base
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ require 'rails_admin/config/sections/edit'
2
+
3
+ module RailsAdmin
4
+ module Config
5
+ module Sections
6
+ class Update < RailsAdmin::Config::Sections::Edit
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,21 @@
1
+ require 'rails'
2
+ require 'jquery-rails'
3
+ require 'remotipart'
4
+ require 'bootstrap-sass'
5
+ require 'kaminari'
6
+ require 'rack-pjax'
7
+ require 'nested_form'
8
+ require 'rails_admin'
9
+
10
+ module RailsAdmin
11
+ class Engine < Rails::Engine
12
+ isolate_namespace RailsAdmin
13
+ initializer "RailsAdmin precompile hook" do |app|
14
+ app.config.assets.precompile += ['rails_admin/rails_admin.js', 'rails_admin/rails_admin.css', 'rails_admin/jquery.colorpicker.js', 'rails_admin/jquery.colorpicker.css']
15
+ end
16
+
17
+ initializer "RailsAdmin pjax hook" do |app|
18
+ app.config.middleware.use Rack::Pjax
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,29 @@
1
+
2
+ module RailsAdmin
3
+ EXTENSIONS = []
4
+ AUTHORIZATION_ADAPTERS = {}
5
+ AUDITING_ADAPTERS = {}
6
+ CONFIGURATION_ADAPTERS = {}
7
+
8
+ # Extend RailsAdmin
9
+ #
10
+ # The extension may define various adapters (e.g., for authorization) and
11
+ # register those via the options hash.
12
+ def self.add_extension(extension_key, extension_definition, options = {})
13
+ options.assert_valid_keys(:authorization, :configuration, :auditing)
14
+
15
+ EXTENSIONS << extension_key
16
+
17
+ if(authorization = options[:authorization])
18
+ AUTHORIZATION_ADAPTERS[extension_key] = extension_definition::AuthorizationAdapter
19
+ end
20
+
21
+ if(configuration = options[:configuration])
22
+ CONFIGURATION_ADAPTERS[extension_key] = extension_definition::ConfigurationAdapter
23
+ end
24
+
25
+ if(configuration = options[:auditing])
26
+ AUDITING_ADAPTERS[extension_key] = extension_definition::AuditingAdapter
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,5 @@
1
+ require 'rails_admin/extensions/cancan/authorization_adapter'
2
+
3
+ RailsAdmin.add_extension(:cancan, RailsAdmin::Extensions::CanCan, {
4
+ :authorization => true
5
+ })
@@ -0,0 +1,59 @@
1
+ module RailsAdmin
2
+ module Extensions
3
+ module CanCan
4
+ # This adapter is for the CanCan[https://github.com/ryanb/cancan] authorization library.
5
+ # You can create another adapter for different authorization behavior, just be certain it
6
+ # responds to each of the public methods here.
7
+ class AuthorizationAdapter
8
+ # See the +authorize_with+ config method for where the initialization happens.
9
+ def initialize(controller, ability = ::Ability)
10
+ @controller = controller
11
+ @controller.instance_variable_set '@ability', ability
12
+ @controller.extend ControllerExtension
13
+ @controller.current_ability.authorize! :access, :rails_admin
14
+ end
15
+
16
+ # This method is called in every controller action and should raise an exception
17
+ # when the authorization fails. The first argument is the name of the controller
18
+ # action as a symbol (:create, :bulk_delete, etc.). The second argument is the
19
+ # AbstractModel instance that applies. The third argument is the actual model
20
+ # instance if it is available.
21
+ def authorize(action, abstract_model = nil, model_object = nil)
22
+ @controller.current_ability.authorize!(action, model_object || abstract_model && abstract_model.model) if action
23
+ end
24
+
25
+ # This method is called primarily from the view to determine whether the given user
26
+ # has access to perform the action on a given model. It should return true when authorized.
27
+ # This takes the same arguments as +authorize+. The difference is that this will
28
+ # return a boolean whereas +authorize+ will raise an exception when not authorized.
29
+ def authorized?(action, abstract_model = nil, model_object = nil)
30
+ @controller.current_ability.can?(action, model_object || abstract_model && abstract_model.model) if action
31
+ end
32
+
33
+ # This is called when needing to scope a database query. It is called within the list
34
+ # and bulk_delete/destroy actions and should return a scope which limits the records
35
+ # to those which the user can perform the given action on.
36
+ def query(action, abstract_model)
37
+ abstract_model.model.accessible_by(@controller.current_ability, action)
38
+ end
39
+
40
+ # This is called in the new/create actions to determine the initial attributes for new
41
+ # records. It should return a hash of attributes which match what the user
42
+ # is authorized to create.
43
+ def attributes_for(action, abstract_model)
44
+ @controller.current_ability.attributes_for(action, abstract_model && abstract_model.model)
45
+ end
46
+
47
+ private
48
+
49
+ module ControllerExtension
50
+ def current_ability
51
+ # use _current_user instead of default current_user so it works with
52
+ # whatever current user method is defined with RailsAdmin
53
+ @current_ability ||= @ability.new(_current_user)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end