decidim 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (360) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.json +2 -1
  3. data/Gemfile.lock +121 -112
  4. data/README.md +28 -10
  5. data/Rakefile +1 -1
  6. data/decidim-admin/README.md +1 -1
  7. data/decidim-admin/app/assets/stylesheets/decidim/admin/_sidebar.scss +30 -1
  8. data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +3 -0
  9. data/decidim-admin/app/assets/stylesheets/decidim/admin/application.scss +3 -0
  10. data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +4 -1
  11. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_admin.rb +26 -7
  12. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_group.rb +54 -0
  13. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_step.rb +0 -1
  14. data/decidim-admin/app/commands/decidim/admin/destroy_participatory_process_step.rb +3 -1
  15. data/decidim-admin/app/commands/decidim/admin/hide_resource.rb +37 -0
  16. data/decidim-admin/app/commands/decidim/admin/reorder_participatory_process_steps.rb +1 -0
  17. data/decidim-admin/app/commands/decidim/admin/unreport_resource.rb +33 -0
  18. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +4 -2
  19. data/decidim-admin/app/commands/decidim/admin/update_participatory_process_group.rb +57 -0
  20. data/decidim-admin/app/commands/decidim/admin/update_participatory_process_step.rb +1 -2
  21. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +4 -0
  22. data/decidim-admin/app/controllers/decidim/admin/categories_controller.rb +1 -1
  23. data/decidim-admin/app/controllers/decidim/admin/feature_permissions_controller.rb +2 -2
  24. data/decidim-admin/{lib → app/controllers}/decidim/admin/features/base_controller.rb +0 -0
  25. data/decidim-admin/app/controllers/decidim/admin/moderations_controller.rb +64 -0
  26. data/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
  27. data/decidim-admin/app/controllers/decidim/admin/participatory_process_groups_controller.rb +86 -0
  28. data/decidim-admin/app/controllers/decidim/admin/participatory_process_publications_controller.rb +1 -1
  29. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +1 -1
  30. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +1 -1
  31. data/decidim-admin/app/controllers/decidim/admin/participatory_process_steps_controller.rb +1 -1
  32. data/decidim-admin/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +3 -3
  33. data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +3 -2
  34. data/decidim-admin/app/forms/decidim/admin/organization_form.rb +1 -0
  35. data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +12 -1
  36. data/decidim-admin/app/forms/decidim/admin/participatory_process_group_form.rb +23 -0
  37. data/decidim-admin/app/forms/decidim/admin/participatory_process_step_form.rb +0 -1
  38. data/decidim-admin/app/forms/decidim/admin/participatory_process_user_role_form.rb +5 -1
  39. data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
  40. data/decidim-admin/app/helpers/decidim/admin/process_groups_for_select_helper.rb +20 -0
  41. data/decidim-admin/app/helpers/decidim/admin/processes_for_select_helper.rb +22 -0
  42. data/decidim-admin/app/models/decidim/admin/abilities/admin_user.rb +2 -0
  43. data/decidim-admin/app/models/decidim/admin/abilities/participatory_process_admin.rb +4 -0
  44. data/decidim-admin/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
  45. data/decidim-admin/app/queries/decidim/admin/process_admins.rb +43 -0
  46. data/decidim-admin/app/views/decidim/admin/moderations/index.html.erb +65 -0
  47. data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +4 -0
  48. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/_form.html.erb +17 -0
  49. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/edit.html.erb +13 -0
  50. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/index.html.erb +38 -0
  51. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/new.html.erb +11 -0
  52. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/show.html.erb +23 -0
  53. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +0 -4
  54. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/show.html.erb +4 -5
  55. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +27 -24
  56. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +10 -1
  57. data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +15 -1
  58. data/decidim-admin/app/views/layouts/decidim/admin/_header.html.erb +1 -0
  59. data/decidim-admin/app/views/layouts/decidim/admin/_language_chooser.html.erb +14 -0
  60. data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +2 -0
  61. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +5 -0
  62. data/decidim-admin/config/i18n-tasks.yml +3 -1
  63. data/decidim-admin/config/locales/ca.yml +83 -3
  64. data/decidim-admin/config/locales/en.yml +81 -1
  65. data/decidim-admin/config/locales/es.yml +81 -1
  66. data/decidim-admin/config/locales/eu.yml +340 -1
  67. data/decidim-admin/config/locales/fi.yml +464 -0
  68. data/decidim-admin/config/routes.rb +8 -0
  69. data/decidim-admin/db/seeds.rb +1 -1
  70. data/decidim-admin/lib/decidim/admin/engine.rb +1 -0
  71. data/decidim-admin/spec/commands/create_participatory_process_admin_spec.rb +10 -4
  72. data/decidim-admin/spec/commands/create_participatory_process_spec.rb +6 -1
  73. data/decidim-admin/spec/commands/hide_resource_spec.rb +41 -0
  74. data/decidim-admin/spec/commands/unreport_resource_spec.rb +42 -0
  75. data/decidim-admin/spec/commands/update_organization_spec.rb +1 -0
  76. data/decidim-admin/spec/features/admin_invite_spec.rb +1 -0
  77. data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +1 -1
  78. data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +1 -1
  79. data/decidim-admin/spec/features/admin_manages_participatory_process_groups_spec.rb +107 -0
  80. data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +5 -0
  81. data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +11 -4
  82. data/decidim-admin/spec/forms/organization_form_spec.rb +2 -0
  83. data/decidim-admin/spec/forms/participatory_process_group_form_spec.rb +86 -0
  84. data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +0 -10
  85. data/decidim-admin/spec/forms/participatory_process_user_role_form_spec.rb +4 -0
  86. data/decidim-admin/spec/models/abilities/admin_user_spec.rb +3 -2
  87. data/decidim-admin/spec/models/abilities/participatory_process_admin_spec.rb +7 -0
  88. data/decidim-admin/spec/queries/process_admins_spec.rb +23 -0
  89. data/decidim-admin/spec/shared/manage_process_admins_examples.rb +2 -0
  90. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +0 -10
  91. data/decidim-api/decidim-api.gemspec +1 -1
  92. data/decidim-budgets/app/commands/decidim/budgets/add_line_item.rb +9 -1
  93. data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +13 -1
  94. data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +5 -1
  95. data/decidim-budgets/app/models/decidim/budgets/order.rb +3 -0
  96. data/decidim-budgets/app/models/decidim/budgets/project.rb +9 -1
  97. data/decidim-budgets/app/services/decidim/budgets/project_search.rb +0 -5
  98. data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +5 -3
  99. data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +9 -0
  100. data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +1 -0
  101. data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +2 -2
  102. data/decidim-budgets/app/views/decidim/budgets/projects/_filters_small_view.html.erb +18 -0
  103. data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +17 -2
  104. data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +2 -2
  105. data/decidim-budgets/app/views/decidim/budgets/projects/_tags.html.erb +1 -1
  106. data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +2 -1
  107. data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +7 -1
  108. data/decidim-budgets/config/i18n-tasks.yml +1 -0
  109. data/decidim-budgets/config/locales/ca.yml +18 -3
  110. data/decidim-budgets/config/locales/en.yml +15 -0
  111. data/decidim-budgets/config/locales/es.yml +17 -2
  112. data/decidim-budgets/config/locales/eu.yml +97 -1
  113. data/decidim-budgets/config/locales/fi.yml +123 -0
  114. data/decidim-budgets/db/migrate/20170215132708_add_reference_to_projects.rb +7 -0
  115. data/decidim-budgets/lib/decidim/budgets/feature.rb +4 -2
  116. data/decidim-budgets/lib/decidim/budgets/seeds/Exampledocument.pdf +0 -0
  117. data/decidim-budgets/lib/decidim/budgets/seeds/city.jpeg +0 -0
  118. data/decidim-budgets/lib/decidim/budgets/test/factories.rb +21 -1
  119. data/decidim-budgets/spec/commands/add_line_item_spec.rb +10 -1
  120. data/decidim-budgets/spec/features/comments_spec.rb +10 -0
  121. data/decidim-budgets/spec/features/orders_spec.rb +47 -3
  122. data/decidim-budgets/spec/models/project_spec.rb +16 -1
  123. data/decidim-budgets/spec/services/project_search_spec.rb +9 -0
  124. data/decidim-budgets/spec/shared/admin_shared_context.rb +1 -1
  125. data/decidim-budgets/spec/shared/manage_projects_examples.rb +22 -0
  126. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  127. data/decidim-comments/app/commands/decidim/comments/create_comment.rb +9 -1
  128. data/decidim-comments/app/frontend/application/icon.component.jsx +1 -1
  129. data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +11 -10
  130. data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +5 -5
  131. data/decidim-comments/app/frontend/comments/comment.component.jsx +91 -1
  132. data/decidim-comments/app/frontend/comments/comment.component.test.jsx +18 -0
  133. data/decidim-comments/app/frontend/comments/comment_data.fragment.graphql +2 -0
  134. data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +4 -5
  135. data/decidim-comments/app/frontend/comments/comments.query.graphql +1 -0
  136. data/decidim-comments/app/mailers/decidim/comments/comment_notification_mailer.rb +8 -0
  137. data/decidim-comments/app/models/decidim/comments/abilities/admin_user.rb +25 -0
  138. data/decidim-comments/app/models/decidim/comments/abilities/process_admin_user.rb +33 -0
  139. data/decidim-comments/app/models/decidim/comments/comment.rb +7 -1
  140. data/decidim-comments/app/models/decidim/comments/comment_vote.rb +3 -1
  141. data/decidim-comments/app/queries/decidim/comments/sorted_comments.rb +1 -0
  142. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/comment_created.html.erb +1 -1
  143. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/reply_created.html.erb +1 -1
  144. data/decidim-comments/config/locales/ca.yml +11 -0
  145. data/decidim-comments/config/locales/en.yml +12 -2
  146. data/decidim-comments/config/locales/es.yml +11 -0
  147. data/decidim-comments/config/locales/eu.yml +38 -1
  148. data/decidim-comments/config/locales/fi.yml +66 -0
  149. data/decidim-comments/lib/decidim/comments.rb +2 -0
  150. data/decidim-comments/lib/decidim/comments/admin.rb +9 -0
  151. data/decidim-comments/lib/decidim/comments/admin_engine.rb +22 -0
  152. data/decidim-comments/lib/decidim/comments/api/comment_type.rb +12 -0
  153. data/decidim-comments/lib/decidim/comments/commentable.rb +0 -2
  154. data/decidim-comments/lib/decidim/comments/engine.rb +1 -0
  155. data/decidim-comments/lib/decidim/comments/test/factories.rb +3 -0
  156. data/decidim-comments/spec/commands/create_comment_spec.rb +11 -0
  157. data/decidim-comments/spec/features/admin_manages_comments_spec.rb +23 -0
  158. data/decidim-comments/spec/features/comments_spec.rb +5 -173
  159. data/decidim-comments/spec/features/process_admin_manages_comments_spec.rb +24 -0
  160. data/decidim-comments/spec/features/report_comment_spec.rb +20 -0
  161. data/decidim-comments/spec/models/abilities/admin_user_spec.rb +20 -0
  162. data/decidim-comments/spec/models/abilities/process_admin_user_spec.rb +21 -0
  163. data/decidim-comments/spec/models/comment_spec.rb +1 -0
  164. data/decidim-comments/spec/queries/sorted_comments_spec.rb +11 -0
  165. data/decidim-comments/spec/shared/admin_shared_context.rb +11 -0
  166. data/decidim-comments/spec/types/comment_type_spec.rb +19 -0
  167. data/decidim-dev/config/locales/ca.yml +1 -1
  168. data/decidim-dev/config/locales/en.yml +1 -1
  169. data/decidim-dev/config/locales/es.yml +1 -1
  170. data/decidim-dev/config/locales/eu.yml +1 -1
  171. data/decidim-dev/config/locales/fi.yml +5 -0
  172. data/decidim-dev/decidim-dev.gemspec +3 -1
  173. data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +1 -28
  174. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +11 -0
  175. data/{decidim-meetings/spec/support → decidim-dev/lib/decidim/dev/test/rspec_support}/geocoder.rb +5 -1
  176. data/decidim-dev/lib/decidim/dev/test/rspec_support/html_matchers.rb +6 -0
  177. data/decidim-dev/lib/decidim/dev/test/rspec_support/i18n.rb +3 -0
  178. data/decidim-dev/lib/decidim/dev/test/rspec_support/webmock.rb +2 -0
  179. data/decidim-dev/lib/decidim/dev/test/spec_helper.rb +37 -0
  180. data/decidim-dev/lib/generators/decidim/dummy_generator.rb +5 -0
  181. data/decidim-dev/lib/generators/decidim/templates/autoprefixer.yml +8 -0
  182. data/decidim-dev/lib/generators/decidim/templates/autoprefixer_initializer.rb +16 -0
  183. data/decidim-meetings/app/commands/decidim/meetings/admin/create_meeting.rb +6 -17
  184. data/decidim-meetings/app/commands/decidim/meetings/admin/update_meeting.rb +6 -7
  185. data/decidim-meetings/app/controllers/decidim/meetings/application_controller.rb +1 -0
  186. data/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb +14 -9
  187. data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +12 -1
  188. data/decidim-meetings/app/helpers/decidim/meetings/admin/application_helper.rb +1 -1
  189. data/decidim-meetings/app/helpers/decidim/meetings/application_helper.rb +2 -1
  190. data/decidim-meetings/app/helpers/decidim/meetings/map_helper.rb +10 -32
  191. data/decidim-meetings/app/models/decidim/meetings/meeting.rb +2 -1
  192. data/decidim-meetings/app/services/decidim/meetings/meeting_search.rb +0 -5
  193. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +5 -3
  194. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +5 -3
  195. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +1 -1
  196. data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +11 -1
  197. data/decidim-meetings/app/views/decidim/meetings/meetings/_tags.html.erb +1 -1
  198. data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +27 -32
  199. data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +2 -2
  200. data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +2 -15
  201. data/decidim-meetings/config/i18n-tasks.yml +1 -1
  202. data/decidim-meetings/config/locales/ca.yml +18 -3
  203. data/decidim-meetings/config/locales/en.yml +20 -3
  204. data/decidim-meetings/config/locales/es.yml +18 -3
  205. data/decidim-meetings/config/locales/eu.yml +75 -1
  206. data/decidim-meetings/config/locales/fi.yml +98 -0
  207. data/decidim-meetings/db/migrate/20170215132546_add_reference_to_meetings.rb +7 -0
  208. data/decidim-meetings/decidim-meetings.gemspec +0 -2
  209. data/decidim-meetings/lib/decidim/meetings/admin_engine.rb +0 -26
  210. data/decidim-meetings/lib/decidim/meetings/list_engine.rb +1 -9
  211. data/decidim-meetings/spec/commands/create_meeting_spec.rb +6 -14
  212. data/decidim-meetings/spec/commands/update_meeting_spec.rb +10 -29
  213. data/decidim-meetings/spec/features/explore_meetings_spec.rb +37 -13
  214. data/decidim-meetings/spec/forms/meeting_form_spec.rb +15 -1
  215. data/decidim-meetings/spec/models/meeting_spec.rb +1 -0
  216. data/decidim-meetings/spec/services/meeting_search_spec.rb +9 -0
  217. data/decidim-meetings/spec/shared/admin_shared_context.rb +1 -1
  218. data/decidim-meetings/spec/shared/manage_meetings_examples.rb +97 -1
  219. data/decidim-meetings/spec/spec_helper.rb +0 -5
  220. data/decidim-pages/app/commands/decidim/pages/admin/update_page.rb +1 -4
  221. data/decidim-pages/app/commands/decidim/pages/create_page.rb +1 -4
  222. data/decidim-pages/app/forms/decidim/pages/admin/page_form.rb +0 -3
  223. data/decidim-pages/app/models/decidim/pages/page.rb +8 -12
  224. data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +0 -1
  225. data/decidim-pages/app/views/decidim/pages/application/show.html.erb +0 -1
  226. data/decidim-pages/config/locales/ca.yml +0 -1
  227. data/decidim-pages/config/locales/en.yml +0 -1
  228. data/decidim-pages/config/locales/es.yml +0 -1
  229. data/decidim-pages/config/locales/eu.yml +14 -1
  230. data/decidim-pages/config/locales/fi.yml +22 -0
  231. data/decidim-pages/db/migrate/20170220091402_remove_page_feature_titles.rb +5 -0
  232. data/decidim-pages/lib/decidim/pages/engine.rb +1 -0
  233. data/decidim-pages/lib/decidim/pages/feature.rb +4 -1
  234. data/decidim-pages/spec/commands/create_page_spec.rb +1 -2
  235. data/decidim-pages/spec/commands/update_page_spec.rb +0 -1
  236. data/decidim-pages/spec/factories.rb +6 -1
  237. data/decidim-pages/spec/features/admin_spec.rb +1 -17
  238. data/decidim-pages/spec/features/comments_spec.rb +10 -0
  239. data/decidim-pages/spec/features/page_show_spec.rb +1 -10
  240. data/decidim-pages/spec/forms/page_form_spec.rb +0 -21
  241. data/decidim-pages/spec/models/page_spec.rb +2 -4
  242. data/decidim-proposals/app/commands/decidim/proposals/admin/create_proposal.rb +4 -1
  243. data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +4 -1
  244. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +4 -0
  245. data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +12 -6
  246. data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb +13 -2
  247. data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +13 -2
  248. data/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb +3 -0
  249. data/decidim-proposals/app/helpers/decidim/proposals/map_helper.rb +19 -0
  250. data/decidim-proposals/app/helpers/decidim/proposals/proposal_order_helper.rb +16 -0
  251. data/decidim-proposals/app/models/decidim/proposals/abilities/admin_user.rb +2 -0
  252. data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +3 -0
  253. data/decidim-proposals/app/models/decidim/proposals/abilities/process_admin_user.rb +2 -1
  254. data/decidim-proposals/app/models/decidim/proposals/proposal.rb +12 -3
  255. data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +0 -5
  256. data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
  257. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +8 -2
  258. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +12 -14
  259. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +2 -2
  260. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +1 -1
  261. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposals.html.erb +1 -1
  262. data/decidim-proposals/app/views/decidim/proposals/proposals/_tags.html.erb +1 -1
  263. data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +27 -0
  264. data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +8 -2
  265. data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +18 -1
  266. data/decidim-proposals/config/i18n-tasks.yml +3 -1
  267. data/decidim-proposals/config/locales/ca.yml +11 -8
  268. data/decidim-proposals/config/locales/en.yml +9 -6
  269. data/decidim-proposals/config/locales/es.yml +14 -11
  270. data/decidim-proposals/config/locales/eu.yml +119 -1
  271. data/decidim-proposals/config/locales/fi.yml +143 -0
  272. data/decidim-proposals/db/migrate/20170215113152_create_proposal_reports.rb +14 -0
  273. data/decidim-proposals/db/migrate/20170215131720_add_report_count_to_proposals.rb +5 -0
  274. data/decidim-proposals/db/migrate/20170215132030_add_reference_to_proposals.rb +7 -0
  275. data/decidim-proposals/db/migrate/20170220152416_add_hidden_at_to_proposals.rb +5 -0
  276. data/decidim-proposals/db/migrate/20170228105156_add_geolocalization_fields_to_proposals.rb +7 -0
  277. data/decidim-proposals/db/migrate/20170307085300_migrate_proposal_reports_data_to_reports.rb +26 -0
  278. data/decidim-proposals/decidim-proposals.gemspec +1 -1
  279. data/decidim-proposals/lib/decidim/proposals/feature.rb +4 -3
  280. data/decidim-proposals/lib/decidim/proposals/test/factories.rb +8 -0
  281. data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +3 -0
  282. data/decidim-proposals/spec/features/comments_spec.rb +11 -0
  283. data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +3 -0
  284. data/decidim-proposals/spec/features/proposals_spec.rb +98 -15
  285. data/decidim-proposals/spec/features/report_proposal_spec.rb +19 -0
  286. data/decidim-proposals/spec/helpers/proposal_order_helper_spec.rb +30 -0
  287. data/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb +2 -0
  288. data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +9 -0
  289. data/decidim-proposals/spec/shared/create_proposal_examples.rb +29 -2
  290. data/decidim-proposals/spec/shared/manage_proposals_examples.rb +95 -26
  291. data/decidim-proposals/spec/shared/proposal_form_examples.rb +29 -1
  292. data/decidim-results/app/forms/decidim/results/admin/result_form.rb +9 -1
  293. data/decidim-results/app/models/decidim/results/result.rb +2 -1
  294. data/decidim-results/app/services/decidim/results/result_search.rb +0 -5
  295. data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +5 -3
  296. data/decidim-results/app/views/decidim/results/results/_filters.html.erb +2 -2
  297. data/decidim-results/app/views/decidim/results/results/_filters_small_view.html.erb +18 -0
  298. data/decidim-results/app/views/decidim/results/results/_tags.html.erb +1 -1
  299. data/decidim-results/app/views/decidim/results/results/index.html.erb +1 -0
  300. data/decidim-results/app/views/decidim/results/results/show.html.erb +1 -0
  301. data/decidim-results/config/i18n-tasks.yml +2 -0
  302. data/decidim-results/config/locales/ca.yml +15 -2
  303. data/decidim-results/config/locales/en.yml +15 -2
  304. data/decidim-results/config/locales/es.yml +15 -2
  305. data/decidim-results/config/locales/eu.yml +57 -1
  306. data/decidim-results/config/locales/fi.yml +77 -0
  307. data/decidim-results/db/migrate/20170215132624_add_reference_to_results.rb +7 -0
  308. data/decidim-results/lib/decidim/results/test/factories.rb +6 -0
  309. data/decidim-results/spec/features/comments_spec.rb +10 -0
  310. data/decidim-results/spec/features/explore_results_spec.rb +27 -0
  311. data/decidim-results/spec/models/result_spec.rb +1 -0
  312. data/decidim-results/spec/services/result_search_spec.rb +9 -0
  313. data/decidim-results/spec/shared/admin_shared_context.rb +1 -1
  314. data/decidim-system/README.md +45 -8
  315. data/decidim-system/app/commands/decidim/system/register_organization.rb +3 -0
  316. data/decidim-system/app/commands/decidim/system/update_organization.rb +2 -0
  317. data/decidim-system/app/controllers/decidim/system/application_controller.rb +2 -0
  318. data/decidim-system/app/forms/decidim/system/register_organization_form.rb +1 -0
  319. data/decidim-system/app/forms/decidim/system/update_organization_form.rb +18 -0
  320. data/decidim-system/app/views/decidim/system/organizations/edit.html.erb +10 -0
  321. data/decidim-system/app/views/decidim/system/organizations/new.html.erb +33 -19
  322. data/decidim-system/config/locales/ca.yml +3 -0
  323. data/decidim-system/config/locales/en.yml +3 -0
  324. data/decidim-system/config/locales/es.yml +3 -0
  325. data/decidim-system/config/locales/eu.yml +3 -0
  326. data/decidim-system/config/locales/fi.yml +68 -0
  327. data/decidim-system/db/seeds.rb +1 -1
  328. data/decidim-system/decidim-system.gemspec +1 -1
  329. data/decidim-system/lib/decidim/system/engine.rb +1 -0
  330. data/decidim-system/spec/commands/decidim/system/register_organization_spec.rb +3 -0
  331. data/decidim-system/spec/commands/decidim/system/update_organization_spec.rb +53 -0
  332. data/decidim-system/spec/features/organizations_spec.rb +5 -0
  333. data/docs/analytics.md +23 -0
  334. data/docs/how_to_create_a_plugin.md +3 -1
  335. data/lib/generators/decidim/app_generator.rb +4 -0
  336. data/lib/generators/decidim/demo_generator.rb +1 -1
  337. data/lib/generators/decidim/install_generator.rb +8 -1
  338. data/lib/generators/decidim/review_app_generator.rb +53 -0
  339. data/lib/generators/decidim/templates/Gemfile.erb +1 -5
  340. data/lib/generators/decidim/templates/app.json.erb +1 -1
  341. data/lib/generators/decidim/templates/carrierwave.rb +2 -2
  342. data/lib/generators/decidim/templates/decidim_controller.rb.erb +5 -0
  343. data/lib/generators/decidim/templates/initializer.rb +4 -0
  344. data/package.json +4 -4
  345. data/yarn.lock +106 -165
  346. metadata +100 -54
  347. data/decidim-meetings/app/assets/config/decidim_meetings_manifest.js +0 -2
  348. data/decidim-meetings/app/assets/javascripts/decidim/meetings/map.js.es6.erb +0 -97
  349. data/decidim-meetings/app/assets/stylesheets/decidim/meetings/map.css +0 -3
  350. data/decidim-meetings/app/services/decidim/meetings/static_map_generator.rb +0 -50
  351. data/decidim-meetings/app/views/decidim/meetings/meetings/_address_details.html.erb +0 -5
  352. data/decidim-meetings/spec/controllers/meetings_controller_spec.rb +0 -41
  353. data/decidim-meetings/spec/services/static_map_generator_spec.rb +0 -33
  354. data/decidim-meetings/vendor/assets/javascripts/leaflet-svg-icon.js +0 -179
  355. data/decidim-meetings/vendor/assets/javascripts/leaflet-tilelayer-here.js +0 -166
  356. data/decidim-meetings/vendor/assets/javascripts/leaflet.js +0 -9
  357. data/decidim-meetings/vendor/assets/javascripts/leaflet.markercluster.js +0 -7
  358. data/decidim-meetings/vendor/assets/stylesheets/MarkerCluster.Default.css +0 -60
  359. data/decidim-meetings/vendor/assets/stylesheets/MarkerCluster.css +0 -14
  360. data/decidim-meetings/vendor/assets/stylesheets/leaflet.css +0 -624
