decidim 0.0.3 → 0.0.4

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 (251) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +23 -4
  3. data/.travis.yml +4 -1
  4. data/Gemfile.lock +56 -48
  5. data/Rakefile +1 -1
  6. data/decidim-admin/app/commands/decidim/admin/create_participatory_process_admin.rb +3 -0
  7. data/decidim-admin/app/commands/decidim/admin/update_feature_permissions.rb +46 -0
  8. data/decidim-admin/app/commands/decidim/admin/update_organization.rb +17 -2
  9. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +4 -2
  10. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +3 -0
  11. data/decidim-admin/app/controllers/decidim/admin/feature_permissions_controller.rb +59 -0
  12. data/decidim-admin/app/controllers/decidim/admin/features_controller.rb +20 -0
  13. data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +3 -1
  14. data/decidim-admin/app/forms/decidim/admin/organization_form.rb +10 -0
  15. data/decidim-admin/app/forms/decidim/admin/participatory_process_form.rb +8 -5
  16. data/decidim-admin/app/forms/decidim/admin/permission_form.rb +31 -0
  17. data/decidim-admin/app/forms/decidim/admin/permissions_form.rb +16 -0
  18. data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +1 -0
  19. data/decidim-admin/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
  20. data/decidim-admin/app/views/decidim/admin/attachments/edit.html.erb +1 -1
  21. data/decidim-admin/app/views/decidim/admin/attachments/new.html.erb +1 -1
  22. data/decidim-admin/app/views/decidim/admin/categories/edit.html.erb +1 -1
  23. data/decidim-admin/app/views/decidim/admin/categories/new.html.erb +1 -1
  24. data/decidim-admin/app/views/decidim/admin/dashboard/show.html.erb +1 -1
  25. data/decidim-admin/app/views/decidim/admin/feature_permissions/edit.html.erb +27 -0
  26. data/decidim-admin/app/views/decidim/admin/features/_feature.html.erb +10 -0
  27. data/decidim-admin/app/views/decidim/admin/features/edit.html.erb +1 -1
  28. data/decidim-admin/app/views/decidim/admin/features/new.html.erb +1 -1
  29. data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +34 -0
  30. data/decidim-admin/app/views/decidim/admin/organization/edit.html.erb +2 -2
  31. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/edit.html.erb +1 -1
  32. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/new.html.erb +1 -1
  33. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +1 -1
  34. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +17 -4
  35. data/decidim-admin/app/views/decidim/admin/participatory_processes/edit.html.erb +1 -1
  36. data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +1 -1
  37. data/decidim-admin/app/views/decidim/admin/participatory_processes/new.html.erb +2 -2
  38. data/decidim-admin/app/views/decidim/admin/participatory_processes/show.html.erb +5 -2
  39. data/decidim-admin/app/views/decidim/admin/scopes/edit.html.erb +2 -2
  40. data/decidim-admin/app/views/decidim/admin/scopes/index.html.erb +1 -1
  41. data/decidim-admin/app/views/decidim/admin/scopes/new.html.erb +2 -2
  42. data/decidim-admin/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
  43. data/decidim-admin/app/views/decidim/admin/static_pages/edit.html.erb +2 -2
  44. data/decidim-admin/app/views/decidim/admin/static_pages/index.html.erb +1 -1
  45. data/decidim-admin/app/views/decidim/admin/static_pages/new.html.erb +2 -2
  46. data/decidim-admin/app/views/decidim/admin/static_pages/show.html.erb +1 -1
  47. data/decidim-admin/app/views/decidim/admin/user_groups/index.html.erb +1 -1
  48. data/decidim-admin/app/views/decidim/admin/users/index.html.erb +1 -1
  49. data/decidim-admin/app/views/decidim/admin/users/new.html.erb +2 -2
  50. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +1 -1
  51. data/decidim-admin/config/i18n-tasks.yml +4 -3
  52. data/decidim-admin/config/locales/ca.yml +20 -1
  53. data/decidim-admin/config/locales/en.yml +19 -0
  54. data/decidim-admin/config/locales/es.yml +19 -0
  55. data/decidim-admin/config/locales/eu.yml +5 -0
  56. data/decidim-admin/config/routes.rb +8 -1
  57. data/decidim-admin/db/seeds.rb +3 -1
  58. data/decidim-admin/spec/commands/create_participatory_process_admin_spec.rb +19 -0
  59. data/decidim-admin/spec/commands/update_organization_spec.rb +20 -0
  60. data/decidim-admin/spec/features/admin_invite_spec.rb +5 -3
  61. data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +44 -0
  62. data/decidim-admin/spec/features/admin_manages_features_spec.rb +38 -0
  63. data/decidim-admin/spec/features/admin_manages_participatory_process_admins_spec.rb +0 -2
  64. data/decidim-admin/spec/features/admin_manages_participatory_process_attachments_spec.rb +0 -2
  65. data/decidim-admin/spec/features/admin_manages_participatory_process_categories_spec.rb +0 -2
  66. data/decidim-admin/spec/features/admin_manages_participatory_process_steps_spec.rb +0 -2
  67. data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +0 -2
  68. data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +1 -3
  69. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_admins_spec.rb +0 -2
  70. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_attachments_spec.rb +0 -2
  71. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_steps_spec.rb +0 -2
  72. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_processes_spec.rb +0 -2
  73. data/decidim-admin/spec/features/process_admin_manages_participatory_process_categories_spec.rb +0 -2
  74. data/decidim-admin/spec/forms/organization_form_spec.rb +11 -2
  75. data/decidim-admin/spec/models/participatory_process_user_role_spec.rb +17 -0
  76. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +3 -2
  77. data/decidim-budgets/app/assets/images/decidim/budgets/icon.svg +16 -4
  78. data/decidim-budgets/app/assets/javascripts/decidim/budgets/progressFixed.js.es6 +23 -0
  79. data/decidim-budgets/app/assets/javascripts/decidim/budgets/projects.js.es6 +1 -0
  80. data/decidim-budgets/app/assets/stylesheets/decidim/budgets/budget/_budget-list.scss +1 -1
  81. data/decidim-budgets/app/commands/decidim/budgets/admin/create_project.rb +0 -1
  82. data/decidim-budgets/app/commands/decidim/budgets/admin/update_project.rb +0 -1
  83. data/decidim-budgets/app/controllers/decidim/budgets/admin/application_controller.rb +9 -0
  84. data/decidim-budgets/app/controllers/decidim/budgets/admin/attachments_controller.rb +29 -0
  85. data/decidim-budgets/app/controllers/decidim/budgets/line_items_controller.rb +2 -0
  86. data/decidim-budgets/app/controllers/decidim/budgets/orders_controller.rb +2 -0
  87. data/decidim-budgets/app/forms/decidim/budgets/admin/project_form.rb +1 -2
  88. data/decidim-budgets/app/models/decidim/budgets/project.rb +1 -0
  89. data/decidim-budgets/app/services/decidim/budgets/project_search.rb +0 -1
  90. data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +0 -4
  91. data/decidim-budgets/app/views/decidim/budgets/admin/projects/edit.html.erb +1 -1
  92. data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +1 -0
  93. data/decidim-budgets/app/views/decidim/budgets/admin/projects/new.html.erb +1 -1
  94. data/decidim-budgets/app/views/decidim/budgets/line_items/update_budget.js.erb +2 -0
  95. data/decidim-budgets/app/views/decidim/budgets/projects/_project.html.erb +2 -2
  96. data/decidim-budgets/app/views/decidim/budgets/projects/_project_budget_button.html.erb +2 -2
  97. data/decidim-budgets/app/views/decidim/budgets/projects/index.html.erb +3 -2
  98. data/decidim-budgets/app/views/decidim/budgets/projects/show.html.erb +3 -7
  99. data/decidim-budgets/config/i18n-tasks.yml +1 -0
  100. data/decidim-budgets/config/locales/ca.yml +24 -5
  101. data/decidim-budgets/config/locales/en.yml +12 -3
  102. data/decidim-budgets/config/locales/es.yml +22 -3
  103. data/decidim-budgets/config/locales/eu.yml +5 -0
  104. data/decidim-budgets/db/migrate/20170207101750_remove_short_description_from_decidim_projects.rb +5 -0
  105. data/decidim-budgets/decidim-budgets.gemspec +1 -0
  106. data/decidim-budgets/lib/decidim/budgets/admin_engine.rb +4 -1
  107. data/decidim-budgets/lib/decidim/budgets/feature.rb +15 -4
  108. data/decidim-budgets/lib/decidim/budgets/test/factories.rb +2 -3
  109. data/decidim-budgets/spec/commands/create_project_spec.rb +0 -1
  110. data/decidim-budgets/spec/commands/update_project_spec.rb +0 -1
  111. data/decidim-budgets/spec/features/admin_manages_project_attachments_spec.rb +10 -0
  112. data/decidim-budgets/spec/features/admin_manages_projects_spec.rb +0 -2
  113. data/decidim-budgets/spec/features/orders_spec.rb +43 -5
  114. data/decidim-budgets/spec/features/process_admin_manages_project_attachments_spec.rb +12 -0
  115. data/decidim-budgets/spec/features/process_admin_manages_projects_spec.rb +0 -2
  116. data/decidim-budgets/spec/forms/project_form_spec.rb +0 -10
  117. data/decidim-budgets/spec/shared/manage_attachments_examples.rb +17 -0
  118. data/decidim-budgets/spec/shared/manage_projects_examples.rb +0 -7
  119. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  120. data/decidim-comments/app/commands/decidim/comments/create_comment.rb +10 -0
  121. data/decidim-comments/app/forms/decidim/comments/comment_form.rb +1 -1
  122. data/decidim-comments/app/frontend/comments/add_comment_form.component.jsx +33 -12
  123. data/decidim-comments/app/frontend/comments/add_comment_form.component.test.jsx +6 -0
  124. data/decidim-comments/app/frontend/comments/comment.component.jsx +7 -5
  125. data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +2 -2
  126. data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +5 -0
  127. data/decidim-comments/app/frontend/comments/comments.component.jsx +11 -0
  128. data/decidim-comments/app/frontend/comments/vote_button.component.jsx +5 -0
  129. data/decidim-comments/app/frontend/comments/vote_button_component.test.jsx +1 -1
  130. data/decidim-comments/app/frontend/entry.test.js +2 -0
  131. data/decidim-comments/app/mailers/decidim/comments/comment_notification_mailer.rb +31 -0
  132. data/decidim-comments/app/models/decidim/comments/comment.rb +6 -0
  133. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/comment_created.html.erb +18 -0
  134. data/decidim-comments/app/views/decidim/comments/comment_notification_mailer/reply_created.html.erb +18 -0
  135. data/decidim-comments/config/locales/ca.yml +17 -3
  136. data/decidim-comments/config/locales/en.yml +17 -3
  137. data/decidim-comments/config/locales/es.yml +17 -3
  138. data/decidim-comments/config/locales/eu.yml +5 -0
  139. data/decidim-comments/lib/decidim/comments.rb +1 -0
  140. data/decidim-comments/{app/helpers → lib}/decidim/comments/comments_helper.rb +0 -0
  141. data/decidim-comments/spec/commands/create_comment_spec.rb +68 -1
  142. data/decidim-comments/spec/features/comments_spec.rb +27 -20
  143. data/decidim-comments/spec/features/notifications_spec.rb +45 -0
  144. data/decidim-comments/spec/forms/comment_form_spec.rb +6 -0
  145. data/decidim-comments/spec/mailers/comment_notification_mailer_spec.rb +36 -0
  146. data/decidim-comments/spec/models/comment_spec.rb +8 -0
  147. data/decidim-comments/spec/spec_helper.rb +0 -1
  148. data/decidim-comments/spec/types/mutation_type_spec.rb +8 -7
  149. data/decidim-dev/config/locales/ca.yml +5 -0
  150. data/decidim-dev/config/locales/es.yml +5 -0
  151. data/decidim-dev/config/locales/eu.yml +5 -0
  152. data/decidim-dev/decidim-dev.gemspec +2 -1
  153. data/decidim-dev/lib/decidim/dev.rb +2 -0
  154. data/decidim-dev/lib/decidim/dev/dummy_authorization_handler.rb +1 -0
  155. data/decidim-dev/lib/decidim/dev/test/base_spec_helper.rb +4 -1
  156. data/decidim-dev/lib/decidim/dev/test/rspec_support/action_mailer.rb +19 -0
  157. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +26 -3
  158. data/decidim-dev/lib/decidim/dev/test/rspec_support/translation_helpers.rb +1 -1
  159. data/decidim-meetings/app/forms/decidim/meetings/admin/meeting_form.rb +2 -2
  160. data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +1 -1
  161. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/edit.html.erb +1 -1
  162. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/new.html.erb +1 -1
  163. data/decidim-meetings/app/views/decidim/meetings/meetings/index.html.erb +3 -1
  164. data/decidim-meetings/app/views/decidim/meetings/meetings/show.html.erb +11 -1
  165. data/decidim-meetings/config/locales/ca.yml +3 -3
  166. data/decidim-meetings/config/locales/en.yml +1 -1
  167. data/decidim-meetings/config/locales/es.yml +1 -1
  168. data/decidim-meetings/config/locales/eu.yml +5 -0
  169. data/decidim-meetings/decidim-meetings.gemspec +1 -1
  170. data/decidim-meetings/lib/decidim/meetings/feature.rb +1 -0
  171. data/decidim-meetings/spec/features/admin_manages_meetings_attachments_spec.rb +0 -2
  172. data/decidim-meetings/spec/features/admin_manages_meetings_spec.rb +0 -2
  173. data/decidim-meetings/spec/features/process_admin_manages_meetings_attachments_spec.rb +0 -2
  174. data/decidim-meetings/spec/features/process_admin_manages_meetings_spec.rb +0 -2
  175. data/decidim-pages/app/assets/images/decidim/pages/icon.svg +1 -3
  176. data/decidim-pages/app/views/decidim/pages/admin/pages/edit.html.erb +1 -1
  177. data/decidim-pages/app/views/decidim/pages/application/show.html.erb +4 -1
  178. data/decidim-pages/config/locales/eu.yml +7 -0
  179. data/decidim-pages/lib/decidim/pages/feature.rb +1 -0
  180. data/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb +42 -5
  181. data/decidim-proposals/app/forms/decidim/proposals/proposal_form.rb +3 -1
  182. data/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb +1 -1
  183. data/decidim-proposals/app/models/decidim/proposals/abilities/current_user.rb +22 -4
  184. data/decidim-proposals/app/models/decidim/proposals/proposal.rb +2 -2
  185. data/decidim-proposals/app/services/decidim/proposals/proposal_search.rb +25 -13
  186. data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +1 -1
  187. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/new.html.erb +1 -1
  188. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +9 -1
  189. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposal.html.erb +2 -6
  190. data/decidim-proposals/app/views/decidim/proposals/proposals/_proposals.html.erb +2 -1
  191. data/decidim-proposals/app/views/decidim/proposals/proposals/_tags.html.erb +10 -0
  192. data/decidim-proposals/app/views/decidim/proposals/proposals/_vote_button.html.erb +9 -9
  193. data/decidim-proposals/app/views/decidim/proposals/proposals/_votes_count.html.erb +2 -2
  194. data/decidim-proposals/app/views/decidim/proposals/proposals/index.html.erb +7 -3
  195. data/decidim-proposals/app/views/decidim/proposals/proposals/index.js.erb +6 -1
  196. data/decidim-proposals/app/views/decidim/proposals/proposals/new.html.erb +1 -1
  197. data/decidim-proposals/app/views/decidim/proposals/proposals/show.html.erb +22 -23
  198. data/decidim-proposals/config/i18n-tasks.yml +2 -0
  199. data/decidim-proposals/config/locales/ca.yml +23 -15
  200. data/decidim-proposals/config/locales/en.yml +12 -4
  201. data/decidim-proposals/config/locales/es.yml +12 -4
  202. data/decidim-proposals/config/locales/eu.yml +5 -0
  203. data/decidim-proposals/db/migrate/20170205082832_add_index_to_decidim_proposals_proposals_proposal_votes_count.rb +7 -0
  204. data/decidim-proposals/lib/decidim/proposals/feature.rb +10 -1
  205. data/decidim-proposals/lib/decidim/proposals/test/factories.rb +1 -1
  206. data/decidim-proposals/spec/commands/decidim/proposals/admin_create_proposal_spec.rb +0 -1
  207. data/decidim-proposals/spec/commands/decidim/proposals/create_proposal_spec.rb +0 -1
  208. data/decidim-proposals/spec/features/admin_manages_proposals_spec.rb +0 -2
  209. data/decidim-proposals/spec/features/process_admin_manages_proposals_spec.rb +0 -2
  210. data/decidim-proposals/spec/features/proposals_spec.rb +77 -0
  211. data/decidim-proposals/spec/features/vote_proposal_spec.rb +16 -1
  212. data/decidim-proposals/spec/forms/decidim/proposals/admin_proposal_form_spec.rb +0 -1
  213. data/decidim-proposals/spec/forms/decidim/proposals/proposal_form_spec.rb +0 -1
  214. data/decidim-proposals/spec/helpers/proposal_votes_helper_spec.rb +10 -0
  215. data/decidim-proposals/spec/services/decidim/proposals/proposal_search_spec.rb +56 -31
  216. data/decidim-proposals/spec/shared/create_proposal_examples.rb +2 -2
  217. data/decidim-results/app/views/decidim/results/admin/results/edit.html.erb +1 -1
  218. data/decidim-results/app/views/decidim/results/admin/results/new.html.erb +1 -1
  219. data/decidim-results/app/views/decidim/results/results/index.html.erb +3 -1
  220. data/decidim-results/app/views/decidim/results/results/show.html.erb +11 -1
  221. data/decidim-results/config/locales/ca.yml +2 -2
  222. data/decidim-results/config/locales/en.yml +1 -1
  223. data/decidim-results/config/locales/es.yml +1 -1
  224. data/decidim-results/config/locales/eu.yml +5 -0
  225. data/decidim-results/lib/decidim/results/feature.rb +1 -0
  226. data/decidim-results/spec/features/admin_manages_results_spec.rb +0 -2
  227. data/decidim-results/spec/features/process_admin_manages_results_spec.rb +0 -2
  228. data/decidim-system/app/assets/stylesheets/decidim/system/_foundation_and_overrides.scss +1 -1
  229. data/decidim-system/app/controllers/decidim/system/application_controller.rb +1 -0
  230. data/decidim-system/app/controllers/decidim/system/devise/sessions_controller.rb +1 -0
  231. data/decidim-system/app/views/decidim/system/admins/edit.html.erb +2 -2
  232. data/decidim-system/app/views/decidim/system/admins/index.html.erb +1 -1
  233. data/decidim-system/app/views/decidim/system/admins/new.html.erb +2 -2
  234. data/decidim-system/app/views/decidim/system/admins/show.html.erb +1 -1
  235. data/decidim-system/app/views/decidim/system/dashboard/show.html.erb +1 -1
  236. data/decidim-system/app/views/decidim/system/devise/passwords/edit.html.erb +1 -1
  237. data/decidim-system/app/views/decidim/system/devise/passwords/new.html.erb +1 -1
  238. data/decidim-system/app/views/decidim/system/devise/sessions/new.html.erb +1 -1
  239. data/decidim-system/app/views/decidim/system/organizations/edit.html.erb +1 -1
  240. data/decidim-system/app/views/decidim/system/organizations/index.html.erb +1 -1
  241. data/decidim-system/app/views/decidim/system/organizations/new.html.erb +2 -2
  242. data/decidim-system/app/views/decidim/system/organizations/show.html.erb +1 -1
  243. data/decidim-system/config/locales/eu.yml +7 -0
  244. data/decidim-system/spec/features/organizations_spec.rb +1 -2
  245. data/lib/generators/decidim/install_generator.rb +9 -0
  246. data/lib/generators/decidim/templates/initializer.rb +1 -0
  247. data/package.json +6 -6
  248. data/yarn.lock +743 -738
  249. metadata +53 -25
  250. data/decidim-comments/spec/support/dummy.rb +0 -20
  251. data/decidim-proposals/app/views/decidim/proposals/proposals/_share.html.erb +0 -33
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+ require "spec_helper"
3
+
4
+ describe "manage a feature's permissions", type: :feature do
5
+ let(:organization) { create(:organization) }
6
+ let(:user) { create(:user, :admin, :confirmed, organization: organization) }
7
+
8
+ let!(:participatory_process) do
9
+ create(:participatory_process, :with_steps, organization: organization)
10
+ end
11
+
12
+ let!(:feature) do
13
+ create(:feature, participatory_process: participatory_process)
14
+ end
15
+
16
+ before do
17
+ switch_to_host(organization.host)
18
+ login_as user, scope: :user
19
+ visit decidim_admin.participatory_process_features_path(participatory_process)
20
+
21
+ within ".feature-#{feature.id}" do
22
+ click_link "Permissions"
23
+ end
24
+ end
25
+
26
+ it "allows setting permissions with json options" do
27
+ within "form.new_feature_permissions" do
28
+ within ".foo-permission" do
29
+ select "Example authorization", from: "feature_permissions_permissions_foo_authorization_handler_name"
30
+ fill_in "feature_permissions_permissions_foo_options", with: '{ "foo": 123 }'
31
+ end
32
+ find("*[type=submit]").click
33
+ end
34
+
35
+ expect(page).to have_content("successfully")
36
+
37
+ expect(feature.reload.permissions["foo"]).to(
38
+ include(
39
+ "authorization_handler_name" => "decidim/dummy_authorization_handler",
40
+ "options" => { "foo" => 123 }
41
+ )
42
+ )
43
+ end
44
+ end
@@ -154,4 +154,42 @@ describe "Admin manages features", type: :feature do
154
154
  expect(page).to have_no_content("My feature")
