decidim 0.0.1 → 0.0.2

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 (313) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +4 -5
  3. data/.eslintignore +2 -0
  4. data/.eslintrc.json +2 -0
  5. data/.gitignore +1 -0
  6. data/.inch.yml +5 -0
  7. data/.mention-bot +8 -0
  8. data/.rubocop.yml +8 -31
  9. data/.ruby-version +1 -1
  10. data/.travis.yml +24 -14
  11. data/Dockerfile +1 -3
  12. data/Gemfile +1 -3
  13. data/Gemfile.lock +175 -138
  14. data/README.md +63 -5
  15. data/Rakefile +1 -1
  16. data/codecov.yml +1 -0
  17. data/decidim-admin/Rakefile +1 -1
  18. data/decidim-admin/app/assets/javascripts/decidim/admin/application.js.es6 +0 -1
  19. data/decidim-admin/app/assets/stylesheets/decidim/admin/_foundation_and_overrides.scss +1 -0
  20. data/decidim-admin/app/assets/stylesheets/decidim/admin/_icons.scss +9 -0
  21. data/decidim-admin/app/assets/stylesheets/decidim/admin/application.scss +1 -0
  22. data/decidim-admin/app/commands/decidim/admin/create_feature.rb +3 -1
  23. data/decidim-admin/app/commands/decidim/admin/create_participatory_process.rb +26 -14
  24. data/decidim-admin/app/commands/decidim/admin/destroy_feature.rb +5 -0
  25. data/decidim-admin/app/commands/decidim/admin/destroy_participatory_process_step.rb +29 -0
  26. data/decidim-admin/app/commands/decidim/admin/update_feature.rb +47 -0
  27. data/decidim-admin/app/commands/decidim/admin/update_organization.rb +3 -1
  28. data/decidim-admin/app/controllers/decidim/admin/features_controller.rb +37 -2
  29. data/decidim-admin/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +0 -16
  30. data/decidim-admin/app/controllers/decidim/admin/participatory_process_steps_controller.rb +10 -3
  31. data/decidim-admin/app/controllers/decidim/admin/static_pages_controller.rb +4 -4
  32. data/decidim-admin/app/controllers/decidim/admin/user_groups_controller.rb +32 -0
  33. data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +87 -0
  34. data/decidim-admin/app/forms/decidim/admin/category_form.rb +1 -7
  35. data/decidim-admin/app/forms/decidim/admin/feature_form.rb +26 -0
  36. data/decidim-admin/app/forms/decidim/admin/organization_form.rb +2 -0
  37. data/decidim-admin/app/forms/decidim/admin/participatory_process_step_form.rb +1 -1
  38. data/decidim-admin/app/forms/decidim/admin/static_page_form.rb +2 -3
  39. data/decidim-admin/app/models/decidim/admin/abilities/admin_user.rb +6 -0
  40. data/decidim-admin/app/views/decidim/admin/features/_feature.html.erb +4 -1
  41. data/decidim-admin/app/views/decidim/admin/features/_form.html.erb +49 -0
  42. data/decidim-admin/app/views/decidim/admin/features/_settings_fields.html.erb +5 -0
  43. data/decidim-admin/app/views/decidim/admin/features/edit.html.erb +9 -0
  44. data/decidim-admin/app/views/decidim/admin/features/index.html.erb +6 -0
  45. data/decidim-admin/app/views/decidim/admin/features/new.html.erb +1 -1
  46. data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +8 -0
  47. data/decidim-admin/app/views/decidim/admin/participatory_process_attachments/_form.html.erb +1 -1
  48. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/index.html.erb +2 -6
  49. data/decidim-admin/app/views/decidim/admin/user_groups/index.html.erb +32 -0
  50. data/decidim-admin/app/views/decidim/admin/users/_form.html.erb +6 -0
  51. data/decidim-admin/app/views/decidim/admin/users/index.html.erb +54 -0
  52. data/decidim-admin/app/views/decidim/admin/users/new.html.erb +11 -0
  53. data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +2 -0
  54. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +1 -1
  55. data/decidim-admin/config/i18n-tasks.yml +1 -0
  56. data/decidim-admin/config/locales/ca.yml +103 -5
  57. data/decidim-admin/config/locales/en.yml +57 -4
  58. data/decidim-admin/config/locales/es.yml +103 -5
  59. data/decidim-admin/config/routes.rb +11 -0
  60. data/decidim-admin/decidim-admin.gemspec +2 -3
  61. data/decidim-admin/lib/decidim/admin/features/base_controller.rb +7 -3
  62. data/decidim-admin/lib/decidim/admin/test/factories.rb +8 -0
  63. data/decidim-admin/spec/commands/create_category_spec.rb +2 -1
  64. data/decidim-admin/spec/commands/create_feature_spec.rb +21 -2
  65. data/decidim-admin/spec/commands/create_participatory_process_spec.rb +13 -1
  66. data/decidim-admin/spec/commands/create_static_page_spec.rb +1 -1
  67. data/decidim-admin/spec/commands/destroy_participatory_process_step_spec.rb +45 -0
  68. data/decidim-admin/spec/commands/update_category_spec.rb +2 -1
  69. data/decidim-admin/spec/commands/update_feature_spec.rb +79 -0
  70. data/decidim-admin/spec/commands/update_organization_spec.rb +3 -2
  71. data/decidim-admin/spec/commands/update_static_page_spec.rb +3 -2
  72. data/decidim-admin/spec/factories.rb +2 -9
  73. data/decidim-admin/spec/features/admin_manages_features_spec.rb +84 -2
  74. data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +71 -0
  75. data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +24 -0
  76. data/decidim-admin/spec/forms/category_form_spec.rb +3 -7
  77. data/decidim-admin/spec/forms/organization_form_spec.rb +8 -2
  78. data/decidim-admin/spec/forms/participatory_process_form_spec.rb +2 -1
  79. data/decidim-admin/spec/forms/participatory_process_step_form_spec.rb +2 -21
  80. data/decidim-admin/spec/forms/scope_form_spec.rb +1 -1
  81. data/decidim-admin/spec/forms/static_page_form_spec.rb +2 -7
  82. data/decidim-admin/spec/models/abilities/admin_user_spec.rb +22 -0
  83. data/decidim-admin/spec/shared/manage_process_attachments_examples.rb +2 -1
  84. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +2 -15
  85. data/decidim-admin/spec/spec_helper.rb +3 -1
  86. data/decidim-api/Rakefile +1 -1
  87. data/decidim-api/decidim-api.gemspec +3 -3
  88. data/decidim-api/spec/factories.rb +2 -2
  89. data/decidim-api/spec/spec_helper.rb +3 -1
  90. data/decidim-comments/Rakefile +1 -1
  91. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  92. data/decidim-comments/app/commands/decidim/comments/vote_comment.rb +38 -0
  93. data/decidim-comments/app/frontend/application/icon.component.jsx +9 -4
  94. data/decidim-comments/app/frontend/application/icon.component.test.jsx +12 -2
  95. data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +43 -11
  96. data/decidim-comments/app/frontend/comments/add_comment_form.mutation.graphql +1 -4
  97. data/decidim-comments/app/frontend/comments/comment.component.jsx +67 -7
  98. data/decidim-comments/app/frontend/comments/comment.component.test.jsx +49 -1
  99. data/decidim-comments/app/frontend/comments/comment_data.fragment.graphql +3 -0
  100. data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +51 -6
  101. data/decidim-comments/app/frontend/comments/comment_order_selector.component.test.jsx +12 -1
  102. data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +11 -5
  103. data/decidim-comments/app/frontend/comments/comment_thread.component.test.jsx +13 -3
  104. data/decidim-comments/app/frontend/comments/comment_thread.fragment.graphql +1 -3
  105. data/decidim-comments/app/frontend/comments/comments.component.jsx +37 -11
  106. data/decidim-comments/app/frontend/comments/comments.component.test.jsx +44 -7
  107. data/decidim-comments/app/frontend/comments/comments.query.graphql +2 -2
  108. data/decidim-comments/app/frontend/comments/down_vote.fragment.graphql +6 -0
  109. data/decidim-comments/app/frontend/comments/down_vote.mutation.graphql +7 -0
  110. data/decidim-comments/app/frontend/comments/down_vote_button.component.jsx +84 -0
  111. data/decidim-comments/app/frontend/comments/down_vote_button.component.test.jsx +48 -0
  112. data/decidim-comments/app/frontend/comments/up_vote.fragment.graphql +6 -0
  113. data/decidim-comments/app/frontend/comments/up_vote.mutation.graphql +7 -0
  114. data/decidim-comments/app/frontend/comments/up_vote_button.component.jsx +84 -0
  115. data/decidim-comments/app/frontend/comments/up_vote_button.component.test.jsx +48 -0
  116. data/decidim-comments/app/frontend/comments/vote_button.component.jsx +19 -0
  117. data/decidim-comments/app/frontend/comments/vote_button_component.test.jsx +38 -0
  118. data/decidim-comments/app/frontend/support/generate_comments_data.js +7 -2
  119. data/decidim-comments/app/helpers/decidim/comments/comments_helper.rb +1 -1
  120. data/decidim-comments/app/models/decidim/comments/application_record.rb +9 -0
  121. data/decidim-comments/app/models/decidim/comments/comment.rb +19 -4
  122. data/decidim-comments/app/models/decidim/comments/comment_vote.rb +22 -0
  123. data/decidim-comments/app/models/decidim/comments/seed.rb +27 -0
  124. data/decidim-comments/app/queries/decidim/comments/comments_with_replies.rb +88 -0
  125. data/decidim-comments/app/resolvers/decidim/comments/vote_comment_resolver.rb +20 -0
  126. data/decidim-comments/app/types/decidim/comments/comment_mutation_type.rb +19 -0
  127. data/decidim-comments/app/types/decidim/comments/comment_type.rb +38 -2
  128. data/decidim-comments/config/locales/en.yml +1 -0
  129. data/decidim-comments/db/migrate/20161130143508_create_comments.rb +4 -2
  130. data/decidim-comments/db/migrate/20161219150806_create_comment_votes.rb +13 -0
  131. data/decidim-comments/decidim-comments.gemspec +0 -3
  132. data/decidim-comments/lib/decidim/comments/mutation_extensions.rb +9 -0
  133. data/decidim-comments/lib/decidim/comments/query_extensions.rb +3 -5
  134. data/decidim-comments/lib/decidim/comments/test/factories.rb +22 -0
  135. data/decidim-comments/spec/commands/vote_comment_spec.rb +124 -0
  136. data/decidim-comments/spec/factories.rb +2 -9
  137. data/decidim-comments/spec/features/comments_spec.rb +37 -0
  138. data/decidim-comments/spec/models/comment_spec.rb +34 -0
  139. data/decidim-comments/spec/models/comment_vote_spec.rb +44 -0
  140. data/decidim-comments/spec/models/seed_spec.rb +19 -0
  141. data/decidim-comments/spec/queries/comments_with_replies_spec.rb +86 -0
  142. data/decidim-comments/spec/spec_helper.rb +3 -1
  143. data/decidim-comments/spec/support/dummy.rb +1 -1
  144. data/decidim-comments/spec/types/comment_mutation_type_spec.rb +46 -0
  145. data/decidim-comments/spec/types/comment_type_spec.rb +57 -3
  146. data/{decidim-api → decidim-comments}/spec/types/mutation_type_spec.rb +11 -0
  147. data/decidim-dev/README.md +7 -11
  148. data/decidim-dev/decidim-dev.gemspec +5 -4
  149. data/decidim-dev/lib/decidim/dev.rb +20 -0
  150. data/decidim-dev/lib/decidim/dev/assets/Exampledocument.docx +0 -0
  151. data/decidim-dev/lib/decidim/dev/assets/Exampledocument.odt +0 -0
  152. data/decidim-dev/lib/decidim/dev/assets/Exampledocument.pdf +0 -0
  153. data/decidim-dev/lib/decidim/dev/assets/avatar.svg +14 -0
  154. data/decidim-dev/lib/decidim/dev/assets/city.jpeg +0 -0
  155. data/decidim-dev/lib/decidim/dev/assets/city2.jpeg +0 -0
  156. data/decidim-dev/lib/decidim/dev/assets/city3.jpeg +0 -0
  157. data/decidim-dev/lib/decidim/dev/assets/malicious.jpg +0 -0
  158. data/decidim-dev/lib/decidim/{common_rake.rb → dev/common_rake.rb} +1 -1
  159. data/decidim-dev/lib/decidim/{dummy_authorization_handler.rb → dev/dummy_authorization_handler.rb} +4 -4
  160. data/decidim-dev/lib/decidim/{test → dev/test}/authorization_shared_examples.rb +0 -8
  161. data/decidim-dev/lib/decidim/{test → dev/test}/base_spec_helper.rb +4 -1
  162. data/decidim-dev/lib/decidim/{test → dev/test}/i18n_spec.rb +1 -1
  163. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/action_mailer.rb +0 -0
  164. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/active_job.rb +0 -0
  165. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/authenticated_controller_context.rb +0 -0
  166. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/authorization_handlers.rb +1 -1
  167. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/capybara.rb +3 -10
  168. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/database_cleaner.rb +0 -0
  169. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/engine_routes.rb +0 -0
  170. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/factory_girl.rb +0 -0
  171. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/feature.rb +10 -0
  172. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/feature_context.rb +2 -2
  173. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/helpers.rb +4 -0
  174. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/i18n.rb +1 -0
  175. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/bind-polyfill.js +18 -0
  176. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/object-assign-polyfill.js +24 -0
  177. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/promise.js +233 -0
  178. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/translation_helpers.rb +0 -0
  179. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/warden.rb +0 -0
  180. data/decidim-dev/lib/decidim/{test → dev/test}/rspec_support/wisper.rb +0 -0
  181. data/decidim-dev/lib/generators/decidim/dummy_generator.rb +2 -2
  182. data/decidim-dev/lib/generators/decidim/templates/decidim_dev.rb +2 -0
  183. data/decidim-meetings/Rakefile +1 -1
  184. data/decidim-meetings/app/assets/images/decidim/meetings/icon.svg +1 -0
  185. data/decidim-meetings/app/commands/decidim/meetings/admin/create_meeting.rb +2 -0
  186. data/decidim-meetings/app/commands/decidim/meetings/admin/update_meeting.rb +2 -0
  187. data/decidim-meetings/app/controllers/decidim/meetings/meetings_controller.rb +30 -6
  188. data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +14 -0
  189. data/decidim-meetings/app/helpers/decidim/meetings/application_helper.rb +10 -0
  190. data/decidim-meetings/app/models/decidim/meetings/meeting.rb +18 -1
  191. data/decidim-meetings/app/services/decidim/meetings/meeting_search.rb +48 -0
  192. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +9 -2
  193. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +24 -0
  194. data/decidim-meetings/app/views/decidim/meetings/meetings/_meetings.html.erb +30 -0
  195. data/decidim-meetings/app/views/decidim/meetings/meetings/_tags.html.erb +10 -0
  196. data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +8 -26
  197. data/decidim-meetings/app/views/decidim/meetings/meetings/index.js.erb +2 -0
  198. data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +1 -0
  199. data/decidim-meetings/config/locales/ca.yml +7 -0
  200. data/decidim-meetings/config/locales/en.yml +7 -0
  201. data/decidim-meetings/config/locales/es.yml +7 -0
  202. data/decidim-meetings/db/migrate/20161130121354_create_meetings.rb +2 -0
  203. data/decidim-meetings/decidim-meetings.gemspec +2 -0
  204. data/decidim-meetings/lib/decidim/meetings/feature.rb +7 -2
  205. data/decidim-meetings/lib/decidim/meetings/list_engine.rb +3 -0
  206. data/decidim-meetings/spec/commands/create_meeting_spec.rb +21 -0
  207. data/decidim-meetings/spec/commands/update_meeting_spec.rb +17 -2
  208. data/decidim-meetings/spec/factories.rb +3 -3
  209. data/decidim-meetings/spec/features/explore_meetings_spec.rb +53 -0
  210. data/decidim-meetings/spec/forms/meeting_form_spec.rb +19 -1
  211. data/decidim-meetings/spec/models/meeting_spec.rb +20 -0
  212. data/decidim-meetings/spec/services/meeting_search_spec.rb +146 -0
  213. data/decidim-meetings/spec/shared/admin_shared_context.rb +4 -2
  214. data/decidim-meetings/spec/shared/manage_meetings_examples.rb +5 -2
  215. data/decidim-meetings/spec/spec_helper.rb +1 -1
  216. data/decidim-pages/Rakefile +1 -1
  217. data/decidim-pages/app/assets/images/decidim/pages/icon.svg +3 -0
  218. data/decidim-pages/app/commands/decidim/pages/admin/update_page.rb +1 -2
  219. data/decidim-pages/app/forms/decidim/pages/admin/page_form.rb +0 -1
  220. data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +0 -1
  221. data/decidim-pages/app/views/decidim/pages/application/show.html.erb +3 -3
  222. data/decidim-pages/config/i18n-tasks.yml +1 -0
  223. data/decidim-pages/config/locales/ca.yml +5 -1
  224. data/decidim-pages/config/locales/en.yml +5 -1
  225. data/decidim-pages/config/locales/es.yml +5 -1
  226. data/decidim-pages/db/migrate/20170110145040_remove_commentable_flag_from_pages.rb +5 -0
  227. data/decidim-pages/lib/decidim/pages/feature.rb +13 -3
  228. data/decidim-pages/spec/commands/update_page_spec.rb +2 -1
  229. data/decidim-pages/spec/factories.rb +2 -2
  230. data/decidim-pages/spec/features/admin_spec.rb +0 -11
  231. data/decidim-pages/spec/features/page_show_spec.rb +13 -10
  232. data/decidim-pages/spec/forms/page_form_spec.rb +4 -4
  233. data/decidim-pages/spec/spec_helper.rb +3 -1
  234. data/decidim-proposals/Rakefile +1 -1
  235. data/decidim-proposals/app/assets/config/decidim_proposals_manifest.css +1 -0
  236. data/decidim-proposals/app/assets/config/decidim_proposals_manifest.js +1 -0
  237. data/decidim-proposals/app/assets/images/decidim/proposals/icon.svg +1 -0
  238. data/decidim-proposals/app/assets/javascripts/decidim/proposals/social_share.js +2 -0
  239. data/decidim-proposals/app/assets/stylesheets/decidim/proposals/social_share.css.scss +14 -0
  240. data/decidim-proposals/app/commands/decidim/proposals/create_proposal.rb +5 -3
  241. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +3 -3
  242. data/decidim-proposals/app/controllers/decidim/proposals/proposal_votes_controller.rb +25 -0
  243. data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +33 -6
  244. data/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb +7 -6
  245. data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +6 -6
  246. data/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb +3 -1
  247. data/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb +27 -0
  248. data/decidim-proposals/app/models/decidim/proposals/proposal.rb +8 -0
  249. data/decidim-proposals/app/models/decidim/proposals/proposal_vote.rb +20 -0
  250. data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +39 -11
  251. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +2 -2
  252. data/decidim-proposals/app/views/decidim/proposals/proposal_votes/create.js.erb +5 -0
  253. data/decidim-proposals/app/views/decidim/proposals/proposals/_count.html.erb +1 -0
  254. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +26 -0
  255. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal.html.erb +11 -2
  256. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposals.html.erb +4 -0
  257. data/decidim-proposals/app/views/decidim/proposals/proposals/_share.html.erb +33 -0
  258. data/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb +13 -0
  259. data/decidim-proposals/app/views/decidim/proposals/proposals/_votes_count.html.erb +6 -0
  260. data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +11 -11
  261. data/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb +5 -0
  262. data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +31 -4
  263. data/decidim-proposals/config/i18n-tasks.yml +1 -0
  264. data/decidim-proposals/config/initializers/social_share_button.rb +4 -0
  265. data/decidim-proposals/config/locales/ca.yml +28 -2
  266. data/decidim-proposals/config/locales/en.yml +27 -1
  267. data/decidim-proposals/config/locales/es.yml +28 -2
  268. data/decidim-proposals/db/migrate/20170112115253_create_proposal_votes.rb +12 -0
  269. data/decidim-proposals/db/migrate/20170113114245_add_text_search_indexes.rb +6 -0
  270. data/decidim-proposals/db/migrate/20170118120151_add_counter_cache_votes_to_proposals.rb +5 -0
  271. data/decidim-proposals/decidim-proposals.gemspec +2 -1
  272. data/decidim-proposals/lib/decidim/proposals/engine.rb +8 -1
  273. data/decidim-proposals/lib/decidim/proposals/feature.rb +30 -4
  274. data/decidim-proposals/spec/commands/decidim/proposals/create_proposal_spec.rb +10 -3
  275. data/decidim-proposals/spec/factories.rb +9 -4
  276. data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +2 -0
  277. data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +2 -0
  278. data/decidim-proposals/spec/features/proposals_spec.rb +41 -31
  279. data/decidim-proposals/spec/features/vote_proposal_spec.rb +78 -0
  280. data/decidim-proposals/spec/forms/decidim/proposals/proposal_form_spec.rb +11 -10
  281. data/decidim-proposals/spec/helpers/proposal_votes_helper_spec.rb +28 -0
  282. data/decidim-proposals/spec/lib/decidim/proposals/feature_spec.rb +1 -1
  283. data/decidim-proposals/spec/models/decidim/proposals/proposal_spec.rb +20 -3
  284. data/decidim-proposals/spec/models/decidim/proposals/proposal_vote_spec.rb +43 -0
  285. data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +50 -4
  286. data/decidim-proposals/spec/shared/manage_proposals_examples.rb +1 -1
  287. data/decidim-proposals/spec/spec_helper.rb +1 -1
  288. data/decidim-system/Rakefile +1 -1
  289. data/decidim-system/app/commands/decidim/system/register_organization.rb +13 -12
  290. data/decidim-system/decidim-system.gemspec +2 -3
  291. data/decidim-system/spec/factories.rb +1 -1
  292. data/decidim-system/spec/spec_helper.rb +3 -1
  293. data/docs/social_providers.md +41 -0
  294. data/karma.conf.js +4 -2
  295. data/lib/generators/decidim/app_generator.rb +6 -0
  296. data/lib/generators/decidim/demo_generator.rb +2 -2
  297. data/lib/generators/decidim/install_generator.rb +5 -4
  298. data/lib/generators/decidim/templates/Gemfile.erb +3 -5
  299. data/lib/generators/decidim/templates/initializer.rb +1 -1
  300. data/lib/generators/decidim/templates/secrets.yml.erb +26 -0
  301. data/lib/generators/decidim/templates/social_share_button.rb +7 -0
  302. data/package.json +16 -6
  303. data/webpack.config.js +23 -8
  304. data/yarn.lock +401 -345
  305. metadata +130 -48
  306. data/Gemfile.common +0 -1
  307. data/decidim-admin/Gemfile +0 -6
  308. data/decidim-comments/Gemfile +0 -6
  309. data/decidim-comments/package.json +0 -21
  310. data/decidim-dev/Gemfile +0 -6
  311. data/decidim-dev/lib/decidim/test/rspec_support/bullet.rb +0 -15
  312. data/decidim-dev/lib/generators/decidim/templates/bullet.rb +0 -6
  313. data/decidim-system/Gemfile +0 -6