@@ -7,6 +7,16 @@
7
7
  <%= f.text_field :host %>
8
8
  </div>
9
9
 
10
+ <div class="field">
11
+ <%= f.text_area :secondary_hosts %>
12
+ <p class="help-text"><%= t(".secondary_hosts_hint") %></p>
13
+ </div>
14
+
15
+ <div class="field">
16
+ <%= f.label :available_authorizations %>
17
+ <%= f.collection_check_boxes :available_authorizations, Decidim.authorization_handlers, :name, :name %>
18
+ </div>
19
+
10
20
  <div class="actions">
11
21
  <%= f.submit t("decidim.system.actions.save") %>
12
22
  </div>
@@ -7,10 +7,19 @@
7
7
  <%= f.text_field :name, autofocus: true %>
8
8
  </div>
9
9
 
10
+ <div class="field">
11
+ <%= f.text_field :reference_prefix %>
12
+ </div>
13
+
10
14
  <div class="field">
11
15
  <%= f.text_field :host %>
12
16
  </div>
13
17
 
18
+ <div class="field">
19
+ <%= f.text_area :secondary_hosts %>
20
+ <p class="help-text"><%= t(".secondary_hosts_hint") %></p>
21
+ </div>
22
+
14
23
  <div class="field">
15
24
  <%= f.text_field :organization_admin_name %>