155
155
  end
156
156
  end
157
+
158
+ describe "publish and unpublish a feature" do
159
+ let!(:feature) do
160
+ create(:feature, participatory_process: participatory_process, published_at: published_at)
161
+ end
162
+
163
+ let(:published_at) { nil }
164
+
165
+ before do
166
+ visit decidim_admin.participatory_process_features_path(participatory_process)
167
+ end
168
+
169
+ context "when the feature is unpublished" do
170
+ it "publishes the feature" do
171
+ within ".feature-#{feature.id}" do
172
+ click_link "Publish"
173
+ end
174
+
175
+ within ".feature-#{feature.id}" do
176
+ expect(page).to have_content("Unpublish")
177
+ end
178
+ end
179
+ end
180
+
181
+ context "when the feature is published" do
182
+ let(:published_at) { Time.current }
183
+
184
+ it "unpublishes the feature" do
185
+ within ".feature-#{feature.id}" do
186
+ click_link "Unpublish"
187
+ end
188
+
189
+ within ".feature-#{feature.id}" do
190
+ expect(page).to have_content("Publish")
191
+ end
192
+ end
193
+ end
194
+ end
157
195
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_admins_examples"
6
4
 
7
5
  describe "Admin manages participatory process admins", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_attachments_examples"
6
4
 
