decidim-initiatives 0.9.1 → 0.11.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -16
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/decidim/initiatives/admin/invite_users.js +7 -8
  5. data/app/assets/javascripts/decidim/initiatives/application.js +1 -1
  6. data/app/assets/javascripts/decidim/initiatives/identity_selector_dialog.js +6 -9
  7. data/app/assets/javascripts/decidim/initiatives/scoped_type.js +8 -12
  8. data/app/assets/stylesheet/decidim/initiatives/admin.css.scss +10 -11
  9. data/app/assets/stylesheet/decidim/initiatives/application.css.scss +19 -19
  10. data/app/assets/stylesheet/decidim/initiatives/popularity_item.css.scss +40 -24
  11. data/app/assets/stylesheet/decidim/initiatives/print-initiative.css.scss +26 -26
  12. data/app/assets/stylesheet/decidim/initiatives/social_share.css.scss +5 -4
  13. data/app/assets/stylesheet/decidim/initiatives/statistics.css.scss +4 -4
  14. data/app/commands/decidim/initiatives/admin/create_initiative_type.rb +1 -4
  15. data/app/commands/decidim/initiatives/admin/publish_initiative.rb +44 -0
  16. data/app/commands/decidim/initiatives/admin/send_initiative_to_technical_validation.rb +42 -0
  17. data/app/commands/decidim/initiatives/admin/unpublish_initiative.rb +44 -0
  18. data/app/commands/decidim/initiatives/admin/update_initiative.rb +9 -7
  19. data/app/commands/decidim/initiatives/admin/update_initiative_type.rb +1 -4
  20. data/app/commands/decidim/initiatives/create_initiative.rb +23 -13
  21. data/app/commands/decidim/initiatives/spawn_committee_request.rb +1 -1
  22. data/app/constraints/decidim/initiatives/current_component.rb +28 -0
  23. data/app/constraints/decidim/initiatives/current_initiative.rb +2 -2
  24. data/app/controllers/concerns/decidim/initiatives/action_authorization.rb +1 -1
  25. data/app/controllers/concerns/decidim/initiatives/admin/initiative_admin.rb +1 -3
  26. data/app/controllers/concerns/decidim/initiatives/orderable.rb +6 -6
  27. data/app/controllers/concerns/decidim/initiatives/type_selector_options.rb +1 -1
  28. data/app/controllers/decidim/initiatives/admin/application_controller.rb +1 -1
  29. data/app/controllers/decidim/initiatives/admin/{feature_permissions_controller.rb → component_permissions_controller.rb} +2 -2
  30. data/app/controllers/decidim/initiatives/admin/components_controller.rb +15 -0
  31. data/app/controllers/decidim/initiatives/admin/initiatives_controller.rb +29 -18
  32. data/app/controllers/decidim/initiatives/admin/initiatives_type_scopes_controller.rb +6 -6
  33. data/app/controllers/decidim/initiatives/admin/initiatives_types_controller.rb +7 -7
  34. data/app/controllers/decidim/initiatives/committee_requests_controller.rb +2 -3
  35. data/app/controllers/decidim/initiatives/create_initiative_controller.rb +5 -9
  36. data/app/controllers/decidim/initiatives/initiative_votes_controller.rb +3 -3
  37. data/app/controllers/decidim/initiatives/initiatives_controller.rb +0 -1
  38. data/app/forms/decidim/initiatives/admin/initiative_form.rb +1 -1
  39. data/app/forms/decidim/initiatives/admin/initiative_type_scope_form.rb +3 -2
  40. data/app/helpers/decidim/initiatives/create_initiative_helper.rb +7 -7
  41. data/app/helpers/decidim/initiatives/initiative_helper.rb +36 -29
  42. data/app/helpers/decidim/initiatives/initiatives_helper.rb +1 -1
  43. data/app/mailers/decidim/initiatives/initiatives_mailer.rb +18 -16
  44. data/app/models/decidim/initiative.rb +15 -7
  45. data/app/models/decidim/initiatives/abilities/admin/attachments_ability.rb +1 -0
  46. data/app/models/decidim/initiatives/abilities/admin/{features_ability.rb → components_ability.rb} +2 -3
  47. data/app/models/decidim/initiatives_vote.rb +3 -3
  48. data/app/presenters/decidim/initiatives/admin_log/initiative_presenter.rb +49 -0
  49. data/app/presenters/decidim/initiatives/initiative_stats_presenter.rb +4 -4
  50. data/app/queries/decidim/initiatives/admin/manageable_initiatives.rb +8 -8
  51. data/app/queries/decidim/initiatives/freetext_initiative_types.rb +1 -1
  52. data/app/queries/decidim/initiatives/initiatives_created.rb +1 -1
  53. data/app/queries/decidim/initiatives/initiatives_promoted.rb +3 -3
  54. data/app/queries/decidim/initiatives/outdated_validating_initiatives.rb +3 -3
  55. data/app/queries/decidim/initiatives/support_period_finished_initiatives.rb +3 -3
  56. data/app/services/decidim/initiatives/initiative_search.rb +5 -5
  57. data/app/services/decidim/initiatives/progress_notifier.rb +1 -1
  58. data/app/services/decidim/initiatives/status_change_notifier.rb +3 -9
  59. data/app/views/decidim/initiatives/_initiative.html.erb +11 -11
  60. data/app/views/decidim/initiatives/admin/committee_requests/index.html.erb +14 -14
  61. data/app/views/decidim/initiatives/admin/initiatives/_form.html.erb +5 -5
  62. data/app/views/decidim/initiatives/admin/initiatives/edit.html.erb +25 -25
  63. data/app/views/decidim/initiatives/admin/initiatives/index.html.erb +31 -31
  64. data/app/views/decidim/initiatives/admin/initiatives/show.html.erb +7 -8
  65. data/app/views/decidim/initiatives/admin/initiatives_type_scopes/_form.html.erb +1 -3
  66. data/app/views/decidim/initiatives/admin/initiatives_type_scopes/edit.html.erb +8 -8
  67. data/app/views/decidim/initiatives/admin/initiatives_type_scopes/new.html.erb +5 -5
  68. data/app/views/decidim/initiatives/admin/initiatives_types/_form.html.erb +2 -2
  69. data/app/views/decidim/initiatives/admin/initiatives_types/_initiative_type_scopes.html.erb +9 -9
  70. data/app/views/decidim/initiatives/admin/initiatives_types/edit.html.erb +8 -8
  71. data/app/views/decidim/initiatives/admin/initiatives_types/index.html.erb +3 -3
  72. data/app/views/decidim/initiatives/admin/initiatives_types/new.html.erb +3 -3
  73. data/app/views/decidim/initiatives/committee_requests/new.html.erb +13 -13
  74. data/app/views/decidim/initiatives/create_initiative/_finish_help.html.erb +7 -0
  75. data/app/views/decidim/initiatives/create_initiative/_share_committee_link.html.erb +4 -4
  76. data/app/views/decidim/initiatives/create_initiative/fill_data.html.erb +8 -8
  77. data/app/views/decidim/initiatives/create_initiative/finish.html.erb +10 -10
  78. data/app/views/decidim/initiatives/create_initiative/previous_form.html.erb +9 -9
  79. data/app/views/decidim/initiatives/create_initiative/promotal_committee.html.erb +8 -8
  80. data/app/views/decidim/initiatives/create_initiative/select_initiative_type.html.erb +9 -10
  81. data/app/views/decidim/initiatives/create_initiative/show_similar_initiatives.html.erb +7 -7
  82. data/app/views/decidim/initiatives/initiative_votes/update_buttons_and_counters.js.erb +2 -2
  83. data/app/views/decidim/initiatives/initiative_widgets/show.html.erb +1 -1
  84. data/app/views/decidim/initiatives/initiatives/_author.html.erb +3 -3
  85. data/app/views/decidim/initiatives/initiatives/_count.html.erb +1 -1
  86. data/app/views/decidim/initiatives/initiatives/_filters.html.erb +11 -11
  87. data/app/views/decidim/initiatives/initiatives/_filters_small_view.html.erb +5 -5
  88. data/app/views/decidim/initiatives/initiatives/_index_header.html.erb +1 -1
  89. data/app/views/decidim/initiatives/initiatives/_initiative_badge.html.erb +1 -1
  90. data/app/views/decidim/initiatives/initiatives/_initiatives.html.erb +2 -2
  91. data/app/views/decidim/initiatives/initiatives/_result.html.erb +4 -4
  92. data/app/views/decidim/initiatives/initiatives/_statistics.html.erb +5 -5
  93. data/app/views/decidim/initiatives/initiatives/_supports.html.erb +1 -1
  94. data/app/views/decidim/initiatives/initiatives/_supports_count.html.erb +1 -2
  95. data/app/views/decidim/initiatives/initiatives/_tags.html.erb +2 -2
  96. data/app/views/decidim/initiatives/initiatives/_vote_button.html.erb +3 -3
  97. data/app/views/decidim/initiatives/initiatives/_vote_cabin.html.erb +3 -3
  98. data/app/views/decidim/initiatives/initiatives/_votes_count.html.erb +2 -2
  99. data/app/views/decidim/initiatives/initiatives/index.html.erb +8 -8
  100. data/app/views/decidim/initiatives/initiatives/index.js.erb +2 -2
  101. data/app/views/decidim/initiatives/initiatives/show.html.erb +21 -21
  102. data/app/views/decidim/initiatives/initiatives/signature_identities.html.erb +6 -6
  103. data/app/views/decidim/initiatives/initiatives_mailer/_initiative_link.html.erb +2 -2
  104. data/app/views/decidim/initiatives/initiatives_mailer/notify_creation.html.erb +6 -6
  105. data/app/views/decidim/initiatives/initiatives_mailer/notify_progress.html.erb +2 -2
  106. data/app/views/decidim/initiatives/initiatives_mailer/notify_state_change.html.erb +2 -2
  107. data/app/views/decidim/initiatives/initiatives_mailer/notify_validating_request.html.erb +2 -2
  108. data/app/views/decidim/initiatives/initiatives_type_scopes/search.html.erb +1 -1
  109. data/app/views/layouts/decidim/_initiative_creation_header.html.erb +3 -4
  110. data/app/views/layouts/decidim/_initiative_header.html.erb +21 -21
  111. data/app/views/layouts/decidim/_initiative_header_steps.html.erb +1 -1
  112. data/app/views/layouts/decidim/admin/initiative.html.erb +15 -15
  113. data/app/views/layouts/decidim/admin/initiatives.html.erb +4 -4
  114. data/app/views/layouts/decidim/initiative.html.erb +2 -2
  115. data/app/views/layouts/decidim/initiative_creation.html.erb +4 -6
  116. data/config/locales/ca.yml +243 -246
  117. data/config/locales/en.yml +218 -222
  118. data/config/locales/es.yml +243 -246
  119. data/config/locales/eu.yml +322 -0
  120. data/config/locales/fi.yml +322 -0
  121. data/config/locales/fr.yml +322 -0
  122. data/config/locales/gl.yml +322 -0
  123. data/config/locales/it.yml +322 -0
  124. data/config/locales/nl.yml +322 -0
  125. data/config/locales/pl.yml +328 -0
  126. data/config/locales/pt-BR.yml +322 -0
  127. data/config/locales/pt.yml +322 -0
  128. data/config/locales/ru.yml +5 -0
  129. data/config/locales/sv.yml +322 -0
  130. data/config/locales/uk.yml +5 -0
  131. data/db/migrate/20170906091626_create_decidim_initiatives_types.rb +1 -1
  132. data/db/migrate/20170906094044_create_decidim_initiatives.rb +3 -3
  133. data/db/migrate/20170922152432_create_decidim_initiatives_committee_members.rb +2 -2
  134. data/db/migrate/20170927153744_change_signature_interval_to_optional.rb +2 -0
  135. data/db/migrate/20170928160302_add_decidim_user_group_id_to_decidim_initiatives_votes.rb +2 -0
  136. data/db/migrate/20170928160912_remove_scope_from_decidim_initiatives_votes.rb +2 -0
  137. data/db/migrate/20171011110714_add_banner_image_to_initiative_type.rb +2 -0
  138. data/db/migrate/20171011152425_add_hashtag_to_initiatives.rb +2 -0
  139. data/db/migrate/20171013090432_add_initiative_supports_count_to_initiative.rb +7 -1
  140. data/db/migrate/20171017090551_create_decidim_initiatives_decidim_initiatives_type_scopes.rb +4 -2
  141. data/db/migrate/20171017091458_remove_supports_required_from_decidim_initiatives_types.rb +2 -0
  142. data/db/migrate/20171017091734_add_scopes_for_all_initiative_types.rb +29 -5
  143. data/db/migrate/20171017094911_add_scoped_type_to_initiative.rb +2 -0
  144. data/db/migrate/20171017095143_update_initiative_scoped_type.rb +47 -4
  145. data/db/migrate/20171017103029_remove_unused_attributes_from_initiative.rb +2 -0
  146. data/db/migrate/20171019103358_add_initiative_notification_dates.rb +2 -0
  147. data/db/migrate/20171023075942_create_initiative_extra_data.rb +2 -0
  148. data/db/migrate/20171023122747_create_static_pages.rb +15 -6
  149. data/db/migrate/20171023141639_optional_validation_support.rb +2 -0
  150. data/db/migrate/20171031183855_add_offline_votes_to_initiative.rb +2 -0
  151. data/db/migrate/20171102094250_drop_initiative_description_index.rb +2 -0
  152. data/db/migrate/20171102094556_create_initiative_description_index.rb +4 -2
  153. data/db/migrate/20171109132011_enable_pg_extensions.rb +5 -5
  154. data/db/migrate/20171204094639_drop_decidim_initiatives_extra_data.rb +2 -0
  155. data/db/migrate/20171204103119_remove_requires_validation_from_decidim_initiatives_type.rb +2 -0
  156. data/db/migrate/20171214161410_add_unique_on_votes.rb +10 -9
  157. data/lib/decidim/initiatives.rb +2 -2
  158. data/lib/decidim/initiatives/admin_engine.rb +26 -26
  159. data/lib/decidim/initiatives/current_locale.rb +1 -1
  160. data/lib/decidim/initiatives/engine.rb +5 -5
  161. data/lib/decidim/initiatives/initiative_slug.rb +2 -3
  162. data/lib/decidim/initiatives/participatory_space.rb +19 -17
  163. data/lib/decidim/initiatives/test/factories.rb +2 -7
  164. data/lib/decidim/initiatives/version.rb +3 -1
  165. data/lib/tasks/decidim_initiatives.rake +2 -0
  166. metadata +57 -90
  167. data/LICENSE-AGPLv3.txt +0 -661
  168. data/app/constraints/decidim/initiatives/current_feature.rb +0 -28
  169. data/app/controllers/decidim/initiatives/admin/features_controller.rb +0 -16
  170. data/app/helpers/decidim/initiatives/partial_translations_helper.rb +0 -28
  171. data/app/views/decidim/initiatives/create_initiative/_compare_help.ca.html.erb +0 -2
  172. data/app/views/decidim/initiatives/create_initiative/_compare_help.en.html.erb +0 -2
  173. data/app/views/decidim/initiatives/create_initiative/_compare_help.es.html.erb +0 -2
  174. data/app/views/decidim/initiatives/create_initiative/_finish_help.ca.html.erb +0 -19
  175. data/app/views/decidim/initiatives/create_initiative/_finish_help.en.html.erb +0 -20
  176. data/app/views/decidim/initiatives/create_initiative/_finish_help.es.html.erb +0 -19