16
25
  </div>
@@ -20,29 +29,34 @@
20
29
  </div>
21
30
 
22
31
  <%= f.fields_for :locales do |fields| %>
23
- <div class="field">
24
- <%= f.label :organization_locales, '', class: @form.respond_to?(:errors) && @form.errors[:default_locale].present? ? "is-invalid-label" : "" %>
25
- <table>
26
- <thead>
27
- <tr>
28
- <td>Locale</td>
29
- <td>Enabled <%= f.error_for(:available_locales) %></td>
30
- <td>Default? <%= f.error_for(:default_locale) %></td>
31
- </tr>
32
- </thead>
33
- <tbody>
34
- <% localized_locales.each do |locale| %>
32
+ <div class="field">
33
+ <%= f.label :organization_locales, '', class: @form.respond_to?(:errors) && @form.errors[:default_locale].present? ? "is-invalid-label" : "" %>
34
+ <table>
35
+ <thead>
35
36
  <tr>
36
- <td><%= locale.name %></td>
37
- <td><%= check_box_tag "organization[available_locales][#{locale.id}]", locale.id, @form.available_locales.include?(locale.id) %></td>
38
- <td><%= radio_button_tag "organization[default_locale]", locale.id, @form.default_locale == locale.id %></td>
37
+ <td>Locale</td>
38
+ <td>Enabled <%= f.error_for(:available_locales) %></td>
39
+ <td>Default? <%= f.error_for(:default_locale) %></td>
39
40
  </tr>
