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
@@ -40,8 +40,7 @@ module Decidim
40
40
  title: form.title,
41
41
  start_date: form.start_date,
42
42
  end_date: form.end_date,
43
- description: form.description,
44
- short_description: form.short_description
43
+ description: form.description
45
44
  }
46
45
  end
47
46
  end
@@ -7,7 +7,11 @@ module Decidim
7
7
  include NeedsAuthorization
8
8
  include FormFactory
9
9
  include LocaleSwitcher
10
+ include PayloadInfo
10
11
  helper Decidim::DecidimFormHelper
12
+ helper Decidim::ReplaceButtonsHelper
13
+ helper Decidim::OrganizationScopesHelper
14
+ helper Decidim::TranslationsHelper
11
15
 
12
16
  helper Decidim::LanguageChooserHelper
13
17
 
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing categories.
7
7
  #
8
8
  class CategoriesController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing feature permissions.
7
7
  #
8
8
  class FeaturePermissionsController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -48,7 +48,7 @@ module Decidim
48
48
  end
49
49
 
50
50
  def authorizations
51
- Decidim.authorization_handlers.map(&:handler_name)
51
+ current_organization.available_authorizations.map(&:constantize).map(&:handler_name)
52
52
  end
53
53
 
54
54
  def feature
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # This controller allows admins to manage moderations in a participatory process.
5
+ class ModerationsController < Admin::ApplicationController
6
+ include Concerns::ParticipatoryProcessAdmin
7
+
8
+ helper_method :moderations
9
+
10
+ def index
11
+ authorize! :read, Decidim::Moderation
12
+ end
13
+
14
+ def unreport
15
+ authorize! :unreport, reportable
16
+
17
+ Admin::UnreportResource.call(reportable) do
18
+ on(:ok) do
19
+ flash[:notice] = I18n.t("reportable.unreport.success", scope: "decidim.moderations.admin")
20
+ redirect_to decidim_admin.participatory_process_moderations_path
21
+ end
22
+
23
+ on(:invalid) do
24
+ flash.now[:alert] = I18n.t("reportable.unreport.invalid", scope: "decidim.moderations.admin")
25
+ redirect_to decidim_admin.participatory_process_moderations_path
26
+ end
27
+ end
28
+ end
29
+
30
+ def hide
31
+ authorize! :hide, reportable
32
+
33
+ Admin::HideResource.call(reportable) do
34
+ on(:ok) do
35
+ flash[:notice] = I18n.t("reportable.hide.success", scope: "decidim.moderations.admin")
36
+ redirect_to decidim_admin.participatory_process_moderations_path
37
+ end
38
+
39
+ on(:invalid) do
40
+ flash.now[:alert] = I18n.t("reportable.hide.invalid", scope: "decidim.moderations.admin")
41
+ redirect_to decidim_admin.participatory_process_moderations_path
42
+ end
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def moderations
49
+ @moderations ||= begin
50
+ moderations = Decidim::Moderation.where(participatory_process: participatory_process)
51
+ moderations = if params[:hidden]
52
+ moderations.where.not(hidden_at: nil)
53
+ else
54
+ moderations.where(hidden_at: nil)
55
+ end
56
+ end
57
+ end
58
+
59
+ def reportable
60
+ @reportable ||= Decidim::Moderation.where(participatory_process: participatory_process).find(params[:id]).reportable
61
+ end
62
+ end
63
+ end
64
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Admin
5
- # Controller that allows managing user groups at the admin panel.
5
+ # Controller that allows managing newsletters.
6
6
  #
7
7
  class NewslettersController < ApplicationController