@@ -3,9 +3,9 @@
3
3
  module Decidim
4
4
  module Initiatives
5
5
  module Admin
6
- # Controller that allows managing the Initiative's Feature
6
+ # Controller that allows managing the Initiative's Component
7
7
  # permissions in the admin panel.
8
- class FeaturePermissionsController < Decidim::Admin::FeaturePermissionsController
8
+ class ComponentPermissionsController < Decidim::Admin::ComponentPermissionsController
9
9
  include InitiativeAdmin
10
10
  end
11
11
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Initiatives
5
+ module Admin
6
+ # Controller that allows managing the Initiative's Components in the
7
+ # admin panel.
8
+ class ComponentsController < Decidim::Admin::ComponentsController
9
+ layout "decidim/admin/initiative"
10
+
11
+ include NeedsInitiative
12
+ end
13
+ end
14
+ end
15
+ end
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  module Initiatives
5
5
  module Admin
6
- require 'csv'
6
+ require "csv"
7
7
 
8
8
  # Controller used to manage the initiatives
9
9
  class InitiativesController < Decidim::Initiatives::Admin::ApplicationController
@@ -12,7 +12,6 @@ module Decidim
12
12
 
13
13
  helper Decidim::Initiatives::InitiativeHelper
14
14
  helper Decidim::Initiatives::CreateInitiativeHelper
