decidim 0.0.2 → 0.0.3

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 (439) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +12 -0
  3. data/Dockerfile +2 -0
  4. data/Gemfile.lock +80 -54
  5. data/README.md +15 -2
  6. data/decidim-admin/app/assets/javascripts/decidim/admin/application.js.es6 +3 -2
  7. data/decidim-admin/app/assets/javascripts/decidim/admin/tab_focus.js.es6 +1 -1
  8. data/decidim-admin/app/assets/stylesheets/decidim/admin/_foundation_and_overrides.scss +1 -1
  9. data/decidim-admin/app/commands/decidim/admin/{create_participatory_process_attachment.rb → create_attachment.rb} +6 -7
  10. data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +12 -3
  11. data/decidim-admin/app/commands/decidim/admin/{update_participatory_process_attachment.rb → update_attachment.rb} +7 -6
  12. data/decidim-admin/app/commands/decidim/admin/update_feature.rb +2 -1
  13. data/decidim-admin/app/commands/decidim/admin/update_organization.rb +1 -0
  14. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +16 -4
  15. data/decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb +1 -1
  16. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +2 -2
  17. data/decidim-admin/app/controllers/decidim/admin/concerns/has_attachments.rb +116 -0
  18. data/decidim-admin/app/controllers/decidim/admin/participatory_process_attachments_controller.rb +5 -67
  19. data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +5 -5
  20. data/decidim-admin/app/forms/decidim/admin/{participatory_process_attachment_form.rb → attachment_form.rb} +2 -2
  21. data/decidim-admin/app/forms/decidim/admin/feature_form.rb +1 -0
  22. data/decidim-admin/app/forms/decidim/admin/organization_form.rb +1 -0
  23. data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +8 -1
  24. data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
  25. data/decidim-admin/app/helpers/decidim/admin/feature_settings_helper.rb +29 -0
  26. data/decidim-admin/app/models/decidim/admin/abilities/admin_user.rb +4 -4
  27. data/decidim-admin/app/models/decidim/admin/abilities/base.rb +3 -3
  28. data/decidim-admin/app/models/decidim/admin/abilities/participatory_process_admin.rb +15 -7
  29. data/decidim-admin/app/views/decidim/admin/{participatory_process_attachments → attachments}/_form.html.erb +0 -0
  30. data/decidim-admin/app/views/decidim/admin/attachments/edit.html.erb +9 -0
  31. data/decidim-admin/app/views/decidim/admin/attachments/index.html.erb +37 -0
  32. data/decidim-admin/app/views/decidim/admin/attachments/new.html.erb +9 -0
  33. data/decidim-admin/app/views/decidim/admin/attachments/show.html.erb +25 -0
  34. data/decidim-admin/app/views/decidim/admin/features/_form.html.erb +1 -0
  35. data/decidim-admin/app/views/decidim/admin/features/_settings_fields.html.erb +6 -3
  36. data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +4 -0
  37. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +16 -0
  38. data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +11 -1
  39. data/decidim-admin/app/views/layouts/decidim/admin/_header.html.erb +2 -2
  40. data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +1 -1
  41. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +2 -2
  42. data/decidim-admin/config/locales/ca.yml +29 -27
  43. data/decidim-admin/config/locales/en.yml +29 -27
  44. data/decidim-admin/config/locales/es.yml +29 -27
  45. data/decidim-admin/config/routes.rb +1 -1
  46. data/decidim-admin/db/migrate/20170128112958_change_user_groups_verified_to_timestamp.rb +9 -0
  47. data/decidim-admin/decidim-admin.gemspec +0 -1
  48. data/decidim-admin/lib/decidim/admin/engine.rb +2 -2
  49. data/decidim-admin/lib/decidim/admin/test/manage_attachments_examples.rb +103 -0
  50. data/decidim-admin/spec/commands/create_category_spec.rb +1 -1
  51. data/decidim-admin/spec/commands/create_feature_spec.rb +1 -1
  52. data/decidim-admin/spec/commands/create_participatory_process_spec.rb +32 -2
  53. data/decidim-admin/spec/commands/create_static_page_spec.rb +1 -1
  54. data/decidim-admin/spec/commands/destroy_category_spec.rb +1 -1
  55. data/decidim-admin/spec/commands/destroy_feature_spec.rb +2 -2
  56. data/decidim-admin/spec/commands/destroy_participatory_process_step_spec.rb +1 -1
  57. data/decidim-admin/spec/commands/update_category_spec.rb +1 -1
  58. data/decidim-admin/spec/commands/update_feature_spec.rb +3 -1
  59. data/decidim-admin/spec/commands/update_organization_spec.rb +12 -2
  60. data/decidim-admin/spec/commands/update_static_page_spec.rb +1 -1
  61. data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +1 -1
  62. data/decidim-admin/spec/features/admin_manages_organization_scopes_spec.rb +1 -1
  63. data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +1 -1
  64. data/decidim-admin/spec/features/static_pages_spec.rb +1 -1
  65. data/decidim-admin/spec/forms/participatory_process_form_spec.rb +32 -2
  66. data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +3 -3
  67. data/decidim-admin/spec/forms/scope_form_spec.rb +2 -2
  68. data/decidim-admin/spec/forms/static_page_form_spec.rb +2 -2
  69. data/decidim-admin/spec/helpers/feature_settings_helper_spec.rb +56 -0
  70. data/decidim-admin/spec/models/abilities/admin_user_spec.rb +7 -6
  71. data/decidim-admin/spec/models/abilities/participatory_process_admin_spec.rb +5 -8
  72. data/decidim-admin/spec/shared/manage_process_admins_examples.rb +1 -1
  73. data/decidim-admin/spec/shared/manage_process_attachments_examples.rb +4 -94
  74. data/decidim-admin/spec/shared/manage_process_categories_examples.rb +2 -1
  75. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +1 -1
  76. data/decidim-admin/spec/shared/manage_processes_examples.rb +4 -3
  77. data/decidim-admin/spec/views/decidim/static_pages/_form.html.erb_spec.rb +2 -2
  78. data/decidim-api/app/views/layouts/decidim/api/documentation.html.erb +1 -1
  79. data/decidim-api/decidim-api.gemspec +1 -1
  80. data/decidim-api/lib/decidim/api.rb +1 -0
  81. data/decidim-api/lib/decidim/api/schema.rb +5 -0
  82. data/decidim-api/lib/decidim/api/test/type_context.rb +1 -0
  83. data/decidim-api/lib/decidim/api/types/author_interface.rb +13 -0
  84. data/decidim-api/spec/types/query_type_spec.rb +1 -1
  85. data/decidim-api/spec/types/translated_field_type_spec.rb +1 -1
  86. data/decidim-budgets/.gitignore +7 -0
  87. data/decidim-budgets/README.md +23 -0
  88. data/decidim-budgets/Rakefile +2 -0
  89. data/decidim-budgets/app/assets/config/decidim_budgets_manifest.js +1 -0
  90. data/decidim-budgets/app/assets/images/decidim/budgets/icon.svg +4 -0
  91. data/decidim-budgets/app/assets/javascripts/decidim/budgets/projects.js.es6 +28 -0
  92. data/decidim-budgets/app/assets/stylesheets/decidim/budgets/_budgets.scss +1 -0
  93. data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_budget-list.scss +32 -0
  94. data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_budget-meter.scss +78 -0
  95. data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_progress.scss +17 -0
  96. data/decidim-budgets/app/commands/decidim/budgets/add_line_item.rb +43 -0
  97. data/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb +52 -0
  98. data/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb +56 -0
  99. data/decidim-budgets/app/commands/decidim/budgets/cancel_order.rb +36 -0
  100. data/decidim-budgets/app/commands/decidim/budgets/checkout.rb +34 -0
  101. data/decidim-budgets/app/commands/decidim/budgets/remove_line_item.rb +35 -0
  102. data/decidim-budgets/app/controllers/concerns/decidim/budgets/needs_current_order.rb +27 -0
  103. data/decidim-budgets/app/controllers/decidim/budgets/admin/application_controller.rb +14 -0
  104. data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +69 -0
  105. data/decidim-budgets/app/controllers/decidim/budgets/application_controller.rb +13 -0
  106. data/decidim-budgets/app/controllers/decidim/budgets/line_items_controller.rb +43 -0
  107. data/decidim-budgets/app/controllers/decidim/budgets/orders_controller.rb +38 -0
  108. data/decidim-budgets/app/controllers/decidim/budgets/projects_controller.rb +44 -0
  109. data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +44 -0
  110. data/decidim-budgets/app/helpers/decidim/budgets/application_helper.rb +12 -0
  111. data/decidim-budgets/app/helpers/decidim/budgets/projects_helper.rb +29 -0
  112. data/decidim-budgets/app/models/decidim/budgets/application_record.rb +9 -0
  113. data/decidim-budgets/app/models/decidim/budgets/line_item.rb +20 -0
  114. data/decidim-budgets/app/models/decidim/budgets/order.rb +52 -0
  115. data/decidim-budgets/app/models/decidim/budgets/project.rb +15 -0
  116. data/decidim-budgets/app/services/decidim/budgets/project_search.rb +58 -0
  117. data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +31 -0
  118. data/decidim-budgets/app/views/decidim/budgets/admin/projects/edit.html.erb +9 -0
  119. data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +27 -0
  120. data/{decidim-admin/app/views/decidim/admin/participatory_process_attachments → decidim-budgets/app/views/decidim/budgets/admin/projects}/new.html.erb +0 -0
  121. data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +21 -0
  122. data/decidim-budgets/app/views/decidim/budgets/projects/_budget_confirm.html.erb +30 -0
  123. data/decidim-budgets/app/views/decidim/budgets/projects/_budget_excess.html.erb +14 -0
  124. data/decidim-budgets/app/views/decidim/budgets/projects/_budget_summary.html.erb +46 -0
  125. data/decidim-budgets/app/views/decidim/budgets/projects/_count.html.erb +1 -0
  126. data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +24 -0
  127. data/decidim-budgets/app/views/decidim/budgets/projects/_linked_projects.html.erb +12 -0
  128. data/decidim-budgets/app/views/decidim/budgets/projects/_order_progress.html.erb +34 -0
  129. data/decidim-budgets/app/views/decidim/budgets/projects/_order_selected_projects.html.erb +25 -0
  130. data/decidim-budgets/app/views/decidim/budgets/projects/_order_total_budget.html.erb +1 -0
  131. data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +40 -0
  132. data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +9 -0
  133. data/decidim-budgets/app/views/decidim/budgets/projects/_projects.html.erb +8 -0
  134. data/decidim-budgets/app/views/decidim/budgets/projects/_tags.html.erb +10 -0
  135. data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +26 -0
  136. data/decidim-budgets/app/views/decidim/budgets/projects/index.js.erb +2 -0
  137. data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +48 -0
  138. data/decidim-budgets/bin/rails +14 -0
  139. data/decidim-budgets/config/i18n-tasks.yml +4 -0
  140. data/decidim-budgets/config/locales/ca.yml +84 -0
  141. data/decidim-budgets/config/locales/en.yml +95 -0
  142. data/decidim-budgets/config/locales/es.yml +84 -0
  143. data/decidim-budgets/db/migrate/20170127114122_create_projects.rb +15 -0
  144. data/decidim-budgets/db/migrate/20170130095615_create_orders.rb +13 -0
  145. data/decidim-budgets/db/migrate/20170130101825_create_line_items.rb +10 -0
  146. data/decidim-budgets/decidim-budgets.gemspec +24 -0
  147. data/decidim-budgets/lib/decidim/budgets.rb +11 -0
  148. data/decidim-budgets/lib/decidim/budgets/admin.rb +9 -0
  149. data/decidim-budgets/lib/decidim/budgets/admin_engine.rb +22 -0
  150. data/decidim-budgets/lib/decidim/budgets/feature.rb +59 -0
  151. data/decidim-budgets/lib/decidim/budgets/list_engine.rb +30 -0
  152. data/decidim-budgets/lib/decidim/budgets/test/factories.rb +43 -0
  153. data/decidim-budgets/spec/commands/add_line_item_spec.rb +48 -0
  154. data/decidim-budgets/spec/commands/cancel_order_spec.rb +42 -0
  155. data/decidim-budgets/spec/commands/checkout_spec.rb +45 -0
  156. data/decidim-budgets/spec/commands/create_project_spec.rb +72 -0
  157. data/decidim-budgets/spec/commands/remove_line_item_spec.rb +31 -0
  158. data/decidim-budgets/spec/commands/update_project_spec.rb +65 -0
  159. data/decidim-budgets/spec/factories.rb +4 -0
  160. data/decidim-budgets/spec/features/admin_manages_projects_spec.rb +16 -0
  161. data/decidim-budgets/spec/features/orders_spec.rb +149 -0
  162. data/decidim-budgets/spec/features/process_admin_manages_projects_spec.rb +17 -0
  163. data/decidim-budgets/spec/forms/project_form_spec.rb +115 -0
  164. data/decidim-budgets/spec/models/line_item_spec.rb +35 -0
  165. data/decidim-budgets/spec/models/order_spec.rb +45 -0
  166. data/decidim-budgets/spec/models/project_spec.rb +30 -0
  167. data/decidim-budgets/spec/services/project_search_spec.rb +97 -0
  168. data/decidim-budgets/spec/shared/admin_shared_context.rb +11 -0
  169. data/decidim-budgets/spec/shared/manage_projects_examples.rb +104 -0
  170. data/decidim-budgets/spec/spec_helper.rb +2 -0
  171. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  172. data/decidim-comments/app/commands/decidim/comments/create_comment.rb +2 -1
  173. data/decidim-comments/app/forms/decidim/comments/comment_form.rb +1 -0
  174. data/decidim-comments/app/frontend/application/apollo_client.js +1 -1
  175. data/decidim-comments/app/frontend/application/application.component.jsx +1 -1
  176. data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +76 -20
  177. data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +77 -22
  178. data/decidim-comments/app/frontend/comments/add_comment_form.fragment.graphql +6 -0
  179. data/decidim-comments/app/frontend/comments/add_comment_form.mutation.graphql +2 -2
  180. data/decidim-comments/app/frontend/comments/comment.component.jsx +15 -15
  181. data/decidim-comments/app/frontend/comments/comment.component.test.jsx +42 -41
  182. data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +1 -1
  183. data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +7 -7
  184. data/decidim-comments/app/frontend/comments/comment_thread.component.test.jsx +21 -19
  185. data/decidim-comments/app/frontend/comments/comments.component.jsx +21 -17
  186. data/decidim-comments/app/frontend/comments/comments.component.test.jsx +47 -32
  187. data/decidim-comments/app/frontend/comments/comments.query.graphql +6 -3
  188. data/decidim-comments/app/frontend/comments/down_vote_button.component.jsx +21 -10
  189. data/decidim-comments/app/frontend/comments/up_vote_button.component.jsx +23 -12
  190. data/decidim-comments/app/frontend/comments/vote_button.component.jsx +15 -7
  191. data/decidim-comments/app/frontend/comments/vote_button_component.test.jsx +7 -2
  192. data/decidim-comments/app/frontend/entry.js +1 -8
  193. data/decidim-comments/app/frontend/support/generate_user_data.js +13 -0
  194. data/decidim-comments/app/frontend/support/generate_user_group_data.js +14 -0
  195. data/decidim-comments/app/helpers/decidim/comments/comments_helper.rb +10 -15
  196. data/decidim-comments/app/models/decidim/comments/comment.rb +5 -7
  197. data/decidim-comments/app/types/decidim/comments/comment_type.rb +5 -1
  198. data/decidim-comments/config/locales/ca.yml +5 -1
  199. data/decidim-comments/config/locales/en.yml +4 -1
  200. data/decidim-comments/config/locales/es.yml +5 -1
  201. data/decidim-comments/db/migrate/20170123102043_add_user_group_id_to_comments.rb +5 -0
  202. data/decidim-comments/decidim-comments.gemspec +0 -1
  203. data/decidim-comments/lib/decidim/comments/engine.rb +0 -1
  204. data/decidim-comments/lib/decidim/comments/mutation_extensions.rb +2 -1
  205. data/decidim-comments/spec/commands/create_comment_spec.rb +6 -3
  206. data/decidim-comments/spec/commands/vote_comment_spec.rb +4 -4
  207. data/decidim-comments/spec/features/comments_spec.rb +27 -3
  208. data/decidim-comments/spec/forms/comment_form_spec.rb +6 -3
  209. data/decidim-comments/spec/models/comment_spec.rb +25 -32
  210. data/decidim-comments/spec/queries/comments_with_replies_spec.rb +2 -2
  211. data/decidim-comments/spec/types/comment_type_spec.rb +2 -2
  212. data/decidim-comments/spec/types/query_type_spec.rb +5 -5
  213. data/decidim-dev/app/views/decidim/dummy_resource/_linked_dummys.html.erb +5 -0
  214. data/decidim-dev/config/locales/en.yml +5 -0
  215. data/decidim-dev/decidim-dev.gemspec +3 -3
  216. data/decidim-dev/lib/decidim/dev/assets/avatar.jpg +0 -0
  217. data/decidim-dev/lib/decidim/dev/assets/icon.png +0 -0
  218. data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +1 -0
  219. data/decidim-dev/lib/decidim/dev/test/rspec_support/action_mailer.rb +1 -1
  220. data/decidim-dev/lib/decidim/dev/test/rspec_support/engine_routes.rb +9 -5
  221. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +24 -0
  222. data/decidim-meetings/app/assets/config/decidim_meetings_manifest.js +2 -0
  223. data/decidim-meetings/app/assets/javascripts/decidim/meetings/map.js.es6.erb +92 -0
  224. data/decidim-meetings/app/assets/stylesheets/decidim/meetings/map.css +1 -0
  225. data/decidim-meetings/app/commands/decidim/meetings/admin/close_meeting.rb +53 -0
  226. data/decidim-meetings/app/commands/decidim/meetings/admin/create_meeting.rb +15 -3
  227. data/decidim-meetings/app/commands/decidim/meetings/admin/update_meeting.rb +15 -3
  228. data/decidim-meetings/app/controllers/decidim/meetings/admin/application_controller.rb +9 -0
  229. data/decidim-meetings/app/controllers/decidim/meetings/admin/attachments_controller.rb +29 -0
  230. data/decidim-meetings/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +38 -0
  231. data/decidim-meetings/app/controllers/decidim/meetings/admin/meetings_controller.rb +0 -12
  232. data/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb +11 -9
  233. data/decidim-meetings/app/forms/decidim/meetings/admin/close_meeting_form.rb +31 -0
  234. data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +0 -2
  235. data/decidim-meetings/app/helpers/decidim/meetings/admin/application_helper.rb +12 -0
  236. data/decidim-meetings/app/helpers/decidim/meetings/application_helper.rb +1 -0
  237. data/decidim-meetings/app/helpers/decidim/meetings/map_helper.rb +46 -0
  238. data/decidim-meetings/app/models/decidim/meetings/meeting.rb +11 -15
  239. data/decidim-meetings/app/services/decidim/meetings/meeting_search.rb +0 -1
  240. data/decidim-meetings/app/services/decidim/meetings/static_map_generator.rb +50 -0
  241. data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +23 -0
  242. data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +9 -0
  243. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +2 -6
  244. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/index.html.erb +14 -0
  245. data/decidim-meetings/app/views/decidim/meetings/meetings/_datetime.html.erb +8 -0
  246. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +2 -2
  247. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +18 -0
  248. data/decidim-meetings/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +22 -0
  249. data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +3 -10
  250. data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +42 -0
  251. data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +6 -0
  252. data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +33 -7
  253. data/decidim-meetings/bin/rails +1 -1
  254. data/decidim-meetings/config/i18n-tasks.yml +2 -0
  255. data/decidim-meetings/config/locales/ca.yml +37 -4
  256. data/decidim-meetings/config/locales/en.yml +34 -1
  257. data/decidim-meetings/config/locales/es.yml +36 -3
  258. data/decidim-meetings/db/migrate/20170110142105_close_a_meeting.rb +9 -0
  259. data/decidim-meetings/db/migrate/20170123151650_add_latitude_and_longitude_to_meetings.rb +6 -0
  260. data/decidim-meetings/db/migrate/20170129153716_remove_short_description_from_meetings.rb +5 -0
  261. data/decidim-meetings/decidim-meetings.gemspec +7 -0
  262. data/decidim-meetings/lib/decidim/meetings/admin_engine.rb +31 -1
  263. data/decidim-meetings/lib/decidim/meetings/feature.rb +20 -6
  264. data/decidim-meetings/lib/decidim/meetings/list_engine.rb +10 -1
  265. data/decidim-meetings/lib/decidim/meetings/seeds/Exampledocument.pdf +0 -0
  266. data/decidim-meetings/lib/decidim/meetings/seeds/city.jpeg +0 -0
  267. data/decidim-meetings/lib/decidim/meetings/test/factories.rb +23 -0
  268. data/decidim-meetings/spec/commands/close_meeting_spec.rb +78 -0
  269. data/decidim-meetings/spec/commands/create_meeting_spec.rb +22 -3
  270. data/decidim-meetings/spec/commands/update_meeting_spec.rb +32 -3
  271. data/decidim-meetings/spec/controllers/meetings_controller_spec.rb +41 -0
  272. data/decidim-meetings/spec/factories.rb +3 -13
  273. data/decidim-meetings/spec/features/admin_manages_meetings_attachments_spec.rb +10 -0
  274. data/decidim-meetings/spec/features/explore_meetings_spec.rb +55 -1
  275. data/decidim-meetings/spec/features/process_admin_manages_meetings_attachments_spec.rb +12 -0
  276. data/decidim-meetings/spec/forms/close_meeting_form_spec.rb +90 -0
  277. data/decidim-meetings/spec/forms/meeting_form_spec.rb +1 -7
  278. data/decidim-meetings/spec/models/meeting_spec.rb +42 -24
  279. data/decidim-meetings/spec/services/meeting_search_spec.rb +1 -17
  280. data/decidim-meetings/spec/services/static_map_generator_spec.rb +33 -0
  281. data/decidim-meetings/spec/shared/manage_attachments_examples.rb +17 -0
  282. data/decidim-meetings/spec/shared/manage_meetings_examples.rb +58 -8
  283. data/decidim-meetings/spec/spec_helper.rb +5 -0
  284. data/decidim-meetings/spec/support/geocoder.rb +7 -0
  285. data/decidim-meetings/vendor/assets/javascripts/leaflet-svg-icon.js +179 -0
  286. data/decidim-meetings/vendor/assets/javascripts/leaflet-tilelayer-here.js +166 -0
  287. data/decidim-meetings/vendor/assets/javascripts/leaflet.js +9 -0
  288. data/decidim-meetings/vendor/assets/stylesheets/leaflet.css +624 -0
  289. data/decidim-pages/app/models/decidim/pages/page.rb +10 -1
  290. data/decidim-pages/app/views/decidim/pages/application/show.html.erb +2 -1
  291. data/decidim-pages/spec/commands/create_page_spec.rb +2 -2
  292. data/decidim-pages/spec/commands/destroy_page_spec.rb +1 -1
  293. data/decidim-pages/spec/commands/update_page_spec.rb +1 -1
  294. data/decidim-pages/spec/factories.rb +1 -1
  295. data/decidim-pages/spec/features/admin_spec.rb +1 -0
  296. data/decidim-pages/spec/models/page_spec.rb +15 -0
  297. data/decidim-proposals/app/assets/stylesheets/decidim/proposals/social_share.css.scss +5 -0
  298. data/decidim-proposals/app/commands/decidim/proposals/admin/answer_proposal.rb +43 -0
  299. data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +1 -0
  300. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +37 -0
  301. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +1 -0
  302. data/decidim-proposals/app/controllers/decidim/proposals/proposal_votes_controller.rb +18 -7
  303. data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +8 -7
  304. data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_answer_form.rb +18 -0
  305. data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +1 -0
  306. data/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb +17 -0
  307. data/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb +19 -0
  308. data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +59 -0
  309. data/decidim-proposals/app/models/decidim/proposals/proposal.rb +30 -33
  310. data/decidim-proposals/app/models/decidim/proposals/proposal_vote.rb +2 -0
  311. data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +11 -0
  312. data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +15 -0
  313. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +8 -0
  314. data/decidim-proposals/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +20 -0
  315. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +3 -1
  316. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters_small_view.html.erb +18 -0
  317. data/decidim-proposals/app/views/decidim/proposals/proposals/_linked_proposals.html.erb +27 -0
  318. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal.html.erb +3 -2
  319. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal_badge.html.erb +3 -0
  320. data/decidim-proposals/app/views/decidim/proposals/proposals/_remaining_votes_count.html.erb +1 -0
  321. data/decidim-proposals/app/views/decidim/proposals/proposals/_share.html.erb +1 -1
  322. data/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb +16 -4
  323. data/decidim-proposals/app/views/decidim/proposals/proposals/_votes_limit.html.erb +23 -0
  324. data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +13 -3
  325. data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +6 -0
  326. data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +15 -2
  327. data/decidim-proposals/config/i18n-tasks.yml +3 -0
  328. data/decidim-proposals/config/locales/ca.yml +54 -1
  329. data/decidim-proposals/config/locales/en.yml +54 -0
  330. data/decidim-proposals/config/locales/es.yml +54 -1
  331. data/decidim-proposals/db/migrate/20170120151202_add_user_group_id_to_proposals.rb +5 -0
  332. data/decidim-proposals/db/migrate/20170131092413_add_answers_to_proposals.rb +7 -0
  333. data/decidim-proposals/decidim-proposals.gemspec +3 -0
  334. data/decidim-proposals/lib/decidim/proposals/admin_engine.rb +3 -1
  335. data/decidim-proposals/lib/decidim/proposals/engine.rb +7 -1
  336. data/decidim-proposals/lib/decidim/proposals/feature.rb +28 -1
  337. data/decidim-proposals/lib/decidim/proposals/test/factories.rb +83 -0
  338. data/decidim-proposals/spec/commands/decidim/proposals/admin_create_proposal_spec.rb +14 -0
  339. data/decidim-proposals/spec/commands/decidim/proposals/answer_proposal_spec.rb +53 -0
  340. data/decidim-proposals/spec/commands/decidim/proposals/create_proposal_spec.rb +3 -56
  341. data/decidim-proposals/spec/controllers/decidim/admin/proposal_answers_controller_spec.rb +45 -0
  342. data/decidim-proposals/spec/controllers/decidim/proposal_votes_controller_spec.rb +113 -0
  343. data/decidim-proposals/spec/controllers/decidim/proposals_controller_spec.rb +53 -0
  344. data/decidim-proposals/spec/factories.rb +1 -23
  345. data/decidim-proposals/spec/features/proposals_spec.rb +201 -38
  346. data/decidim-proposals/spec/features/vote_proposal_spec.rb +83 -11
  347. data/decidim-proposals/spec/forms/decidim/proposals/admin_proposal_form_spec.rb +13 -0
  348. data/decidim-proposals/spec/forms/decidim/proposals/proposal_answer_form_spec.rb +50 -0
  349. data/decidim-proposals/spec/forms/decidim/proposals/proposal_form_spec.rb +5 -93
  350. data/decidim-proposals/spec/helpers/application_helper_spec.rb +33 -0
  351. data/decidim-proposals/spec/helpers/proposal_votes_helper_spec.rb +53 -0
  352. data/decidim-proposals/spec/lib/decidim/proposals/feature_spec.rb +1 -1
  353. data/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb +21 -19
  354. data/decidim-proposals/spec/models/decidim/proposals/proposal_vote_spec.rb +19 -1
  355. data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +66 -25
  356. data/decidim-proposals/spec/shared/create_proposal_examples.rb +69 -0
  357. data/decidim-proposals/spec/shared/manage_proposals_examples.rb +49 -0
  358. data/decidim-proposals/spec/shared/proposal_form_examples.rb +100 -0
  359. data/decidim-results/.gitignore +7 -0
  360. data/decidim-results/README.md +23 -0
  361. data/decidim-results/Rakefile +2 -0
  362. data/decidim-results/app/assets/images/decidim/results/icon.svg +1 -0
  363. data/decidim-results/app/commands/decidim/results/admin/create_result.rb +65 -0
  364. data/decidim-results/app/commands/decidim/results/admin/update_result.rb +69 -0
  365. data/decidim-results/app/controllers/decidim/results/admin/application_controller.rb +14 -0
  366. data/decidim-results/app/controllers/decidim/results/admin/results_controller.rb +69 -0
  367. data/decidim-results/app/controllers/decidim/results/application_controller.rb +13 -0
  368. data/decidim-results/app/controllers/decidim/results/results_controller.rb +42 -0
  369. data/decidim-results/app/forms/decidim/results/admin/result_form.rb +40 -0
  370. data/decidim-results/app/helpers/decidim/results/application_helper.rb +11 -0
  371. data/decidim-results/app/models/decidim/results/application_record.rb +9 -0
  372. data/decidim-results/app/models/decidim/results/result.rb +15 -0
  373. data/decidim-results/app/services/decidim/results/result_search.rb +44 -0
  374. data/decidim-results/app/services/decidim/results/result_stats_calculator.rb +51 -0
  375. data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +23 -0
  376. data/decidim-results/app/views/decidim/results/admin/results/edit.html.erb +9 -0
  377. data/decidim-results/app/views/decidim/results/admin/results/index.html.erb +27 -0
  378. data/decidim-results/app/views/decidim/results/admin/results/new.html.erb +9 -0
  379. data/decidim-results/app/views/decidim/results/results/_count.html.erb +1 -0
  380. data/decidim-results/app/views/decidim/results/results/_filters.html.erb +22 -0
  381. data/decidim-results/app/views/decidim/results/results/_linked_results.html.erb +12 -0
  382. data/decidim-results/app/views/decidim/results/results/_results.html.erb +16 -0
  383. data/decidim-results/app/views/decidim/results/results/_tags.html.erb +10 -0
  384. data/decidim-results/app/views/decidim/results/results/index.html.erb +22 -0
  385. data/decidim-results/app/views/decidim/results/results/index.js.erb +2 -0
  386. data/decidim-results/app/views/decidim/results/results/show.html.erb +52 -0
  387. data/decidim-results/bin/rails +14 -0
  388. data/decidim-results/config/i18n-tasks.yml +5 -0
  389. data/decidim-results/config/locales/ca.yml +61 -0
  390. data/decidim-results/config/locales/en.yml +62 -0
  391. data/decidim-results/config/locales/es.yml +61 -0
  392. data/decidim-results/db/migrate/20170116104125_create_results.rb +14 -0
  393. data/decidim-results/db/migrate/20170129164553_remove_short_description_from_results.rb +5 -0
  394. data/decidim-results/decidim-results.gemspec +26 -0
  395. data/decidim-results/lib/decidim/results.rb +11 -0
  396. data/decidim-results/lib/decidim/results/admin.rb +9 -0
  397. data/decidim-results/lib/decidim/results/admin_engine.rb +22 -0
  398. data/decidim-results/lib/decidim/results/feature.rb +52 -0
  399. data/decidim-results/lib/decidim/results/list_engine.rb +19 -0
  400. data/decidim-results/lib/decidim/results/test/factories.rb +11 -0
  401. data/decidim-results/spec/commands/create_result_spec.rb +90 -0
  402. data/decidim-results/spec/commands/update_result_spec.rb +83 -0
  403. data/decidim-results/spec/factories.rb +6 -0
  404. data/decidim-results/spec/features/admin_manages_results_spec.rb +16 -0
  405. data/decidim-results/spec/features/explore_results_spec.rb +186 -0
  406. data/decidim-results/spec/features/process_admin_manages_results_spec.rb +17 -0
  407. data/decidim-results/spec/forms/result_form_spec.rb +91 -0
  408. data/decidim-results/spec/models/result_spec.rb +18 -0
  409. data/decidim-results/spec/services/result_search_spec.rb +97 -0
  410. data/decidim-results/spec/services/result_stats_calculator_spec.rb +93 -0
  411. data/decidim-results/spec/shared/admin_shared_context.rb +11 -0
  412. data/decidim-results/spec/shared/manage_results_examples.rb +96 -0
  413. data/decidim-results/spec/spec_helper.rb +2 -0
  414. data/decidim-system/app/assets/javascripts/decidim/system/application.js.es6 +1 -3
  415. data/decidim-system/app/views/layouts/decidim/system/_header.html.erb +2 -2
  416. data/decidim-system/decidim-system.gemspec +0 -1
  417. data/decidim-system/lib/decidim/system/engine.rb +0 -1
  418. data/decidim-system/spec/features/manage_admins_spec.rb +1 -1
  419. data/decidim-system/spec/features/organizations_spec.rb +1 -1
  420. data/decidim.gemspec +2 -0
  421. data/docs/how_to_create_a_plugin.md +0 -2
  422. data/lib/decidim.rb +2 -0
  423. data/lib/generators/decidim/install_generator.rb +1 -0
  424. data/lib/generators/decidim/templates/Gemfile.erb +10 -1
  425. data/lib/generators/decidim/templates/initializer.rb +9 -0
  426. data/lib/generators/decidim/templates/secrets.yml.erb +3 -0
  427. data/lib/generators/decidim/templates/social_share_button.rb +1 -1
  428. data/package.json +2 -3
  429. data/yarn.lock +10 -8
  430. metadata +265 -32
  431. data/decidim-admin/app/helpers/decidim/admin/aria_selected_link_to_helper.rb +0 -28
  432. data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/edit.html.erb +0 -9
  433. data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/index.html.erb +0 -37
  434. data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/show.html.erb +0 -25
  435. data/decidim-comments/app/frontend/support/generate_current_user_data.js +0 -13
  436. data/decidim-comments/app/types/decidim/comments/author_type.rb +0 -15
  437. data/decidim-comments/spec/types/author_type_spec.rb +0 -21
  438. data/decidim-dev/lib/decidim/dev/assets/avatar.svg +0 -14
  439. data/decidim-proposals/app/views/decidim/proposals/proposal_votes/create.js.erb +0 -5