7
5
  describe "Admin manages participatory process attachments", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_categories_examples"
6
4
 
7
5
  describe "Admin manages participatory process categories", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_steps_examples"
6
4
 
7
5
  describe "Admin manages participatory process steps", type: :feature do
8
6
  include_context "participatory process admin"
@@ -2,8 +2,6 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "spec_helper"
5
- require_relative "../shared/participatory_admin_shared_context"
6
- require_relative "../shared/manage_processes_examples"
7
5
 
8
6
  describe "Admin manage participatory processes", type: :feature do
9
7
  include_context "participatory process admin"
@@ -2,7 +2,6 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "spec_helper"
5
- require_relative "../shared/participatory_admin_shared_context"
6
5
 
7
6
  describe "Admin manage user groups", type: :feature do
8
7
  include_context "participatory process admin"
@@ -18,7 +17,6 @@ describe "Admin manage user groups", type: :feature do
18
17
  click_button "Verify", match: :first
19
18
 
20
19
  expect(page).not_to have_selector(".actions button", match: :first)
21
-
22
20
  expect(page).to have_content("verified successfully")
23
21
  end
24
- end
22
+ end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_admins_examples"
6
4
 
7
5
  describe "Participatory process admin manages participatory process admins", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_attachments_examples"
6
4
 