40
- <% end %>
41
- </tbody>
42
- </table>
43
- </div>
41
+ </thead>
42
+ <tbody>
43
+ <% localized_locales.each do |locale| %>
44
+ <tr>
45
+ <td><%= locale.name %></td>
46
+ <td><%= check_box_tag "organization[available_locales][#{locale.id}]", locale.id, @form.available_locales.include?(locale.id) %></td>
47
+ <td><%= radio_button_tag "organization[default_locale]", locale.id, @form.default_locale == locale.id %></td>
48
+ </tr>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
52
+ </div>
44
53
  <% end %>
45
54
 
55
+ <div class="field">
56
+ <%= f.label :available_authorizations %>
57
+ <%= f.collection_check_boxes :available_authorizations, Decidim.authorization_handlers, :name, :name %>
58
+ </div>
59
+
46
60
  <div class="actions">
47
61
  <%= f.submit t("decidim.system.models.organization.actions.save_and_invite") %>
48
62
  </div>
@@ -54,9 +54,12 @@ ca:
54
54
  create:
55
55
  error: S'ha produït un error en crear una nova organització.
56
56
  success: L'organització s'ha creat correctament.
57
+ edit:
58
+ secondary_hosts_hint: Introdueix cada un d'ells en una nova línia
57
59
  index:
58
60
  title: Organitzacions
59
61
  new:
62
+ secondary_hosts_hint: Introdueix cada un d'ells en una nova línia
60
63
  title: Nova organització
61
64
  update:
62
65
  error: S'ha produït un error en actualitzar aquesta organització.
@@ -55,9 +55,12 @@ en:
55
55
  create:
56
56
  error: There was an error when creating a new organization.
57
57
  success: Organization created successfully.
58
+ edit:
59
+ secondary_hosts_hint: Enter each one of them in a new line
58
60
  index:
59
61
  title: Organizations
60
62
  new:
63
+ secondary_hosts_hint: Enter each one of them in a new line
61
64
  title: New organization
62
65
  update:
63
66
  error: There was an error when updating this organization.
@@ -54,9 +54,12 @@ es:
54
54
  create:
55
55
  error: Se ha producido un error al crear una nueva organización.
56
56
  success: Organización creada correctamente.
57
+ edit:
58
+ secondary_hosts_hint: Introduce cada uno de ellos en una nueva línea
57
59
  index:
58
60
  title: Organizaciones
59
61
  new:
62
+ secondary_hosts_hint: Introduce cada uno de ellos en una nueva línea
60
63
  title: Nueva organización
61
64
  update:
62
65
  error: Se ha producido un error al actualizar esta organización.