15
- helper Decidim::Initiatives::PartialTranslationsHelper
16
15
 
17
16
  # GET /admin/initiatives
18
17
  def index
@@ -45,7 +44,7 @@ module Decidim
45
44
  initiative: current_initiative
46
45
  )
47
46
 
48
- render layout: 'decidim/admin/initiative'
47
+ render layout: "decidim/admin/initiative"
49
48
  end
50
49
 
51
50
  # PUT /admin/initiatives/:id
@@ -58,13 +57,13 @@ module Decidim
58
57
 
59
58
  UpdateInitiative.call(current_initiative, @form, current_user) do
60
59
  on(:ok) do |initiative|
61
- flash[:notice] = I18n.t('initiatives.update.success', scope: 'decidim.initiatives.admin')
60
+ flash[:notice] = I18n.t("initiatives.update.success", scope: "decidim.initiatives.admin")
62
61
  redirect_to edit_initiative_path(initiative)
63
62
  end
64
63
 
65
64
  on(:invalid) do
66
- flash.now[:alert] = I18n.t('initiatives.update.error', scope: 'decidim.initiatives.admin')
67
- render :edit, layout: 'decidim/admin/initiative'
65
+ flash.now[:alert] = I18n.t("initiatives.update.error", scope: "decidim.initiatives.admin")
66
+ render :edit, layout: "decidim/admin/initiative"
68
67
  end