7
5
  describe "Participatory process admin manages participatory process attachments", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_steps_examples"
6
4
 
7
5
  describe "Participatory process admin manages participatory process steps", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_processes_examples"
6
4
 
7
5
  describe "Participatory process admin manages participatory processes", type: :feature do
8
6
  include_context "participatory process admin"
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require_relative "../shared/participatory_admin_shared_context"
5
- require_relative "../shared/manage_process_categories_examples"
6
4
 
7
5
  describe "Admin manages participatory process categories", type: :feature do
8
6
  include_context "participatory process admin"
@@ -6,7 +6,11 @@ module Decidim
6
6
  module Admin
7
7
  describe OrganizationForm do
8
8
  let(:name) { "My super organization" }
9
- let(:twitter_handler) { "My awesome handler" }
9
+ let(:twitter_handler) { "My twitter awesome handler" }
10
+ let(:facebook_handler) { "My facebook awesome handler" }
11
+ let(:instagram_handler) { "My instagram awesome handler" }
12
+ let(:youtube_handler) { "My youtube awesome handler" }
13
+ let(:github_handler) { "My github awesome handler" }
10
14
  let(:welcome_text) do
11
15
  {
12
16
  en: "Welcome",
@@ -35,7 +39,12 @@ module Decidim
35
39
  "description_es" => description[:es],
36
40
  "description_ca" => description[:ca],
37
41
  "homepage_image" => Rack::Test::UploadedFile.new(File.join(File.dirname(__FILE__), "..", "..", "..", "decidim-dev", "spec", "support", "city.jpeg"), "image/jpeg"),
38
- "show_statics" => false
42
+ "show_statics" => false,
43
+ "twitter_handler" => twitter_handler,
44
+ "facebook_handler" => facebook_handler,
45
+ "instagram_handler" => instagram_handler,
46
+ "youtube_handler" => youtube_handler,
47
+ "github_handler" => github_handler
39
48
  }