@@ -1,6 +1,9 @@
1
1
  eu:
2
2
  decidim:
3
3
  system:
4
+ admins:
5
+ create:
6
+ success: Admin sortu da
4
7
  models:
5
8
  admin:
6
9
  fields:
@@ -0,0 +1,68 @@
1
+ fi:
2
+ decidim:
3
+ system:
4
+ actions:
5
+ confirm_destroy: Haluatko varmasti poistaa tämän?
6
+ destroy: Poista
7
+ edit: Muokkaa
8
+ new: Uusi %{name}
9
+ save: Tallenna
10
+ title: Toiminnot
11
+ admins:
12
+ create:
13
+ error: Uuden hallinnoijan luonnissa tapahtui virhe.
14
+ success: Hallinnoija luotu onnistuneesti
15
+ destroy:
16
+ success: Hallinnoija poistettu onnistuneesti
17
+ edit:
18
+ title: Muokkaa hallinnoijaa
19
+ update: Päivitä hallinnoija
20
+ index:
21
+ title: Hallinnoijat
22
+ new:
23
+ create: Luo hallinnoija
24
+ title: Uusi hallinnoija
25
+ update:
26
+ error: Hallinnoijan päivityksessä tapahtui virhe.
27
+ success: Hallinnoija päivitetty onnistuneesti
28
+ default_pages:
29
+ placeholders:
30
+ content: Lisää sisältöä tälle sivulle hallintapaneelista.
31
+ title: Oletusotsikko sivulle %{page}
32
+ menu:
33
+ admins: Hallinnoijat
34
+ dashboard: Hallintapaneeli
35
+ organizations: Organisaatiot
36
+ models:
37
+ admin:
38
+ fields:
39
+ created_at: Luotu
40
+ email: Sähköposti
41
+ name: Hallinnoija
42
+ validations:
43
+ email_uniqueness: toinen hallinnointikäyttäjä on jo olemassa samalla sähköpostilla
44
+ organization:
45
+ actions:
46
+ save_and_invite: Luo organisaatioita ja kutsu hallinnointikäyttäjiä
47
+ fields:
48
+ created_at: Luotu
49
+ name: Nimi
50
+ name: Organisaatio
51
+ page:
52
+ name: Sivu
53
+ organizations:
54
+ create:
55
+ error: Uuden organisaation luonnissa tapahtui virhe.
56
+ success: Organisaatio luotu onnistuneesti.
57
+ edit:
58
+ secondary_hosts_hint: Syötä jokainen niistä omalle rivilleen
59
+ index:
60
+ title: Organisaatiot
61
+ new:
62
+ secondary_hosts_hint: Syötä jokainen niistä omalle rivilleen
63
+ title: Uusi organisaatio
64
+ update:
65
+ error: Organisaation päivityksessä tapahtui virhe.
66
+ success: Organisaatio päivitetty onnistuneesti.
67
+ titles:
68
+ dashboard: Hallintapaneeli
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  if !Rails.env.production? || ENV["SEED"]
3
3
  Decidim::System::Admin.create!(
4
- email: "system@decidim.org",
4
+ email: "system@example.org",
5
5
  password: "decidim123456",
6
6
  password_confirmation: "decidim123456"
7
7
  )
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_dependency "devise", "~> 4.2"
20
20
  s.add_dependency "devise-i18n", "~> 1.1.0"