8
8
  def index
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+ require_dependency "decidim/admin/application_controller"
3
+
4
+ module Decidim
5
+ module Admin
6
+ # Controller that allows managing participatory process groups.
7
+ #
8
+ class ParticipatoryProcessGroupsController < ApplicationController
9
+ helper_method :collection, :participatory_process_group
10
+
11
+ def index
12
+ authorize! :read, ParticipatoryProcessGroup
13
+ end
14
+
15
+ def show
16
+ authorize! :read, participatory_process_group
17
+ end
18
+
19
+ def new
20
+ authorize! :new, Decidim::ParticipatoryProcessGroup
21
+ @form = form(ParticipatoryProcessGroupForm).instance
22
+ end
23
+
24
+ def create
25
+ authorize! :new, Decidim::ParticipatoryProcessGroup
26
+ @form = form(ParticipatoryProcessGroupForm).from_params(params)
27
+
28
+ CreateParticipatoryProcessGroup.call(@form) do
29
+ on(:ok) do |participatory_process_group|
30
+ flash[:notice] = I18n.t("participatory_processes_group.create.success", scope: "decidim.admin")
31
+ redirect_to participatory_process_group_path(participatory_process_group)
32
+ end
33
+
34
+ on(:invalid) do
35
+ flash.now[:alert] = I18n.t("participatory_processes_group.create.error", scope: "decidim.admin")
36
+ render :new
37
+ end
38
+ end
39
+ end
40
+
41
+ def edit
42
+ @participatory_process_group = collection.find(params[:id])
43
+ authorize! :update, @participatory_process_group
44
+ @form = form(ParticipatoryProcessGroupForm).from_model(@participatory_process_group)
45
+ end
46
+
47
+ def update
48
+ @participatory_process_group = collection.find(params[:id])
49
+ authorize! :update, @participatory_process_group
50
+ @form = form(ParticipatoryProcessGroupForm).from_params(params)
51
+
52
+ UpdateParticipatoryProcessGroup.call(@participatory_process_group, @form) do
53
+ on(:ok) do |participatory_process_group|
54
+ flash[:notice] = I18n.t("participatory_process_groups.update.success", scope: "decidim.admin")
55
+ redirect_to participatory_process_group_path(participatory_process_group)
56
+ end
57
+
58
+ on(:invalid) do
59
+ flash.now[:alert] = I18n.t("participatory_process_groups.update.error", scope: "decidim.admin")
60
+ render :edit
61
+ end
62
+ end
63
+ end
64
+
65
+ def destroy
66
+ @participatory_process_group = collection.find(params[:id])
67
+ authorize! :destroy, @participatory_process_group
68
+ @participatory_process_group.destroy!
69
+
70
+ flash[:notice] = I18n.t("participatory_process_groups.destroy.success", scope: "decidim.admin")
71
+
72
+ redirect_to participatory_process_groups_path
73
+ end
74
+
75
+ private
76
+
77
+ def participatory_process_group
78
+ @participatory_process_group ||= Decidim::ParticipatoryProcessGroup.find(params[:id])
79
+ end
80
+
81
+ def collection
82
+ @collection ||= current_user.organization.participatory_process_groups
83
+ end
84
+ end
85
+ end
86
+ end
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing participatory process publications.
7
7
  #
8
8
  class ParticipatoryProcessPublicationsController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing participatory process step activations.
7
7
  #
8
8
  class ParticipatoryProcessStepActivationsController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing participatory process step ordering.
7
7
  #
8
8
  class ParticipatoryProcessStepOrderingController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing participatory process steps.
7
7
  #
8
8
  class ParticipatoryProcessStepsController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing participatory process user roles.
7
7
  #
8
8
  class ParticipatoryProcessUserRolesController < ApplicationController
9
9
  include Concerns::ParticipatoryProcessAdmin
@@ -18,13 +18,13 @@ module Decidim
18
18
  authorize! :create, Decidim::Admin::ParticipatoryProcessUserRole
19
19
  @form = form(ParticipatoryProcessUserRoleForm).from_params(params)
20
20
 
21
- CreateParticipatoryProcessAdmin.call(@form, participatory_process) do
21
+ CreateParticipatoryProcessAdmin.call(@form, current_user, participatory_process) do
22
22
  on(:ok) do
23
23
  flash[:notice] = I18n.t("participatory_process_user_roles.create.success", scope: "decidim.admin")
24
24
  end
25
25
 
26
26
  on(:invalid) do
27
- flash.now[:alert] = I18n.t("participatory_process_user_roles.create.error", scope: "decidim.admin")
27
+ flash[:alert] = I18n.t("participatory_process_user_roles.create.error", scope: "decidim.admin")
28
28
  end
29
29
  redirect_to participatory_process_user_roles_path(participatory_process)
30
30
  end
@@ -3,11 +3,12 @@ require_dependency "decidim/admin/application_controller"
3
3
 
4
4
  module Decidim
5
5
  module Admin
6
- # Controller that allows managing all the Admins.
6
+ # Controller that allows managing participatory processes.
7
7
  #
8
8
  class ParticipatoryProcessesController < ApplicationController
9
9
  helper_method :participatory_process
10
- layout "decidim/admin/participatory_process", only: [:show, :edit]
10
+ helper Decidim::OrganizationScopesHelper
11
+ layout "decidim/admin/participatory_process", only: [:show, :edit, :update]
11
12
 
12
13
  def index
13
14
  authorize! :index, Decidim::ParticipatoryProcess
@@ -10,6 +10,7 @@ module Decidim
10
10
  mimic :organization
11
11
 
12
12
  attribute :name, String
13
+ attribute :reference_prefix, String
13
14
  attribute :twitter_handler, String