40
49
  }
41
50
  end
@@ -16,6 +16,23 @@ module Decidim
16
16
 
17
17
  it { is_expected.not_to be_valid }
18
18
  end
19
+
20
+ context "when a role already exists" do
21
+ let(:participatory_process_user_role) do
22
+ build(
23
+ :participatory_process_user_role,
24
+ role: existing_role.role,
25
+ user: existing_role.user,
26
+ participatory_process: existing_role.participatory_process
27
+ )
28
+ end
29
+
30
+ let!(:existing_role) do
31
+ create(:participatory_process_user_role, role: role)
32
+ end
33
+
34
+ it { is_expected.not_to be_valid }
35
+ end
19
36
  end
20
37
  end
21
38
  end
@@ -60,8 +60,9 @@ RSpec.shared_examples "manage process steps examples" do
60
60
  es: "Descripción más larga",
61
61
  ca: "Descripció més llarga"
62
62
  )
63
- fill_in :participatory_process_step_start_date, with: 1.months.ago
64
- fill_in :participatory_process_step_end_date, with: 2.months.from_now
63
+
64
+ fill_in :participatory_process_step_start_date, with: 1.months.ago.to_date
65
+ fill_in :participatory_process_step_end_date, with: 2.months.from_now.to_date
65
66
 