69
68
  end
70
69
  end
@@ -72,15 +71,23 @@ module Decidim
72
71
  # POST /admin/initiatives/:id/publish
73
72
  def publish
74
73
  authorize! :publish, current_initiative
75
- current_initiative.publish!
76
- redirect_to decidim_admin_initiatives.initiatives_path
74
+
75
+ PublishInitiative.call(current_initiative, current_user) do
76
+ on(:ok) do
77
+ redirect_to decidim_admin_initiatives.initiatives_path
78
+ end
79
+ end
77
80
  end
78
81
 
79
82
  # DELETE /admin/initiatives/:id/unpublish
80
83
  def unpublish
81
84
  authorize! :unpublish, current_initiative
82
- current_initiative.unpublish!
83
- redirect_to decidim_admin_initiatives.initiatives_path
85
+
86
+ UnpublishInitiative.call(current_initiative, current_user) do
87
+ on(:ok) do
88
+ redirect_to decidim_admin_initiatives.initiatives_path
89
+ end
90
+ end
84
91
  end
85
92
 
86
93
  # DELETE /admin/initiatives/:id/discard
@@ -107,13 +114,17 @@ module Decidim
107
114
  # GET /admin/initiatives/:id/send_to_technical_validation
108
115
  def send_to_technical_validation