21
21
  s.add_dependency "rectify", "~> 0.8.0"
22
- s.add_dependency "devise_invitable", "~> 1.7.0"
22
+ s.add_dependency "devise_invitable", "~> 1.7.1"
23
23
  s.add_dependency "sassc-rails", "~> 1.3.0"
24
24
  s.add_dependency "jquery-rails", "~> 4.2.2"
25
25
  s.add_dependency "foundation_rails_helper", "~> 3.0.0.rc"
@@ -9,6 +9,7 @@ require "jquery-rails"
9
9
  require "sassc-rails"
10
10
  require "foundation-rails"
11
11
  require "foundation_rails_helper"
12
+ require "autoprefixer-rails"
12
13
  require "rectify"
13
14
 
14
15
  module Decidim
@@ -16,6 +16,8 @@ module Decidim
16
16
  {
17
17
  name: "Gotham City",
18
18
  host: "decide.gotham.gov",
19
+ secondary_hosts: "foo.gotham.gov\r\n\r\nbar.gotham.gov",
20
+ reference_prefix: "JKR",
19
21
  organization_admin_name: "Fiorello Henry La Guardia",
20
22
  organization_admin_email: "f.laguardia@gotham.gov",
21
23
  available_locales: ["en"],
@@ -33,6 +35,7 @@ module Decidim
33
35
 
34
36
  expect(organization.name).to eq("Gotham City")
35
37
  expect(organization.host).to eq("decide.gotham.gov")
38
+ expect(organization.secondary_hosts).to match_array(["foo.gotham.gov", "bar.gotham.gov"])
36
39
  end
37
40
 
38
41
  it "invites a user as organization admin" do
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+ require "spec_helper"
3
+
4
+ module Decidim
5
+ module System
6
+ describe UpdateOrganization, :db do
7
+ describe "call" do
8
+ let(:form) do
9
+ UpdateOrganizationForm.new(params)
10
+ end
11
+ let(:organization) { create :organization, name: "My organization" }
12
+
13
+ let(:command) { described_class.new(organization.id, form) }
14
+
15
+ context "when the form is valid" do
16
+ let(:params) do
17
+ {
18
+ name: "Gotham City",
19
+ host: "decide.gotham.gov",
20
+ secondary_hosts: "foo.gotham.gov\r\n\r\nbar.gotham.gov"
21
+ }
22
+ end
23
+
24
+ it "returns a valid response" do
25
+ expect { command.call }.to broadcast(:ok)
26
+ end
27
+
28
+ it "updates the organization" do
29
+ expect { command.call }.to change { Organization.count }.by(1)
30
+ organization = Organization.last
31
+
32
+ expect(organization.name).to eq("Gotham City")
33
+ expect(organization.host).to eq("decide.gotham.gov")
34
+ expect(organization.secondary_hosts).to match_array(["foo.gotham.gov", "bar.gotham.gov"])
35
+ end
36
+ end
37
+
38
+ context "when the form is invalid" do
39
+ let(:params) do
40
+ {
41
+ name: nil,
42
+ host: "foo.com"
43
+ }
44
+ end
45
+
46
+ it "returns an invalid response" do
47
+ expect { command.call }.to broadcast(:invalid)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -20,10 +20,13 @@ describe "Organizations", type: :feature do
20
20
  it "creates a new organization" do
21
21
  fill_in "Name", with: "Citizen Corp"
22
22
  fill_in "Host", with: "www.citizen.corp"
23
+ fill_in "Secondary hosts", with: "foo.citizen.corp\n\rbar.citizen.corp"
24
+ fill_in "Reference prefix", with: "CCORP"
23
25
  fill_in "Organization admin name", with: "City Mayor"
24
26
  fill_in "Organization admin email", with: "mayor@citizen.corp"
25
27
  check "organization_available_locales_en"
26
28
  choose "organization_default_locale_en"
29
+ check "Decidim::DummyAuthorizationHandler"
27
30
  click_button "Create organization & invite admin"
28
31
 
29
32
  expect(page).to have_css("div.flash.success")
@@ -53,6 +56,8 @@ describe "Organizations", type: :feature do
53
56
  it "edits the data" do
54
57
  fill_in "Name", with: "Citizens Rule!"
55
58
  fill_in "Host", with: "www.foo.org"
59
+ fill_in "Secondary hosts", with: "foobar.citizen.corp\n\rbar.citizen.corp"
60
+ check "Decidim::DummyAuthorizationHandler"
56
61
  click_button "Save"
57
62
 
58
63
  expect(page).to have_css("div.flash.success")
data/docs/analytics.md ADDED
@@ -0,0 +1,23 @@
1
+ # Analytics
2
+
3
+ Decidim, for a matter of privacy, doesn't come bundled (or associated with) any analytics service, leaving that part to the developer.
4
+
5
+ Adding analytics is quite easy. We've set up a partial in place for that. Just create a view in your app under `app/views/layouts/decidim/_head_extra.html.erb` with your content.
6
+
7
+ Here's an example for Piwik:
8
+
9
+ ```
10
+ <script type="text/javascript">
11
+ var _paq = _paq || [];
12
+ // tracker methods like "setCustomDimension" should be called before "trackPageView"
13
+ _paq.push(['trackPageView']);
14
+ _paq.push(['enableLinkTracking']);
15
+ (function() {
16
+ var u="?????";
17
+ _paq.push(['setTrackerUrl', u+'piwik.php']);
18
+ _paq.push(['setSiteId', '?']);
19
+ var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
20
+ g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
21
+ })();
22
+ </script>
23
+ ```
@@ -87,6 +87,7 @@ s.add_development_dependency "decidim-dev", Decidim.version
87
87
 
88
88
  ```ruby
89
89
  s.add_dependency "foundation-rails", "~> 6.2.4.0"
90
+ s.add_dependency "autoprefixer-rails", ["~> 6.7", ">= 6.7.4"]
90
91
  s.add_dependency "sass-rails", "~> 5.0.0"
91
92
  s.add_dependency "jquery-rails", "~> 4.0"
92
93
  s.add_dependency "foundation_rails_helper", "~> 2.0.0"
@@ -149,6 +150,7 @@ require "jquery-rails"
149
150
  require "sass-rails"
150
151
  require "foundation-rails"
151
152
  require "foundation_rails_helper"
153
+ require "autoprefixer-rails"
152
154
 
153
155
  module Decidim
154
156
  module <EngineName>
@@ -178,4 +180,4 @@ require "decidim/common_rake"
178
180
  ```ruby
179
181
  ENV["ENGINE_NAME"] = File.dirname(File.dirname(__FILE__)).split("/").last
180
182
  require "decidim/test/base_spec_helper"
181
- ```
183
+ ```
@@ -50,6 +50,10 @@ module Decidim
50
50
  template "database.yml.erb", "config/database.yml", force: true
51
51
  end
52
52
 
53
+ def decidim_controller
54
+ template "decidim_controller.rb.erb", "app/controllers/decidim_controller.rb", force: true
55
+ end
56
+
53
57
  def docker
54
58
  template "Dockerfile.erb", "Dockerfile"
55
59
  template "docker-compose.yml.erb", "docker-compose.yml"
@@ -7,7 +7,7 @@ require_relative "install_generator"
7
7
 
8
8
  module Decidim
9
9
  module Generators
10
- # Modifies an existing decidim app so it can be used as a demo of Dcidim.
10
+ # Modifies an existing decidim app so it can be used as a demo of Decidim.
11
11
  class DemoGenerator < Rails::Generators::Base
12
12
  def source_paths
13
13
  [
@@ -31,7 +31,14 @@ module Decidim
31
31
  end
32
32
 
33
33
  def add_seeds
34
- append_file "db/seeds.rb", "\n# You can remove the 'faker' gem if you don't want Decidim seeds.\nDecidim.seed!"
34
+ append_file("db/seeds.rb", <<-SEEDS_CONTENT)
35
+ # You can remove the 'faker' gem if you don't want Decidim seeds.
36
+ if ENV["HEROKU_APP_NAME"].present?
37
+ ENV["DECIDIM_HOST"] = ENV["HEROKU_APP_NAME"] + ".herokuapp.com"
38
+ ENV["SEED"] = "true"
39
+ end
40
+ Decidim.seed!
41
+ SEEDS_CONTENT
35
42
  end
36
43
 
37
44
  def copy_initializer
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+ require "rails/generators"
3
+ require "rails/generators/rails/app/app_generator"
4
+ require "decidim/core/version"
5
+ require_relative "app_builder"
6
+ require_relative "install_generator"
7
+
8
+ module Decidim
9
+ module Generators
10
+ # Modifies an existing decidim app so it works as a Heroku review app.
11
+ class ReviewAppGenerator < Rails::Generators::Base
12
+ def source_paths
13
+ [
14
+ File.expand_path("../../../../decidim-dev/lib/decidim/dev", __FILE__)
15
+ ]
16
+ end
17
+
18
+ def modify_app_json_file
19
+ gsub_file("app.json", "\"env\": {", <<-APP_JSON_CONTENT)
20
+ "scripts": {
21
+ "postdeploy":"rake db:schema:load db:migrate db:seed"
22
+ },
23
+ "env": {
24
+ "AWS_ACCESS_KEY_ID": {
25
+ "required": true
26
+ },
27
+ "AWS_SECRET_ACCESS_KEY": {
28
+ "required": true
29
+ },
30
+ "HERE_APP_ID": {
31
+ "required": false
32
+ },
33
+ "HERE_APP_CODE": {
34
+ "required": false
35
+ },
36
+ "HEROKU_APP_NAME": {
37
+ "required": true
38
+ },
39
+ APP_JSON_CONTENT
40
+ end
41
+
42
+ def modify_initializer
43
+ gsub_file("config/initializers/decidim.rb", /^end/, <<-INITIALIZER_CONTENT)
44
+
45
+ if ENV["HEROKU_APP_NAME"].present?
46
+ config.base_uploads_path = ENV["HEROKU_APP_NAME"] + "/"
47
+ end
48
+ end
49
+ INITIALIZER_CONTENT
50
+ end
51
+ end
52
+ end
53
+ end