66
67
  find("*[type=submit]").click
67
68
  end
@@ -1,4 +1,16 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
2
- <path d="M2 0v1h-.75c-.68 0-1.25.57-1.25 1.25v.5c0 .68.44 1.24 1.09 1.41l2.56.66c.14.04.34.29.34.44v.5c0 .14-.11.25-.25.25h-2.5c-.12 0-.21-.04-.25-.06v-.94h-1v1c0 .34.2.63.44.78.23.16.52.22.81.22h.75v1h1v-1h.75c.69 0 1.25-.56 1.25-1.25v-.5c0-.68-.44-1.24-1.09-1.41l-2.56-.66c-.14-.04-.34-.29-.34-.44v-.5c0-.14.11-.25.25-.25h2.5c.11 0 .21.04.25.06v.94h1v-1c0-.34-.2-.63-.44-.78-.23-.16-.52-.22-.81-.22h-.75v-1h-1z"
3
- transform="translate(1)" />
4
- </svg>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
5
+ <g>
6
+ <path d="M18,36C8.1,36,0,27.9,0,18S8.1,0,18,0s18,8.1,18,18S27.9,36,18,36z M18,2C9.2,2,2,9.2,2,18s7.2,16,16,16s16-7.2,16-16
7
+ S26.8,2,18,2z"/>
8
+ </g>
9
+ <g>
10
+ <g>
11
+ <path d="M17.1,28.3c-5.3,0-9.9-4.4-9.9-9.8c0-5.5,4.9-9.5,9.3-9.5H18v9h9v0.9C27,23.2,22.7,28.3,17.1,28.3z M16,10.7
12
+ c-4,0.6-6.5,3.7-6.5,7.6c0,4.3,3.6,8,7.7,8c3.9,0,7-3.3,7.6-6.3H16V10.7z"/>
13
+ </g>
14
+ <path d="M30,16H20V6h0.6c4.5,0,9.4,4.4,9.4,8.9V16z M22,14h5.5C27,11,24,8.6,22,8V14z"/>
15
+ </g>
16
+ </svg>
@@ -0,0 +1,23 @@
1
+ $(() => {
2
+ const checkProgressPosition = () => {
3
+ let progressFix = document.querySelector("[data-progressbox-fixed]"),
4
+ progressRef = document.querySelector("[data-progress-reference]"),
5
+ progressVisibleClass = "is-progressbox-visible";
6
+
7
+ if (!progressRef) {
8
+ return;
9
+ }
10
+
11
+ let progressPosition = progressRef.getBoundingClientRect().bottom;
12
+ if (progressPosition > 0) {
13
+ progressFix.classList.remove(progressVisibleClass);
14
+ } else {
15
+ progressFix.classList.add(progressVisibleClass);
16
+ }
17
+ }
18
+
19
+ window.addEventListener("scroll", checkProgressPosition);
20
+
21
+ window.DecidimBudgets = window.DecidimBudgets || {};
22
+ window.DecidimBudgets.checkProgressPosition = checkProgressPosition;
23
+ });
@@ -1,3 +1,4 @@
1
+ // = require ./progressFixed
1
2
  // = require_self