@@ -21,7 +21,7 @@ module Decidim
21
21
  it "doesn't create a page" do
22
22
  expect do
23
23
  command.call
24
- end.to_not change { StaticPage.count }
24
+ end.not_to change { StaticPage.count }
25
25
  end
26
26
  end
27
27
 
@@ -24,7 +24,7 @@ module Decidim
24
24
  it "doesn't destroy the category" do
25
25
  expect do
26
26
  command.call
27
- end.to_not change { Category.count }
27
+ end.not_to change { Category.count }
28
28
  end
29
29
  end
30
30
 
@@ -9,7 +9,7 @@ module Decidim
9
9
  context "when everything is ok" do
10
10
  it "destroys the feature" do
11
11
  subject.call
12
- expect(Feature.where(id: feature.id)).to_not exist
12
+ expect(Feature.where(id: feature.id)).not_to exist
13
13
  end
14
14
 
15
15
  it "fires the hooks" do
@@ -23,7 +23,7 @@ module Decidim
23
23
 
24
24
  feature = results[:feature]
25
25
  expect(feature.id).to eq(feature.id)
26
- expect(feature).to_not be_persisted
26
+ expect(feature).not_to be_persisted
27
27
  end
28
28
  end
29
29
  end
@@ -32,7 +32,7 @@ describe Decidim::Admin::DestroyParticipatoryProcessStep, class: true do
32
32
 