@@ -0,0 +1,6 @@
1
+ <div class="field">
2
+ <%= form.text_field :name %>
3
+ </div>
4
+ <div class="field">
5
+ <%= form.email_field :email %>
6
+ </div>
@@ -0,0 +1,54 @@
1
+ <% content_for :title do %>
2
+ <h2><%= t "decidim.admin.titles.users" %></h2>
3
+ <% end %>
4
+
5
+ <div class="actions title">
6
+ <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.user.name", scope: "decidim.admin")), ['new', 'user'], class: 'new' %>
7
+ </div>
8
+
9
+ <table class="stack">
10
+ <thead>
11
+ <tr>
12
+ <th><%= t("models.user.fields.name", scope: "decidim.admin") %></th>
13
+ <th><%= t("models.user.fields.email", scope: "decidim.admin") %></th>
14
+ <th><%= t("models.user.fields.invitation_sent_at", scope: "decidim.admin") %></th>
15
+ <th><%= t("models.user.fields.invitation_accepted_at", scope: "decidim.admin") %></th>
16
+ <th><%= t("models.user.fields.last_sign_in_at", scope: "decidim.admin") %></th>
17
+ <th><%= t("models.user.fields.created_at", scope: "decidim.admin") %></th>
18
+ <th class="actions"><%= t("actions.title", scope: "decidim.admin") %></th>
19
+ </tr>
20
+ </thead>
21
+ <tbody>
22
+ <% @users.each do |user| %>
23
+ <tr data-user-id="<%= user.id %>">
24
+ <td><%= user.name %></td>
25
+ <td><%= user.email %></td>
26
+ <td>
27
+ <% if user.invitation_sent_at %>
28
+ <%= l user.invitation_sent_at, format: :short %>
29
+ <% end %>
30
+ </td>
31
+ <td>
32
+ <% if user.invitation_accepted_at %>
33
+ <%= l user.invitation_accepted_at, format: :short %>
34
+ <% end %>
35
+ </td>
36
+ <td>
37
+ <% if user.last_sign_in_at %>
38
+ <%= l user.last_sign_in_at, format: :short %>
39
+ <% end %>
40
+ </td>
41
+ <td><%= l user.created_at, format: :short %></td>
42
+ <td class="actions">
43
+ <% if can?(:invite, user) && user.invited_to_sign_up? %>
44
+ <%= link_to t("actions.resend_invitation", scope: "decidim.admin"), ['resend_invitation', user], method: :post %>
45
+ <% end %>
46
+
47
+ <% if can? :destroy, user %>
48
+ <%= link_to t("actions.destroy", scope: "decidim.admin"), user, method: :delete, class: "small alert button", data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
49
+ <% end %>
50
+ </td>
51
+ </tr>
52
+ <% end %>
53
+ </tbody>
54
+ </table>
@@ -0,0 +1,11 @@
1
+ <% content_for :title do %>
2
+ <h2><%= t ".title" %></h2>
3
+ <% end %>
4
+
5
+ <%= form_for(@form) do |f| %>
6
+ <%= render partial: 'form', object: f %>
7
+
8
+ <div class="actions">
9
+ <%= f.submit t(".create") %>
10
+ </div>
11
+ <% end %>
@@ -11,6 +11,8 @@
11
11
  <%= active_link_to t("menu.participatory_processes", scope: "decidim.admin"), decidim_admin.participatory_processes_path, active: :inclusive %>