2
3
 
3
4
  $(() => {
@@ -11,7 +11,7 @@
11
11
  }
12
12
  }
13
13
  .budget-list__data--added{
14
- background-color: mix(white, $success, 80%);
14
+ background-color: tint($success, 80%);
15
15
  }
16
16
 
17
17
  .budget-list__number{
@@ -33,7 +33,6 @@ module Decidim
33
33
  category: @form.category,
34
34
  feature: @form.current_feature,
35
35
  title: @form.title,
36
- short_description: @form.short_description,
37
36
  description: @form.description,
38
37
  budget: @form.budget
39
38
  )
@@ -37,7 +37,6 @@ module Decidim
37
37
  scope: form.scope,
38
38
  category: form.category,
39
39
  title: form.title,
40
- short_description: form.short_description,
41
40
  description: form.description,
42
41
  budget: form.budget
43
42
  )
@@ -8,6 +8,15 @@ module Decidim
8
8
  # Note that it inherits from `Decidim::Features::BaseController`, which
9
9
  # override its layout and provide all kinds of useful methods.
10
10
  class ApplicationController < Decidim::Admin::Features::BaseController
11
+ helper_method :projects, :project
12
+
13
+ def projects
14
+ @projects ||= Project.where(feature: current_feature)
15
+ end
16
+
17
+ def project
18
+ @project ||= projects.find(params[:id])
19
+ end
11
20
  end