33
33
  it "destroys the step" do
34
34
  subject.call(inactive_step)
35
- expect(inactive_step).to_not be_persisted
35
+ expect(inactive_step).not_to be_persisted
36
36
  end
37
37
  end
38
38
  end
@@ -43,7 +43,7 @@ module Decidim
43
43
  command.call
44
44
  category.reload
45
45
 
46
- expect(translated(category.name)).to_not eq("New title")
46
+ expect(translated(category.name)).not_to eq("New title")
47
47
  end
48
48
  end
49
49
 
@@ -15,6 +15,7 @@ module Decidim
15
15
  ca: "La meva funcionalitat",
16
16
  es: "Mi funcionalidad"
17
17
  },
18
+ weight: 3,
18
19
  invalid?: !valid,
19
20
  valid?: valid,
20
21
  settings: {
@@ -39,6 +40,7 @@ module Decidim
39
40
  }.to broadcast(:ok)
40
41
 
41
42
  expect(feature["name"]["en"]).to eq("My feature")
43
+ expect(feature.weight).to eq(3)
42
44
  expect(feature.settings.dummy_global_attribute_1).to eq(true)
43
45
  expect(feature.settings.dummy_global_attribute_2).to eq(false)
44
46
 
@@ -71,7 +73,7 @@ module Decidim
71
73
  }.to broadcast(:invalid)