109
116
  authorize! :send_to_technical_validation, current_initiative
110
- current_initiative.validating!
111
- redirect_to edit_initiative_path(current_initiative), flash: {
112
- notice: I18n.t(
113
- '.success',
114
- scope: %w[decidim initiatives admin initiatives edit]
115
- )
116
- }
117
+
118
+ SendInitiativeToTechnicalValidation.call(current_initiative, current_user) do
119
+ on(:ok) do
120
+ redirect_to edit_initiative_path(current_initiative), flash: {
121
+ notice: I18n.t(
122
+ "success",
123
+ scope: %w(decidim initiatives admin initiatives edit)
124
+ )
125
+ }
126
+ end
127
+ end
117
128
  end
118
129
 
119
130
  # GET /admin/initiatives/:id/export_votes
@@ -128,7 +139,7 @@ module Decidim
128
139
  end
129
140
 
130
141
  respond_to do |format|
131
- format.csv { send_data csv_data, file_name: 'votes.csv' }
142
+ format.csv { send_data csv_data, file_name: "votes.csv" }
132
143
  end
133
144
  end
134
145
  end
@@ -21,12 +21,12 @@ module Decidim
21
21
 
22
22
  CreateInitiativeTypeScope.call(@form) do
23
23
  on(:ok) do |initiative_type_scope|
24
- flash[:notice] = I18n.t('decidim.initiatives.admin.initiatives_type_scopes.create.success')
24
+ flash[:notice] = I18n.t("decidim.initiatives.admin.initiatives_type_scopes.create.success")
25
25
  redirect_to edit_initiatives_type_path(initiative_type_scope.type)
26
26
  end
27
27
 
28
28
  on(:invalid) do
29
- flash.now[:alert] = I18n.t('decidim.initiatives.admin.initiatives_type_scopes.create.error')
29
+ flash.now[:alert] = I18n.t("decidim.initiatives.admin.initiatives_type_scopes.create.error")
30
30
  render :new
31
31
  end
32
32
  end
@@ -45,12 +45,12 @@ module Decidim
45
45
 
46
46
  UpdateInitiativeTypeScope.call(current_initiative_type_scope, @form) do
47
47
  on(:ok) do
48
- flash[:notice] = I18n.t('decidim.initiatives.admin.initiatives_type_scopes.update.success')
48
+ flash[:notice] = I18n.t("decidim.initiatives.admin.initiatives_type_scopes.update.success")
49
49
  redirect_to edit_initiatives_type_path(initiative_type_scope.type)
50
50
  end
51
51
 
52
52
  on(:invalid) do
53
- flash.now[:alert] = I18n.t('decidim.initiatives.admin.initiatives_type_scopes.update.error')
53
+ flash.now[:alert] = I18n.t("decidim.initiatives.admin.initiatives_type_scopes.update.error")
54
54
  render :edit
55
55
  end
56
56
  end