14
15
  attribute :facebook_handler, String
15
16
  attribute :instagram_handler, String
@@ -11,7 +11,7 @@ module Decidim
11
11
  translatable_attribute :subtitle, String
12
12
  translatable_attribute :description, String
13
13
  translatable_attribute :short_description, String
14
- translatable_attribute :scope, String
14
+ translatable_attribute :meta_scope, String
15
15
  translatable_attribute :developer_group, String
16
16
  translatable_attribute :local_area, String
17
17
  translatable_attribute :target, String
@@ -24,17 +24,28 @@ module Decidim
24
24
  attribute :slug, String
25
25
  attribute :hashtag, String
26
26
  attribute :promoted, Boolean
27
+ attribute :scope_id, Integer
27
28
  attribute :hero_image
28
29
  attribute :banner_image
30
+ attribute :participatory_process_group_id, Integer
29
31
 
30
32
  validates :slug, presence: true
31
33
  validates :title, :subtitle, :description, :short_description, translatable_presence: true
34
+ validates :scope, presence: true, if: proc { |object| object.scope_id.present? }
32
35
 
33
36
  validate :slug, :slug_uniqueness
34
37
 
35
38
  validates :hero_image, file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } }, file_content_type: { allow: ["image/jpeg", "image/png"] }
36
39
  validates :banner_image, file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } }, file_content_type: { allow: ["image/jpeg", "image/png"] }
37
40
 
41
+ def scope
42
+ @scope ||= current_organization.scopes.where(id: scope_id).first
43
+ end
44
+
45
+ def participatory_process_group
46
+ Decidim::ParticipatoryProcessGroup.where(id: participatory_process_group_id).first
47
+ end
48
+
38
49
  private
39
50
 
40
51
  def slug_uniqueness
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # A form object used to create participatory process groups from the admin
5
+ # dashboard.
6
+ #
7
+ class ParticipatoryProcessGroupForm < Form
8
+ include TranslatableAttributes
9
+
10
+ translatable_attribute :name, String
11
+ translatable_attribute :description, String
12
+ attribute :participatory_process_ids, Array[Integer]
13
+
14
+ mimic :participatory_process_group
15
+
16
+ attribute :hero_image
17
+
18
+ validates :name, :description, translatable_presence: true
19
+
20
+ validates :hero_image, file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } }, file_content_type: { allow: ["image/jpeg", "image/png"] }
21
+ end
22
+ end
23
+ end
@@ -9,7 +9,6 @@ module Decidim
9
9
 
10
10
  translatable_attribute :title, String
11
11
  translatable_attribute :description, String
12
- translatable_attribute :short_description, String
13
12
 
14
13
  mimic :participatory_process_step
15
14
 
@@ -7,9 +7,13 @@ module Decidim
7
7
  class ParticipatoryProcessUserRoleForm < Form
8
8
  mimic :participatory_process_user_role
9
9
 
10
+ attribute :name, String
10
11
  attribute :email, String
12
+ attribute :role, String
11
13
 
12
- validates :email, presence: true
14
+ validates :email, :role, presence: true
15
+ validates :name, presence: true
16
+ validates :role, inclusion: { in: ParticipatoryProcessUserRole::ROLES }
13
17
  end
14
18
  end
15
19
  end
@@ -9,6 +9,7 @@ module Decidim
9
9
  include Decidim::HumanizeBooleansHelper
10
10
  include Decidim::AriaSelectedLinkToHelper
11
11
  include Decidim::MetaTagsHelper
12
+ include Decidim::MapHelper
12
13
 
13
14
  def title
14
15
  current_organization.name
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # This class contains helpers needed to format ParticipatoryProcessGroups
5
+ # in order to use them in select forms.
6
+ #
7
+ module ProcessGroupsForSelectHelper
8
+ # Public: A formatted collection of ParticipatoryProcessGroups to be used
9
+ # in forms.
10
+ #
11
+ # Returns an Array.
12
+ def process_groups_for_select
13
+ @process_groups_for_select ||=
14
+ current_organization.participatory_process_groups.map do |group|
15
+ [translated_attribute(group.name), group.id]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # This class contains helpers needed to format ParticipatoryProcesses
5
+ # in order to use them in select forms.
6
+ #
7
+ module ProcessesForSelectHelper
8
+ # Public: A formatted collection of ParticipatoryProcesses to be used
9
+ # in forms.
10
+ #
11
+ # Returns an Array.
12
+ def processes_for_select
13
+ @processes_for_select ||= current_organization.participatory_processes.map do |process|
14
+ [
15
+ translated_attribute(process.title),
16
+ process.id
17
+ ]
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end