72
74
 
73
75
  feature.reload
74
- expect(feature.name["en"]).to_not eq("My feature")
76
+ expect(feature.name["en"]).not_to eq("My feature")
75
77
  end
76
78
  end
77
79
  end
@@ -18,7 +18,8 @@ module Decidim
18
18
  description_en: "My description",
19
19
  description_es: "Mi descripción",
20
20
  description_ca: "La meva descripció",
21
- show_statistics: false
21
+ show_statistics: false,
22
+ favicon: File.new(Decidim::Dev.asset("icon.png"))
22
23
  }
23
24
  }
24
25
  end
@@ -43,7 +44,7 @@ module Decidim
43
44
  command.call
44
45
  organization.reload
45
46
 
46
- expect(organization.name).to_not eq("My super organization")
47
+ expect(organization.name).not_to eq("My super organization")
47
48
  end
48
49
  end
49
50
 
@@ -67,6 +68,15 @@ module Decidim
67
68
  expect(organization.homepage_image).to be_present
68
69
  end
69
70
  end
71
+
72
+ context "when there's a favicon in the params" do
73
+ it "does set a favicon for the organization" do
74
+ command.call
75
+ organization.reload
76
+
77
+ expect(organization.favicon.small).to be_present
78
+ end
79
+ end
70
80
  end