@@ -62,14 +62,14 @@ module Decidim
62
62
  current_initiative_type_scope.destroy!
63
63
 
64
64
  redirect_to edit_initiatives_type_path(current_initiative_type_scope.type), flash: {
65
- notice: I18n.t('decidim.initiatives.admin.initiatives_type_scopes.destroy.success')
65
+ notice: I18n.t("decidim.initiatives.admin.initiatives_type_scopes.destroy.success")
66
66
  }
67
67
  end
68
68
 
69
69
  private
70
70
 
71
71
  def current_initiative_type_scope
72
- @initiatives_type_scope ||= InitiativesTypeScope.find(params[:id])
72
+ @current_initiative_type_scope ||= InitiativesTypeScope.find(params[:id])
73
73
  end
74
74
 
75
75
  def initiative_type_scope_form
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_dependency 'decidim/initiatives/admin/application_controller'
3
+ require_dependency "decidim/initiatives/admin/application_controller"
4
4
 
5
5
  module Decidim
6
6
  module Initiatives
@@ -30,12 +30,12 @@ module Decidim
30
30
 
31
31
  CreateInitiativeType.call(@form) do
32
32
  on(:ok) do |initiative_type|
33
- flash[:notice] = I18n.t('decidim.initiatives.admin.initiatives_types.create.success')
33
+ flash[:notice] = I18n.t("decidim.initiatives.admin.initiatives_types.create.success")
34
34
  redirect_to edit_initiatives_type_path(initiative_type)
35
35
  end
36
36
 
37
37
  on(:invalid) do
38
- flash.now[:alert] = I18n.t('decidim.initiatives.admin.initiatives_types.create.error')
38
+ flash.now[:alert] = I18n.t("decidim.initiatives.admin.initiatives_types.create.error")
39
39
  render :new
40
40
  end
41
41
  end
@@ -58,12 +58,12 @@ module Decidim
58
58
 
59
59
  UpdateInitiativeType.call(current_initiative_type, @form) do
60
60
  on(:ok) do
61
- flash[:notice] = I18n.t('decidim.initiatives.admin.initiatives_types.update.success')
61
+ flash[:notice] = I18n.t("decidim.initiatives.admin.initiatives_types.update.success")
62
62
  redirect_to edit_initiatives_type_path(current_initiative_type)
63
63
  end
64
64
 
65
65
  on(:invalid) do
66
- flash.now[:alert] = I18n.t('decidim.initiatives.admin.initiatives_types.update.error')
66
+ flash.now[:alert] = I18n.t("decidim.initiatives.admin.initiatives_types.update.error")
67
67
  render :edit
68
68
  end
69
69
  end
@@ -75,14 +75,14 @@ module Decidim
75
75
  current_initiative_type.destroy!
76
76
 
77
77
  redirect_to initiatives_types_path, flash: {
78
- notice: I18n.t('decidim.initiatives.admin.initiatives_types.destroy.success')
78
+ notice: I18n.t("decidim.initiatives.admin.initiatives_types.destroy.success")
79
79
  }
80
80
  end
81
81
 
82
82
  private
83
83
 
84
84
  def current_initiative_type
85
- @initiatives_type ||= InitiativesType.find(params[:id])
85
+ @current_initiative_type ||= InitiativesType.find(params[:id])
86
86
  end
87
87
 
88
88
  def initiative_type_form
@@ -7,7 +7,6 @@ module Decidim
7
7
  include Decidim::Initiatives::NeedsInitiative
8
8
 
9
9
  helper Decidim::ActionAuthorizationHelper
10
- helper Decidim::Initiatives::PartialTranslationsHelper
11
10
  helper InitiativeHelper
12
11
 
13
12
  include Decidim::Initiatives::ActionAuthorization
@@ -25,8 +24,8 @@ module Decidim
25
24
  on(:ok) do
26
25
  redirect_to initiatives_path, flash: {
27
26
  notice: I18n.t(
28
- ".success",
29
- scope: %w[decidim initiatives committee_requests spawn]
27
+ "success",
28
+ scope: %w(decidim initiatives committee_requests spawn)
30
29
  )
31
30
  }
32
31
  end
@@ -2,18 +2,17 @@
2
2
 
3
3
  module Decidim
4
4
  module Initiatives
5
- require 'wicked'
5
+ require "wicked"
6
6
 
7
7
  # Controller in charge of managing the create initiative wizard.
8
8
  class CreateInitiativeController < Decidim::ApplicationController
9
- layout 'layouts/decidim/initiative_creation'
9
+ layout "layouts/decidim/initiative_creation"
10
10
 