12
12
  <%= active_link_to t("menu.static_pages", scope: "decidim.admin"), decidim_admin.static_pages_path, active: :inclusive if can? :read, Decidim::StaticPage %>
13
13
  <%= active_link_to t("menu.scopes", scope: "decidim.admin"), decidim_admin.scopes_path, active: :inclusive if can? :read, Decidim::Scope %>
14
+ <%= active_link_to t("menu.users", scope: "decidim.admin"), decidim_admin.users_path, active: :inclusive if can? :read, Decidim::User %>
15
+ <%= active_link_to t("menu.user_groups", scope: "decidim.admin"), decidim_admin.user_groups_path, active: :inclusive if can? :index, Decidim::UserGroup %>
14
16
  <%= active_link_to t("menu.settings", scope: "decidim.admin"), decidim_admin.edit_organization_path, active: :inclusive if can? :read, current_organization %>
15
17
  </nav>
16
18
 
@@ -45,7 +45,7 @@
45
45
  </div>
46
46
  <div class="medium-9 columns">
47
47
  <div class="tabs-content vertical">
48
- <div class="tabs-panel is-active">
48
+ <div class="tabs-panel" aria-hidden="false">
49
49
  <%= yield %>
50
50
  </div>
51
51
  </div>
@@ -91,6 +91,7 @@ search:
91
91
  ignore_unused:
92
92
  - activerecord.attributes.*
93
93
  - activemodel.attributes.*
94
+ - decidim.admin.participatory_process_steps.default_title
94
95
  # - '{devise,kaminari,will_paginate}.*'
95
96
  # - 'simple_form.{yes,no}'
96
97
  # - 'simple_form.{placeholders,hints,labels}.*'
@@ -1,4 +1,50 @@
1
1
  ca:
2
+ activemodel:
3
+ attributes:
4
+ category:
5
+ description: Descripció
6
+ name: Nom
7
+ parent: Pare
8
+ feature:
9
+ name: Nom
10
+ organization:
11
+ default_locale: Idioma per defecte
12
+ description: Descripció
13
+ homepage_image: Imatge de la portada
14
+ logo: Logotip
15
+ name: Nom
16
+ show_statistics: Mostra Estadístiques
17
+ welcome_text: Text de benvinguda
18
+ participatory_process:
19
+ banner_image: Imatge de bandera
20
+ description: Descripció
21
+ hashtag: Etiqueta
22
+ hero_image: Imatge de portada
23
+ promoted: Promogut
24
+ short_description: Descripció breu
25
+ slug: Nom curt d'URL
26
+ subtitle: Subtítol
27
+ title: Títol
28
+ participatory_process_attachment:
29
+ description: Descripció
30
+ file: Arxiu
31
+ title: Títol
32
+ participatory_process_step:
33
+ description: Descripció
34
+ end_date: Data de finalització
35
+ short_description: Descripció breu
36
+ start_date: Data d'inici
37
+ title: Títol
38
+ participatory_process_user_role:
39
+ email: Correu electrònic
40
+ scope:
41
+ name: Nom
42
+ organization: Organització
43
+ static_page:
44
+ content: Contingut
45
+ organization: Organització
46
+ slug: Nom curt d'URL
47
+ title: Títol
2
48
  activerecord:
3
49
  attributes:
4
50
  decidim/participatory_process:
@@ -10,14 +56,16 @@ ca:
10
56
  configure: Configurar
11
57
  confirm_destroy: Segur que ho vols eliminar?
12
58
  create: Crear
13
- deactivate: Desactivar
14
59
  destroy: Eliminar
15
60
  edit: Editar
61
+ manage: Gestionar
16
62
  new: Nou %{name}
17
63
  preview: Previsualitzar
18
64
  publish: Publicar
65
+ resend_invitation: Tornar a enviar invitació
19
66
  title: Accions
20
67
  unpublish: Despublicar
68
+ verify: Verificar
21
69
  categories:
22
70
  create:
23
71
  error: S'ha produït un error en crear aquesta categoria.
@@ -56,12 +104,25 @@ ca:
56
104
  destroy:
57
105
  error: S'ha produït un error destruir aquesta funcionalitat.
58
106
  success: Característica eliminada correctament.
107
+ edit:
108
+ title: Editar funcionalitat
109
+ update: Actualitza
110
+ form:
111
+ global_settings: Configuració global
112
+ step_settings: Configuració de fase
59
113
  index:
60
114
  add: Afegir funcionalitat
115
+ headers:
116
+ actions: Accions
117
+ name: Nom de la funcionalitat
118
+ type: Tipus de funcionalitat
61
119
  new:
62
120
  add: Afegir funcionalitat
63
121
  title: 'Afegir funcionalitat: %{name}'
64
122
  title: Funcionalitats
123
+ update:
124
+ error: S'ha produït un error en actualitzar aquesta funcionalitat.
125
+ success: La funcionalitat s'ha actualitzat correctament.
65
126
  menu:
66
127
  dashboard: Tauler de control
67
128
  participatory_processes: Processos participatius
@@ -76,6 +137,8 @@ ca:
76
137
  scopes: Àmbits
77
138
  settings: Configuració
78
139
  static_pages: Pàgines
140
+ user_groups: Grups d'usuaris
141
+ users: Administradors
79
142
  models:
80
143
  category:
81
144
  fields:
@@ -113,6 +176,22 @@ ca:
113
176
  created_at: Data de creació
114
177
  title: Títol
115
178
  name: Pàgina
179
+ user:
180
+ fields:
181
+ created_at: Data de creació
182
+ email: Correu electrònic
183
+ invitation_accepted_at: Data d'acceptació de la invitació
184
+ invitation_sent_at: Data d'enviament de la invitació
185
+ last_sign_in_at: Darrera data d'identificació
186
+ name: Nom
187
+ name: Usuari
188
+ user_group:
189
+ fields:
190
+ created_at: Data de creació
191
+ document_number: Número de document
192
+ name: Nom
193
+ phone: Telèfon
194
+ users_count: Número d'usuaris
116
195
  organization:
117
196
  edit:
118
197
  title: Edita organització
@@ -146,14 +225,15 @@ ca:
146
225
  create:
147
226
  error: S'ha produït un error en activar aquesta fase de procés participatiu.
148
227
  success: La fase de procés participatiu s'ha activat correctament.
149
- destroy:
150
- error: S'ha produït un error en desactivar aquesta fase de procés participatiu.
151
- success: La fase de procés participatiu s'ha desactivat correctament.
152
228
  participatory_process_steps:
153
229
  create:
154
230
  error: S'ha produït un error en crear una nova fase de procés participatiu.
155
231
  success: La fase de procés participatiu s'ha creat correctament.
232
+ default_title: Introducció
156
233
  destroy:
234
+ error:
235
+ active_step: No es pot eliminar la fase activa.
236
+ last_step: No es pot eliminar l'última fase d'un procés.
157
237
  success: La fase de procés participatiu s'ha eliminat correctament.
158
238
  edit:
159
239
  title: Editar fase de procés participatiu
@@ -222,4 +302,22 @@ ca:
222
302
  dashboard: Tauler de control