71
81
  end
72
82
  end
@@ -29,7 +29,7 @@ module Decidim
29
29
  command.call
30
30
  page.reload
31
31
 
32
- expect(page.slug).to_not eq("new_slug")
32
+ expect(page.slug).not_to eq("new_slug")
33
33
  end
34
34
  end
35
35
 
@@ -64,7 +64,7 @@ describe "Organization admins", type: :feature do
64
64
  click_link "Destroy"
65
65
  end
66
66
 
67
- expect(page).to_not have_content(other_admin.name)
67
+ expect(page).not_to have_content(other_admin.name)
68
68
  end
69
69
  end
70
70
  end
@@ -72,7 +72,7 @@ describe "Organization scopes", type: :feature do
72
72
  end
73
73
 
74
74
  within "table" do
75
- expect(page).to_not have_content(scope.name)
75
+ expect(page).not_to have_content(scope.name)
76
76
  end
77
77
  end
78
78
  end
@@ -88,7 +88,7 @@ describe "Admin manage participatory processes", type: :feature do
88
88
  end
89
89
 
90
90
  within "table" do
91
- expect(page).to_not have_content(translated(participatory_process2.title))
91
+ expect(page).not_to have_content(translated(participatory_process2.title))
92
92
  end
93
93
  end
94
94
  end