12
21
  end
13
22
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Budgets
4
+ module Admin
5
+ # Controller that allows managing all the attachments for a participatory
6
+ # process.
7
+ #
8
+ class AttachmentsController < Admin::ApplicationController
9
+ include Decidim::Admin::Concerns::HasAttachments
10
+
11
+ def after_destroy_path
12
+ projects_path
13
+ end
14
+
15
+ def attached_to
16
+ project
17
+ end
18
+
19
+ def project
20
+ @project ||= projects.find(params[:project_id])
21
+ end
22
+
23
+ def authorization_object
24
+ project.feature
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -9,6 +9,8 @@ module Decidim
9
9
  helper_method :project
10
10
 
11
11
  def create
12
+ authorize_action! "vote"
13
+
12
14
  AddLineItem.call(current_order, project, current_user) do
13
15
  on(:ok) do |order|
14
16
  self.current_order = order
@@ -7,6 +7,8 @@ module Decidim
7
7
  include NeedsCurrentOrder
8
8
 
9
9
  def checkout
10
+ authorize_action! "vote"
11
+
10
12
  Checkout.call(current_order, current_feature) do
11
13
  on(:ok) do
12
14
  flash[:notice] = I18n.t("orders.checkout.success", scope: "decidim")
@@ -8,15 +8,14 @@ module Decidim
8
8
  include TranslationsHelper
9
9
 
10
10
  translatable_attribute :title, String
11
- translatable_attribute :short_description, String
12
11
  translatable_attribute :description, String
12
+
13
13
  attribute :budget, Integer
14
14
  attribute :decidim_scope_id, Integer
15
15
  attribute :decidim_category_id, Integer
16
16
  attribute :proposal_ids, Array[Integer]
17
17
 
18
18
  validates :title, translatable_presence: true
19
- validates :short_description, translatable_presence: true
20
19
  validates :description, translatable_presence: true
21
20
  validates :budget, presence: true, numericality: { greater_than: 0 }
22
21
 
@@ -8,6 +8,7 @@ module Decidim
8
8
  include Decidim::HasFeature
9
9
  include Decidim::HasScope
10
10
  include Decidim::HasCategory
11
+ include Decidim::HasAttachments
11
12
 
12
13
  feature_manifest_name "budgets"
13
14
  end