11
11
  include Wicked::Wizard
12
12
  include Decidim::FormFactory
13
13
  include InitiativeHelper
14
14
  include TypeSelectorOptions
15
15
 
16
- helper Decidim::Initiatives::PartialTranslationsHelper
17
16
  helper Decidim::Admin::IconLinkHelper
18
17
  helper InitiativeHelper
19
18
  helper_method :similar_initiatives
@@ -72,7 +71,7 @@ module Decidim
72
71
  end
73
72
 
74
73
  def promotal_committee_step(parameters)
75
- if session[:initiative].key?(:id)
74
+ if session[:initiative].has_key?(:id)
76
75
  render_wizard
77
76
  return
78
77
  end
@@ -90,10 +89,7 @@ module Decidim
90
89
  end
91
90
 
92
91
  on(:invalid) do |initiative|
93
- if initiative
94
- logger.fatal "Failed creating initiative: #{initiative.errors.full_messages.join(', ')}"
95
- end
96
-
92
+ logger.fatal "Failed creating initiative: #{initiative.errors.full_messages.join(", ")}" if initiative
97
93
  redirect_to previous_wizard_path(validate_form: true)
98
94
  end
99
95
  end
@@ -124,7 +120,7 @@ module Decidim
124
120
 
125
121
  def current_initiative
126
122
  initiative = session[:initiative].with_indifferent_access
127
- Initiative.find(initiative[:id]) if initiative.key?(:id)
123
+ Initiative.find(initiative[:id]) if initiative.has_key?(:id)
128
124
  end
129
125
 
130
126
  def initiative_type
@@ -23,7 +23,7 @@ module Decidim
23
23
 
24
24
  on(:invalid) do
25
25
  render json: {
26
- error: I18n.t('initiative_votes.create.error', scope: 'decidim.initiatives')
26
+ error: I18n.t("initiative_votes.create.error", scope: "decidim.initiatives")
27
27
  }, status: 422
28
28
  end
29
29
  end
@@ -45,9 +45,9 @@ module Decidim
45
45
  def ability_context
46
46
  {
47
47
  current_settings: try(:current_settings),
48
- feature_settings: try(:feature_settings),
48
+ component_settings: try(:component_settings),
49
49
  current_organization: try(:current_organization),
50
- current_feature: try(:current_feature),
50
+ current_component: try(:current_component),
51
51
  params: try(:params)
52
52
  }
53
53
  end
@@ -7,7 +7,6 @@ module Decidim
7
7
  include ParticipatorySpaceContext
8
8
  participatory_space_layout only: [:show]
9
9
 
10
- helper Decidim::Initiatives::PartialTranslationsHelper
11
10
  helper Decidim::WidgetUrlsHelper
12
11
  helper Decidim::AttachmentsHelper
13
12
  helper Decidim::FiltersHelper
@@ -27,7 +27,7 @@ module Decidim
27
27
  validates :signature_type, presence: true
28
28
  validates :signature_start_time, presence: true, if: ->(form) { form.context.initiative.published? }
29
29
  validates :signature_end_time, presence: true, if: ->(form) { form.context.initiative.published? }
30
- validates :signature_end_time, date: { after: :signature_start_time }, if: ->(form) {
30
+ validates :signature_end_time, date: { after: :signature_start_time }, if: lambda { |form|
31
31
  form.signature_start_time.present? && form.signature_end_time.present?
32
32
  }
33
33
 
@@ -12,7 +12,8 @@ module Decidim
12
12
  attribute :decidim_scopes_id, Integer
13
13
 
14
14
  validates :decidim_scopes_id, presence: true
15
- validates :supports_required, presence: true,
15
+ validates :supports_required,
16
+ presence: true,
16
17
  numericality: {
17
18
  only_integer: true,
18
19
  greater_than: 0
@@ -20,4 +21,4 @@ module Decidim
20
21
  end
21
22
  end
22
23
  end
23
- end
24
+ end
@@ -13,7 +13,7 @@ module Decidim
13
13
  options << [
14
14
  I18n.t(
15
15
  type,
16
- scope: %w[activemodel attributes initiative signature_type_values]
16
+ scope: %w(activemodel attributes initiative signature_type_values)
17
17
  ), type
18
18
  ]
19
19
  end
@@ -24,9 +24,9 @@ module Decidim
24
24
  [
25
25
  [
26
26
  I18n.t(
27
- 'online',
28
- scope: %w[activemodel attributes initiative signature_type_values]
29
- ), 'online'
27
+ "online",
28
+ scope: %w(activemodel attributes initiative signature_type_values)
29
+ ), "online"
30
30
  ]
31
31
  ]
32
32
  end
@@ -35,9 +35,9 @@ module Decidim
35
35
  [
36
36
  [
37
37
  I18n.t(
38
- 'offline',
39
- scope: %w[activemodel attributes initiative signature_type_values]
40
- ), 'offline'
38
+ "offline",
39
+ scope: %w(activemodel attributes initiative signature_type_values)
40
+ ), "offline"
41
41
  ]
42
42
  ]