@@ -102,7 +102,7 @@ describe "Content pages", type: :feature do
102
102
  end
103
103
 
104
104
  within "table" do
105
- expect(page).to_not have_content(translated(decidim_page.title))
105
+ expect(page).not_to have_content(translated(decidim_page.title))
106
106
  end
107
107
  end
108
108
 
@@ -35,6 +35,7 @@ module Decidim
35
35
  }
36
36
  end
37
37
  let(:slug) { "slug" }
38
+ let(:attachement) { test_file("city.jpeg", "image/jpeg") }
38
39
  let(:attributes) do
39
40
  {
40
41
  "participatory_process" => {
@@ -50,10 +51,15 @@ module Decidim
50
51
  "short_description_en" => short_description[:en],
51
52
  "short_description_es" => short_description[:es],
52
53
  "short_description_ca" => short_description[:ca],
54
+ "hero_image" => attachement,
55
+ "banner_image" => attachement,
53
56
  "slug" => slug
54
57
  }
55
58
  }
56
59
  end
60
+ before do
61
+ Decidim::AttachmentUploader.enable_processing = true
62
+ end
57
63
 
58
64
  subject { described_class.from_params(attributes).with_context(current_organization: organization) }
59
65
 
@@ -61,6 +67,30 @@ module Decidim
61
67
  it { is_expected.to be_valid }