223
303
  participatory_processes: Processos participatius
224
304
  scopes: Àmbits
225
- static_pages: Pàgines
305
+ static_pages: Pàgines
306
+ user_groups: Grups d'usuaris
307
+ users: Usuaris
308
+ user_groups:
309
+ verify:
310
+ success: El grup d'usuaris ha estat verificat exitosament.
311
+ users:
312
+ create:
313
+ error: Hi ha hagut un error en convidar a aquest usuari.
314
+ success: Usuari convidat amb èxit.
315
+ destroy:
316
+ error: S'ha produït un error en intentar eliminar aquest usuari.
317
+ success: L'usuari ja no és un administrador.
318
+ new:
319
+ create: Convidar
320
+ title: Convidar un usuari com a administrador
321
+ resend_invitation:
322
+ error: S'ha produït un error en intentar enviar el missatge d'invitació.
323
+ success: Invitació enviada correctament.
@@ -14,6 +14,7 @@ en:
14
14
  homepage_image: Homepage image
15
15
  logo: Logo
16
16
  name: Name
17
+ show_statistics: Show statistics
17
18
  welcome_text: Welcome text
18
19
  participatory_process:
19
20
  banner_image: Banner image
@@ -56,14 +57,16 @@ en:
56
57
  configure: Configure
57
58
  confirm_destroy: Are you sure you want to delete this?
58
59
  create: Create
59
- deactivate: Deactivate
60
60
  destroy: Destroy
61
61
  edit: Edit
62
+ manage: Manage
62
63
  new: New %{name}
63
64
  preview: Preview
64
65
  publish: Publish
66
+ resend_invitation: Resend invitation
65
67
  title: Actions
66
68
  unpublish: Unpublish
69
+ verify: Verify
67
70
  categories:
68
71
  create:
69
72
  error: There was an error creating this category.
@@ -102,12 +105,25 @@ en:
102
105
  destroy:
103
106
  error: There has been an error destroying this feature.
104
107
  success: Feature deleted successfully.
108
+ edit:
109
+ title: Edit feature
110
+ update: Update
111
+ form:
112
+ global_settings: Global settings
113
+ step_settings: Step settings
105
114
  index:
106
115
  add: Add feature
116
+ headers:
117
+ actions: Actions
118
+ name: Feature name
119
+ type: Feature type
107
120
  new:
108
121
  add: Add feature
109
122
  title: 'Add feature: %{name}'
110
123
  title: Features
124
+ update:
125
+ error: There has been an error updating this feature.
126
+ success: The feature was updated successfully.
111
127
  menu:
112
128
  dashboard: Dashboard
113
129
  participatory_processes: Participatory processes
@@ -122,6 +138,8 @@ en:
122
138
  scopes: Scopes
123
139
  settings: Settings
124
140
  static_pages: Pages
141
+ user_groups: User groups
142
+ users: Admin users
125
143
  models:
126
144
  category:
127
145
  fields:
@@ -159,6 +177,22 @@ en:
159
177
  created_at: Created at
160
178
  title: Title
161
179
  name: Page
180
+ user:
181
+ fields:
182
+ created_at: Creation date
183
+ email: Email
184
+ invitation_accepted_at: Invitation accepted date
185
+ invitation_sent_at: Invitation sent date
186
+ last_sign_in_at: Last sign in date
187
+ name: Name
188
+ name: User
189
+ user_group:
190
+ fields:
191
+ created_at: Created at
192
+ document_number: Document number
193
+ name: Name
194
+ phone: Phone
195
+ users_count: Users count
162
196
  organization:
163
197
  edit:
164
198
  title: Edit organization
@@ -192,14 +226,15 @@ en:
192
226
  create:
193
227
  error: There was an error activating this participatory process step.
194
228
  success: Participatory process step activated successfully.
195
- destroy:
196
- error: There was an error deactivating this participatory process step.
197
- success: Participatory process step deactivated successfully.
198
229
  participatory_process_steps:
199
230
  create:
200
231
  error: There was an error creating a new participatory process step.
201
232
  success: Participatory process step created successfully.
233
+ default_title: Introduction
202
234
  destroy:
235
+ error:
236
+ active_step: Can't delete the active step.
237
+ last_step: Can't delete the last step of a process.
203
238
  success: Participatory process step destroyed successfully.
204
239
  edit:
205
240
  title: Edit participatory process step
@@ -269,3 +304,21 @@ en:
269
304
  participatory_processes: Participatory processes
270
305
  scopes: Scopes
271
306
  static_pages: Pages
307
+ user_groups: User groups
308
+ users: Users
309
+ user_groups:
310
+ verify:
311
+ success: The user group was verified successfully.
312
+ users:
313
+ create:
314
+ error: There was an error when inviting this user.
315
+ success: User invited successfully.
316
+ destroy:
317
+ error: There was an error when trying to delete this user.
318
+ success: User is no longer an administrator.
319
+ new:
320
+ create: Invite
321
+ title: Invite user as administrator
322
+ resend_invitation:
323
+ error: There was an error when trying to send the invitation email.
324
+ success: Invitation email sent successfully.
@@ -1,4 +1,50 @@
1
1
  es:
2
+ activemodel:
3
+ attributes:
4
+ category:
5
+ description: Descripción
6
+ name: Nombre
7
+ parent: Padre
8
+ feature:
9
+ name: Nombre
10
+ organization:
11
+ default_locale: Configuración regional predeterminada
12
+ description: Descripción
13
+ homepage_image: Imagen de portada
14
+ logo: Logotipo
15
+ name: Nombre
16
+ show_statistics: Mostrar estadísticas
17
+ welcome_text: Texto de bienvenida
18
+ participatory_process:
19
+ banner_image: Imagen de bandera
20
+ description: Descripción
21
+ hashtag: Hashtag
22
+ hero_image: Imagen de portada
23
+ promoted: Destacado
24
+ short_description: Breve descripción
25
+ slug: Texto corto de URL
26
+ subtitle: Subtítulo
27
+ title: Título
28
+ participatory_process_attachment:
29
+ description: Descripción
30
+ file: Archivo
31
+ title: Título
32
+ participatory_process_step:
33
+ description: Descripción
34
+ end_date: Fecha de finalización
35
+ short_description: Breve descripción
36
+ start_date: Fecha de inicio
37
+ title: Título
38
+ participatory_process_user_role:
39
+ email: Email
40
+ scope:
41
+ name: Nombre
42
+ organization: Organización
43
+ static_page:
44
+ content: Contenido
45
+ organization: Organización
46
+ slug: Texto corto de URL
47
+ title: Título
2
48
  activerecord:
3
49
  attributes:
4
50
  decidim/participatory_process:
@@ -10,14 +56,16 @@ es:
10
56
  configure: Configurar
11
57
  confirm_destroy: '¿Seguro que lo quieres eliminar?'
12
58
  create: Crear
13
- deactivate: Desactivar
14
59
  destroy: Eliminar
15
60
  edit: Editar
61
+ manage: Gestionar
16
62
  new: Nuevo %{name}
17
63
  preview: Previsualizar
18
64
  publish: Publicar
65
+ resend_invitation: Reenviar invitación
19
66
  title: Acciones
20
67
  unpublish: Despublicar
68
+ verify: Verificar
21
69
  categories:
22
70
  create:
23
71
  error: Se ha producido un error al crear esta categoría.
@@ -56,12 +104,25 @@ es:
56
104
  destroy:
57
105
  error: Se ha producido un error destruir esta funcionalidad.
58
106
  success: Funcionalidad eliminada correctamente.
107
+ edit:
108
+ title: Editar funcionalidad
109
+ update: Actualizar
110
+ form:
111
+ global_settings: Ajustes globales
112
+ step_settings: Configuración de fase
59
113
  index:
60
114
  add: Añadir funcionalidad
115
+ headers:
116
+ actions: Acciones
117
+ name: Nombre de la funcionalidad
118
+ type: Tipo de funcionalidad
61
119
  new:
62
120
  add: Añadir funcionalidad
63
121
  title: 'Añadir funcionalidad: %{name}'
64
122
  title: Funcionalidades
123
+ update:
124
+ error: Se ha producido un error al actualizar esta funcionalidad.
125
+ success: La funcionalidad se ha actualizado correctamente.
65
126
  menu:
66
127
  dashboard: Panel de control
67
128
  participatory_processes: Procesos participativos
@@ -76,6 +137,8 @@ es:
76
137
  scopes: Ámbitos
77
138
  settings: Configuración
78
139
  static_pages: Páginas
140
+ user_groups: Grupos de usuarios
141
+ users: Administradores
79
142
  models:
80
143
  category:
81
144
  fields:
@@ -113,6 +176,22 @@ es:
113
176
  created_at: Fecha de creación
114
177
  title: Título
115
178
  name: Página
179
+ user:
180
+ fields:
181
+ created_at: Fecha de creación
182
+ email: Correo electrónico
183
+ invitation_accepted_at: Fecha de aceptación de la invitación
184
+ invitation_sent_at: Fecha de envío de la invitación
185
+ last_sign_in_at: Última fecha de identificación
186
+ name: Nombre
187
+ name: Usuario
188
+ user_group:
189
+ fields:
190
+ created_at: Fecha de creación
191
+ document_number: Número del documento
192
+ name: Nombre
193
+ phone: Teléfono
194
+ users_count: Número de usuarios
116
195
  organization:
117
196
  edit:
118
197
  title: Editar organización
@@ -146,14 +225,15 @@ es:
146
225
  create:
147
226
  error: Se ha producido un error al activar esta fase de proceso participativo.
148
227
  success: La fase de proceso participativo se ha activado correctamente.
149
- destroy:
150
- error: Se ha producido un error al desactivar esta fase de proceso participativo.
151
- success: La fase de proceso participativo se ha desactivado correctamente.
152
228
  participatory_process_steps:
153
229
  create:
154
230
  error: Se ha producido un error al crear una nueva fase de proceso participativo.
155
231
  success: La fase de proceso participativo se ha creado correctamente.
232
+ default_title: Introducción
156
233
  destroy:
234
+ error:
235
+ active_step: No se puede eliminar la fase activa.
236
+ last_step: No se puede eliminar la última fase de un proceso.
157
237
  success: La fase de proceso participativo se ha eliminado correctamente.
158
238
  edit:
159
239
  title: Editar fase de proceso participativo
@@ -222,4 +302,22 @@ es:
222
302
  dashboard: Panel de control
223
303
  participatory_processes: Procesos participativos
224
304
  scopes: Ámbitos
225
- static_pages: Páginas
305
+ static_pages: Páginas
306
+ user_groups: Grupos de usuarios
307
+ users: Usuarios
308
+ user_groups:
309
+ verify:
310
+ success: El grupo de usuarios se verificó con éxito.
311
+ users:
312
+ create:
313
+ error: Hubo un error al invitar a este usuario.
314
+ success: Usuario invitado con éxito.
315
+ destroy:
316
+ error: Hubo un error al tratar de eliminar este usuario.
317
+ success: El usuario ya no es un administrador.
318
+ new:
319
+ create: Invitar
320
+ title: Invitar a un usuario como administrador
321
+ resend_invitation:
322
+ error: Se produjo un error al intentar enviar el mensaje de invitación.
323
+ success: Invitación enviada con éxito.