43
43
  end
@@ -11,8 +11,8 @@ module Decidim
11
11
  #
12
12
  # Returns a String.
13
13
  def state_badge_css_class(initiative)
14
- return 'success' if initiative.accepted?
15
- 'warning'
14
+ return "success" if initiative.accepted?
15
+ "warning"
16
16
  end
17
17
 
18
18
  # Public: The state of an initiative in a way a human can understand.
@@ -21,8 +21,8 @@ module Decidim
21
21
  #
22
22
  # Returns a String.
23
23
  def humanize_state(initiative)
24
- I18n.t(initiative.accepted? ? 'accepted': 'expired',
25
- scope: 'decidim.initiatives.states',
24
+ I18n.t(initiative.accepted? ? "accepted" : "expired",
25
+ scope: "decidim.initiatives.states",
26
26
  default: :expired)
27
27
  end
28
28
 
@@ -33,42 +33,49 @@ module Decidim
33
33
  #
34
34
  # Returns a String
35
35
  def humanize_admin_state(state)
36
- I18n.t(state, scope: 'decidim.initiatives.admin_states', default: :created)
36
+ I18n.t(state, scope: "decidim.initiatives.admin_states", default: :created)
37
37
  end
38
38
 
39
39
  def popularity_tag(initiative)
40
- popularity_class = ''
40
+ content_tag(:div, class: "extra__popularity popularity #{popularity_class(initiative)}".strip) do
41
+ 5.times do
42
+ concat(content_tag(:span, class: "popularity__item") {})
43
+ end
41
44
 
42
- if initiative.percentage.positive? && initiative.percentage < 40
43
- popularity_class = 'popularity--level1'
45
+ concat(content_tag(:span, class: "popularity__desc") do
46
+ I18n.t("decidim.initiatives.initiatives.vote_cabin.supports_required",
47
+ total_supports: initiative.scoped_type.supports_required)
48
+ end)
44
49
  end
50
+ end
45
51
 
46
- if initiative.percentage >= 40 && initiative.percentage < 60
47
- popularity_class = 'popularity--level2'
48
- end
52
+ def popularity_class(initiative)
53
+ return "popularity--level1" if popularity_level1?(initiative)
54
+ return "popularity--level2" if popularity_level2?(initiative)
55
+ return "popularity--level3" if popularity_level3?(initiative)
56
+ return "popularity--level4" if popularity_level4?(initiative)
57
+ return "popularity--level5" if popularity_level5?(initiative)
58
+ ""
59
+ end
49
60
 
50
- if initiative.percentage >= 60 && initiative.percentage < 80
51
- popularity_class = 'popularity--level3'
52
- end
61
+ def popularity_level1?(initiative)
62
+ initiative.percentage.positive? && initiative.percentage < 40
63
+ end
53
64
 
54
- if initiative.percentage >= 80 && initiative.percentage < 100
55
- popularity_class = 'popularity--level4'
56
- end
65
+ def popularity_level2?(initiative)
66
+ initiative.percentage >= 40 && initiative.percentage < 60
67
+ end
57
68
 
58
- if initiative.percentage >= 100
59
- popularity_class = 'popularity--level5'
60
- end
69
+ def popularity_level3?(initiative)
70
+ initiative.percentage >= 60 && initiative.percentage < 80
71
+ end
61
72
 
62
- content_tag(:div, class: "extra__popularity popularity #{popularity_class}".strip) do
63
- 5.times do
64
- concat(content_tag(:span, class: 'popularity__item') {})
65
- end
73
+ def popularity_level4?(initiative)
74
+ initiative.percentage >= 80 && initiative.percentage < 100
75
+ end
66
76
 
67
- concat(content_tag(:span, class: 'popularity__desc') do
68
- I18n.t('decidim.initiatives.initiatives.vote_cabin.supports_required',
69
- total_supports: initiative.scoped_type.supports_required)
70
- end)
71
- end
77
+ def popularity_level5?(initiative)
78
+ initiative.percentage >= 100
72
79
  end
73
80
  end
74
81
  end