62
68
  end
63
69
 
70
+ context "when hero_image is too big" do
71
+ before do
72
+ allow(Decidim).to receive(:maximum_attachment_size).and_return(5.megabytes)
73
+ expect(subject.hero_image).to receive(:size).twice.and_return(6.megabytes)
74
+ end
75
+
76
+ it { is_expected.not_to be_valid }
77
+ end
78
+
79
+ context "when banner_image is too big" do
80
+ before do
81
+ allow(Decidim).to receive(:maximum_attachment_size).and_return(5.megabytes)
82
+ expect(subject.banner_image).to receive(:size).twice.and_return(6.megabytes)
83
+ end
84
+
85
+ it { is_expected.not_to be_valid }
86
+ end
87
+
88
+ context "when images are not the expected type" do
89
+ let(:attachement) { test_file("Exampledocument.pdf", "application/pdf") }
90
+
91
+ it { is_expected.not_to be_valid }
92
+ end
93
+
64
94
  context "when some language in title is missing" do
65
95
  let(:title) do
66
96
  {
@@ -116,8 +146,8 @@ module Decidim
116
146
  end
117
147
 
118
148
  it "is not valid" do
119
- expect(subject).to_not be_valid
120
- expect(subject.errors[:slug]).to_not be_empty
149
+ expect(subject).not_to be_valid
150
+ expect(subject.errors[:slug]).not_to be_empty
121
151
  end
122
152
  end
123
153
 
@@ -92,9 +92,9 @@ module Decidim
92
92
  it "has an error" do
93
93
  subject.valid?
94
94
 
95
- expect(subject.errors).to_not be_empty
96
- expect(subject.errors[:end_date]).to_not be_empty
97
- expect(subject.errors[:start_date]).to_not be_empty
95
+ expect(subject.errors).not_to be_empty
96
+ expect(subject.errors[:end_date]).not_to be_empty
97
+ expect(subject.errors[:start_date]).not_to be_empty
98
98
  end
99
99
  end
100
100
 
@@ -43,8 +43,8 @@ module Decidim
43
43
  end
44
44
 
45
45
  it "is not valid" do
46
- expect(subject).to_not be_valid
47
- expect(subject.errors[:name]).to_not be_empty
46
+ expect(subject).not_to be_valid
47
+ expect(subject.errors[:name]).not_to be_empty
48
48
  end
49
49
  end
50
50
 
@@ -75,8 +75,8 @@ module Decidim
75
75
  end
76
76
 
77
77
  it "is not valid" do
78
- expect(subject).to_not be_valid
79
- expect(subject.errors[:slug]).to_not be_empty
78
+ expect(subject).not_to be_valid
79
+ expect(subject.errors[:slug]).not_to be_empty
80
80
  end
81
81
  end
82
82
 
@@ -0,0 +1,56 @@
1
+ require "spec_helper"
2
+
3
+ module Decidim
4
+ module Admin
5
+ describe FeatureSettingsHelper do
6
+ let(:options) { double }
7
+ let(:attribute) { double(type: type) }
8
+ let(:type) { :boolean }
9
+ let(:name) { :test }
10
+
11
+ let(:form) do
12
+ double
13
+ end
14
+
15
+ def render_input
16
+ helper.settings_attribute_input(form, attribute, name, options)
17
+ end
18
+
19
+ describe "booleans" do
20
+ let(:type) { :boolean }
21
+
22
+ it "is supported" do
23
+ expect(form).to receive(:check_box).with(:test, options)
24
+ render_input
25
+ end
26
+ end
27
+
28
+ describe "numbers" do
29
+ let(:type) { :integer }
30
+
31
+ it "is supported" do
32
+ expect(form).to receive(:number_field).with(:test, options)
33
+ render_input
34
+ end
35
+ end
36
+
37
+ describe "strings" do
38
+ let(:type) { :string }
39
+
40
+ it "is supported" do
41
+ expect(form).to receive(:text_field).with(:test, options)
42
+ render_input
43
+ end
44
+ end
45
+
46
+ describe "texts" do
47
+ let(:type) { :text }
48
+
49
+ it "is supported" do
50
+ expect(form).to receive(:text_area).with(:test, options)
51
+ render_input
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -4,7 +4,7 @@ require "spec_helper"
4
4
  describe Decidim::Admin::Abilities::AdminUser do
5
5
  let(:user) { build(:user, :admin) }
6
6
 
7
- subject { described_class.new(user) }
7
+ subject { described_class.new(user, {}) }
8
8
 
9
9
  context "when the user is not an admin" do
10
10
  let(:user) { build(:user) }
@@ -17,8 +17,9 @@ describe Decidim::Admin::Abilities::AdminUser do
17
17
 
18
18
  it { is_expected.to be_able_to(:manage, Decidim::ParticipatoryProcess) }
19
19
  it { is_expected.to be_able_to(:manage, Decidim::ParticipatoryProcessStep) }
20
- it { is_expected.to be_able_to(:manage, Decidim::ParticipatoryProcessAttachment) }
20
+ it { is_expected.to be_able_to(:manage, Decidim::Attachment) }
21
21
  it { is_expected.to be_able_to(:manage, Decidim::Scope) }
22
+ it { is_expected.to be_able_to(:manage, :admin_users) }
22
23
 
23
24
  it { is_expected.to be_able_to(:create, Decidim::StaticPage) }
24
25
  it { is_expected.to be_able_to(:update, Decidim::StaticPage) }
@@ -39,10 +40,10 @@ describe Decidim::Admin::Abilities::AdminUser do
39
40
  let(:page) { build(:static_page, :default) }
40
41
  let(:form) { Decidim::Admin::StaticPageForm.new(slug: page.slug) }
41
42
 
42
- it { is_expected.to_not be_able_to(:update_slug, page) }
43
- it { is_expected.to_not be_able_to(:update_slug, form) }
44
- it { is_expected.to_not be_able_to(:destroy, page) }
45
- it { is_expected.to_not be_able_to(:destroy, form) }
43
+ it { is_expected.not_to be_able_to(:update_slug, page) }
44
+ it { is_expected.not_to be_able_to(:update_slug, form) }
45
+ it { is_expected.not_to be_able_to(:destroy, page) }
46
+ it { is_expected.not_to be_able_to(:destroy, form) }
46
47
  end
47
48
 
48
49
  context "when a page is not default one" do
@@ -5,14 +5,9 @@ describe Decidim::Admin::Abilities::ParticipatoryProcessAdmin do
5
5
  let(:user) { build(:user) }
6
6
  let(:user_process) { create :participatory_process, organization: user.organization }
7
7
 
8
- subject { described_class.new(user) }
8
+ subject { described_class.new(user, {}) }
9
9
 
10
10
  context "when the user does not admin any process" do
11
- it "doesn't have any permission" do
12
- expect(subject.permissions[:can]).to be_empty
13
- expect(subject.permissions[:cannot]).to be_empty
14
- end
15
-
16
11
  it { is_expected.not_to be_able_to(:read, :admin_dashboard) }
17
12
  end
18
13
 
@@ -22,11 +17,11 @@ describe Decidim::Admin::Abilities::ParticipatoryProcessAdmin do
22
17
  let(:unmanaged_process_step) { create :participatory_process_step, participatory_process: unmanaged_process }
23
18
  let(:user_process_attachment) do
24
19
  Decidim::AttachmentUploader.enable_processing = true
25
- create :participatory_process_attachment, participatory_process: user_process
20
+ create :attachment, attached_to: user_process
26
21
  end
27
22
  let(:unmanaged_process_attachment) do
28
23
  Decidim::AttachmentUploader.enable_processing = true
29
- create :participatory_process_attachment, participatory_process: unmanaged_process
24
+ create :attachment, attached_to: unmanaged_process
30
25
  end
31
26
 
32
27
  before do
@@ -41,6 +36,8 @@ describe Decidim::Admin::Abilities::ParticipatoryProcessAdmin do
41
36
  it { is_expected.not_to be_able_to(:create, Decidim::ParticipatoryProcess) }
42
37
  it { is_expected.not_to be_able_to(:manage, unmanaged_process) }
43
38
 
39
+ it { is_expected.not_to be_able_to(:manage, :admin_users) }
40
+
44
41
  it { is_expected.to be_able_to(:manage, user_process_step) }
45
42
  it { is_expected.not_to be_able_to(:manage, unmanaged_process_step) }
46
43
 
@@ -49,7 +49,7 @@ RSpec.shared_examples "manage process admins examples" do
49
49
  end
50
50
 
51
51
  within "#process_admins table" do
52
- expect(page).to_not have_content(other_user.email)
52
+ expect(page).not_to have_content(other_user.email)
53
53
  end
54
54
  end
55
55
  end
@@ -1,10 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # frozen_string_literal: true
3
+ require "decidim/admin/test/manage_attachments_examples"
4
+
3
5
  RSpec.shared_examples "manage process attachments examples" do
4
- let!(:attachment) do
5
- Decidim::AttachmentUploader.enable_processing = true
6
- create(:participatory_process_attachment, participatory_process: participatory_process)
7
- end
6
+ let(:attached_to) { participatory_process }
8
7
 
9
8
  before do
10
9
  switch_to_host(organization.host)
@@ -13,94 +12,5 @@ RSpec.shared_examples "manage process attachments examples" do
13
12
  click_link "Attachments"
14
13
  end
15
14
 
16
- it "lists all the attachments for the process" do
17
- within "#attachments table" do
18
- expect(page).to have_content(translated(attachment.title, locale: :en))
19
- expect(page).to have_content(attachment.file_type)
20
- end
21
- end
22
-
23
- it "can view an attachment details" do
24
- within "#attachments table" do
25
- click_link translated(attachment.title, locale: :en)
26
- end
27
-
28
- expect(page).to have_content(stripped(translated(attachment.title, locale: :en)))
29
- expect(page).to have_content(stripped(translated(attachment.description, locale: :en)))
30
- expect(page).to have_content(attachment.file_type)
31
- expect(page).to have_css("img[src~='#{attachment.thumbnail_url}']")
32
- end
33
-
34
- it "can add attachments to a process" do
35
- find("#attachments .actions .new").click
36
-
37
- within ".new_participatory_process_attachment" do
38
- fill_in_i18n(
39
- :participatory_process_attachment_title,
40
- "#title-tabs",
41
- en: "Very Important Document",
42
- es: "Documento Muy Importante",
43
- ca: "Document Molt Important"
44
- )
45
-
46
- fill_in_i18n(
47
- :participatory_process_attachment_description,
48
- "#description-tabs",
49
- en: "This document contains important information",
50
- es: "Este documento contiene información importante",
51
- ca: "Aquest document conté informació important"
52
- )
53
-
54
- attach_file :participatory_process_attachment_file, File.join(File.dirname(__FILE__), "..", "..", "..", "decidim-dev", "spec", "support", "Exampledocument.pdf")
55
- find("*[type=submit]").click
56
- end
57
-
58
- within ".flash" do
59
- expect(page).to have_content("successfully")
60
- end
61
-
62
- within "#attachments table" do
63
- expect(page).to have_link("Very Important Document")
64
- end
65
- end
66
-
67
- it "can delete an attachment from a process" do
68
- within find("tr", text: stripped(translated(attachment.title))) do
69
- click_link "Destroy"
70
- end
71
-
72
- within ".flash" do
73
- expect(page).to have_content("successfully")
74
- end
75
-
76
- expect(page).to_not have_content(translated(attachment.title, locale: :en))
77
- end
78
-
79
- it "can update an attachment" do
80
- within "#attachments" do
81
- within find("tr", text: stripped(translated(attachment.title))) do
82
- click_link "Edit"
83
- end
84
- end
85
-
86
- within ".edit_participatory_process_attachment" do
87
- fill_in_i18n(
88
- :participatory_process_attachment_title,
89
- "#title-tabs",
90
- en: "This is a nice photo",
91
- es: "Una foto muy guay",
92
- ca: "Aquesta foto és ben xula"
93
- )
94
-
95
- find("*[type=submit]").click
96
- end
97
-
98
- within ".flash" do
99
- expect(page).to have_content("successfully")
100
- end
101
-
102
- within "#attachments table" do
103
- expect(page).to have_link("This is a nice photo")
104
- end
105
- end
15
+ it_behaves_like "manage attachments examples"
106
16
  end