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.
- checksums.yaml +4 -4
- data/README.md +16 -16
- data/Rakefile +1 -1
- data/app/assets/javascripts/decidim/initiatives/admin/invite_users.js +7 -8
- data/app/assets/javascripts/decidim/initiatives/application.js +1 -1
- data/app/assets/javascripts/decidim/initiatives/identity_selector_dialog.js +6 -9
- data/app/assets/javascripts/decidim/initiatives/scoped_type.js +8 -12
- data/app/assets/stylesheet/decidim/initiatives/admin.css.scss +10 -11
- data/app/assets/stylesheet/decidim/initiatives/application.css.scss +19 -19
- data/app/assets/stylesheet/decidim/initiatives/popularity_item.css.scss +40 -24
- data/app/assets/stylesheet/decidim/initiatives/print-initiative.css.scss +26 -26
- data/app/assets/stylesheet/decidim/initiatives/social_share.css.scss +5 -4
- data/app/assets/stylesheet/decidim/initiatives/statistics.css.scss +4 -4
- data/app/commands/decidim/initiatives/admin/create_initiative_type.rb +1 -4
- data/app/commands/decidim/initiatives/admin/publish_initiative.rb +44 -0
- data/app/commands/decidim/initiatives/admin/send_initiative_to_technical_validation.rb +42 -0
- data/app/commands/decidim/initiatives/admin/unpublish_initiative.rb +44 -0
- data/app/commands/decidim/initiatives/admin/update_initiative.rb +9 -7
- data/app/commands/decidim/initiatives/admin/update_initiative_type.rb +1 -4
- data/app/commands/decidim/initiatives/create_initiative.rb +23 -13
- data/app/commands/decidim/initiatives/spawn_committee_request.rb +1 -1
- data/app/constraints/decidim/initiatives/current_component.rb +28 -0
- data/app/constraints/decidim/initiatives/current_initiative.rb +2 -2
- data/app/controllers/concerns/decidim/initiatives/action_authorization.rb +1 -1
- data/app/controllers/concerns/decidim/initiatives/admin/initiative_admin.rb +1 -3
- data/app/controllers/concerns/decidim/initiatives/orderable.rb +6 -6
- data/app/controllers/concerns/decidim/initiatives/type_selector_options.rb +1 -1
- data/app/controllers/decidim/initiatives/admin/application_controller.rb +1 -1
- data/app/controllers/decidim/initiatives/admin/{feature_permissions_controller.rb → component_permissions_controller.rb} +2 -2
- data/app/controllers/decidim/initiatives/admin/components_controller.rb +15 -0
- data/app/controllers/decidim/initiatives/admin/initiatives_controller.rb +29 -18
- data/app/controllers/decidim/initiatives/admin/initiatives_type_scopes_controller.rb +6 -6
- data/app/controllers/decidim/initiatives/admin/initiatives_types_controller.rb +7 -7
- data/app/controllers/decidim/initiatives/committee_requests_controller.rb +2 -3
- data/app/controllers/decidim/initiatives/create_initiative_controller.rb +5 -9
- data/app/controllers/decidim/initiatives/initiative_votes_controller.rb +3 -3
- data/app/controllers/decidim/initiatives/initiatives_controller.rb +0 -1
- data/app/forms/decidim/initiatives/admin/initiative_form.rb +1 -1
- data/app/forms/decidim/initiatives/admin/initiative_type_scope_form.rb +3 -2
- data/app/helpers/decidim/initiatives/create_initiative_helper.rb +7 -7
- data/app/helpers/decidim/initiatives/initiative_helper.rb +36 -29
- data/app/helpers/decidim/initiatives/initiatives_helper.rb +1 -1
- data/app/mailers/decidim/initiatives/initiatives_mailer.rb +18 -16
- data/app/models/decidim/initiative.rb +15 -7
- data/app/models/decidim/initiatives/abilities/admin/attachments_ability.rb +1 -0
- data/app/models/decidim/initiatives/abilities/admin/{features_ability.rb → components_ability.rb} +2 -3
- data/app/models/decidim/initiatives_vote.rb +3 -3
- data/app/presenters/decidim/initiatives/admin_log/initiative_presenter.rb +49 -0
- data/app/presenters/decidim/initiatives/initiative_stats_presenter.rb +4 -4
- data/app/queries/decidim/initiatives/admin/manageable_initiatives.rb +8 -8
- data/app/queries/decidim/initiatives/freetext_initiative_types.rb +1 -1
- data/app/queries/decidim/initiatives/initiatives_created.rb +1 -1
- data/app/queries/decidim/initiatives/initiatives_promoted.rb +3 -3
- data/app/queries/decidim/initiatives/outdated_validating_initiatives.rb +3 -3
- data/app/queries/decidim/initiatives/support_period_finished_initiatives.rb +3 -3
- data/app/services/decidim/initiatives/initiative_search.rb +5 -5
- data/app/services/decidim/initiatives/progress_notifier.rb +1 -1
- data/app/services/decidim/initiatives/status_change_notifier.rb +3 -9
- data/app/views/decidim/initiatives/_initiative.html.erb +11 -11
- data/app/views/decidim/initiatives/admin/committee_requests/index.html.erb +14 -14
- data/app/views/decidim/initiatives/admin/initiatives/_form.html.erb +5 -5
- data/app/views/decidim/initiatives/admin/initiatives/edit.html.erb +25 -25
- data/app/views/decidim/initiatives/admin/initiatives/index.html.erb +31 -31
- data/app/views/decidim/initiatives/admin/initiatives/show.html.erb +7 -8
- data/app/views/decidim/initiatives/admin/initiatives_type_scopes/_form.html.erb +1 -3
- data/app/views/decidim/initiatives/admin/initiatives_type_scopes/edit.html.erb +8 -8
- data/app/views/decidim/initiatives/admin/initiatives_type_scopes/new.html.erb +5 -5
- data/app/views/decidim/initiatives/admin/initiatives_types/_form.html.erb +2 -2
- data/app/views/decidim/initiatives/admin/initiatives_types/_initiative_type_scopes.html.erb +9 -9
- data/app/views/decidim/initiatives/admin/initiatives_types/edit.html.erb +8 -8
- data/app/views/decidim/initiatives/admin/initiatives_types/index.html.erb +3 -3
- data/app/views/decidim/initiatives/admin/initiatives_types/new.html.erb +3 -3
- data/app/views/decidim/initiatives/committee_requests/new.html.erb +13 -13
- data/app/views/decidim/initiatives/create_initiative/_finish_help.html.erb +7 -0
- data/app/views/decidim/initiatives/create_initiative/_share_committee_link.html.erb +4 -4
- data/app/views/decidim/initiatives/create_initiative/fill_data.html.erb +8 -8
- data/app/views/decidim/initiatives/create_initiative/finish.html.erb +10 -10
- data/app/views/decidim/initiatives/create_initiative/previous_form.html.erb +9 -9
- data/app/views/decidim/initiatives/create_initiative/promotal_committee.html.erb +8 -8
- data/app/views/decidim/initiatives/create_initiative/select_initiative_type.html.erb +9 -10
- data/app/views/decidim/initiatives/create_initiative/show_similar_initiatives.html.erb +7 -7
- data/app/views/decidim/initiatives/initiative_votes/update_buttons_and_counters.js.erb +2 -2
- data/app/views/decidim/initiatives/initiative_widgets/show.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_author.html.erb +3 -3
- data/app/views/decidim/initiatives/initiatives/_count.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_filters.html.erb +11 -11
- data/app/views/decidim/initiatives/initiatives/_filters_small_view.html.erb +5 -5
- data/app/views/decidim/initiatives/initiatives/_index_header.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_initiative_badge.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_initiatives.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives/_result.html.erb +4 -4
- data/app/views/decidim/initiatives/initiatives/_statistics.html.erb +5 -5
- data/app/views/decidim/initiatives/initiatives/_supports.html.erb +1 -1
- data/app/views/decidim/initiatives/initiatives/_supports_count.html.erb +1 -2
- data/app/views/decidim/initiatives/initiatives/_tags.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives/_vote_button.html.erb +3 -3
- data/app/views/decidim/initiatives/initiatives/_vote_cabin.html.erb +3 -3
- data/app/views/decidim/initiatives/initiatives/_votes_count.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives/index.html.erb +8 -8
- data/app/views/decidim/initiatives/initiatives/index.js.erb +2 -2
- data/app/views/decidim/initiatives/initiatives/show.html.erb +21 -21
- data/app/views/decidim/initiatives/initiatives/signature_identities.html.erb +6 -6
- data/app/views/decidim/initiatives/initiatives_mailer/_initiative_link.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives_mailer/notify_creation.html.erb +6 -6
- data/app/views/decidim/initiatives/initiatives_mailer/notify_progress.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives_mailer/notify_state_change.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives_mailer/notify_validating_request.html.erb +2 -2
- data/app/views/decidim/initiatives/initiatives_type_scopes/search.html.erb +1 -1
- data/app/views/layouts/decidim/_initiative_creation_header.html.erb +3 -4
- data/app/views/layouts/decidim/_initiative_header.html.erb +21 -21
- data/app/views/layouts/decidim/_initiative_header_steps.html.erb +1 -1
- data/app/views/layouts/decidim/admin/initiative.html.erb +15 -15
- data/app/views/layouts/decidim/admin/initiatives.html.erb +4 -4
- data/app/views/layouts/decidim/initiative.html.erb +2 -2
- data/app/views/layouts/decidim/initiative_creation.html.erb +4 -6
- data/config/locales/ca.yml +243 -246
- data/config/locales/en.yml +218 -222
- data/config/locales/es.yml +243 -246
- data/config/locales/eu.yml +322 -0
- data/config/locales/fi.yml +322 -0
- data/config/locales/fr.yml +322 -0
- data/config/locales/gl.yml +322 -0
- data/config/locales/it.yml +322 -0
- data/config/locales/nl.yml +322 -0
- data/config/locales/pl.yml +328 -0
- data/config/locales/pt-BR.yml +322 -0
- data/config/locales/pt.yml +322 -0
- data/config/locales/ru.yml +5 -0
- data/config/locales/sv.yml +322 -0
- data/config/locales/uk.yml +5 -0
- data/db/migrate/20170906091626_create_decidim_initiatives_types.rb +1 -1
- data/db/migrate/20170906094044_create_decidim_initiatives.rb +3 -3
- data/db/migrate/20170922152432_create_decidim_initiatives_committee_members.rb +2 -2
- data/db/migrate/20170927153744_change_signature_interval_to_optional.rb +2 -0
- data/db/migrate/20170928160302_add_decidim_user_group_id_to_decidim_initiatives_votes.rb +2 -0
- data/db/migrate/20170928160912_remove_scope_from_decidim_initiatives_votes.rb +2 -0
- data/db/migrate/20171011110714_add_banner_image_to_initiative_type.rb +2 -0
- data/db/migrate/20171011152425_add_hashtag_to_initiatives.rb +2 -0
- data/db/migrate/20171013090432_add_initiative_supports_count_to_initiative.rb +7 -1
- data/db/migrate/20171017090551_create_decidim_initiatives_decidim_initiatives_type_scopes.rb +4 -2
- data/db/migrate/20171017091458_remove_supports_required_from_decidim_initiatives_types.rb +2 -0
- data/db/migrate/20171017091734_add_scopes_for_all_initiative_types.rb +29 -5
- data/db/migrate/20171017094911_add_scoped_type_to_initiative.rb +2 -0
- data/db/migrate/20171017095143_update_initiative_scoped_type.rb +47 -4
- data/db/migrate/20171017103029_remove_unused_attributes_from_initiative.rb +2 -0
- data/db/migrate/20171019103358_add_initiative_notification_dates.rb +2 -0
- data/db/migrate/20171023075942_create_initiative_extra_data.rb +2 -0
- data/db/migrate/20171023122747_create_static_pages.rb +15 -6
- data/db/migrate/20171023141639_optional_validation_support.rb +2 -0
- data/db/migrate/20171031183855_add_offline_votes_to_initiative.rb +2 -0
- data/db/migrate/20171102094250_drop_initiative_description_index.rb +2 -0
- data/db/migrate/20171102094556_create_initiative_description_index.rb +4 -2
- data/db/migrate/20171109132011_enable_pg_extensions.rb +5 -5
- data/db/migrate/20171204094639_drop_decidim_initiatives_extra_data.rb +2 -0
- data/db/migrate/20171204103119_remove_requires_validation_from_decidim_initiatives_type.rb +2 -0
- data/db/migrate/20171214161410_add_unique_on_votes.rb +10 -9
- data/lib/decidim/initiatives.rb +2 -2
- data/lib/decidim/initiatives/admin_engine.rb +26 -26
- data/lib/decidim/initiatives/current_locale.rb +1 -1
- data/lib/decidim/initiatives/engine.rb +5 -5
- data/lib/decidim/initiatives/initiative_slug.rb +2 -3
- data/lib/decidim/initiatives/participatory_space.rb +19 -17
- data/lib/decidim/initiatives/test/factories.rb +2 -7
- data/lib/decidim/initiatives/version.rb +3 -1
- data/lib/tasks/decidim_initiatives.rake +2 -0
- metadata +57 -90
- data/LICENSE-AGPLv3.txt +0 -661
- data/app/constraints/decidim/initiatives/current_feature.rb +0 -28
- data/app/controllers/decidim/initiatives/admin/features_controller.rb +0 -16
- data/app/helpers/decidim/initiatives/partial_translations_helper.rb +0 -28
- data/app/views/decidim/initiatives/create_initiative/_compare_help.ca.html.erb +0 -2
- data/app/views/decidim/initiatives/create_initiative/_compare_help.en.html.erb +0 -2
- data/app/views/decidim/initiatives/create_initiative/_compare_help.es.html.erb +0 -2
- data/app/views/decidim/initiatives/create_initiative/_finish_help.ca.html.erb +0 -19
- data/app/views/decidim/initiatives/create_initiative/_finish_help.en.html.erb +0 -20
- 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
|
6
|
+
# Controller that allows managing the Initiative's Component
|
7
7
|
# permissions in the admin panel.
|
8
|
-
class
|
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
|
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:
|
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(
|
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(
|
67
|
-
render :edit, layout:
|
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
|
-
|
76
|
-
|
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
|
-
|
83
|
-
|
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
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
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:
|
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(
|
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(
|
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(
|
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(
|
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(
|
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
|
-
@
|
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
|
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(
|
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(
|
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(
|
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(
|
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(
|
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
|
-
@
|
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
|
-
"
|
29
|
-
scope: %w
|
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
|
5
|
+
require "wicked"
|
6
6
|
|
7
7
|
# Controller in charge of managing the create initiative wizard.
|
8
8
|
class CreateInitiativeController < Decidim::ApplicationController
|
9
|
-
layout
|
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].
|
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.
|
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(
|
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
|
-
|
48
|
+
component_settings: try(:component_settings),
|
49
49
|
current_organization: try(:current_organization),
|
50
|
-
|
50
|
+
current_component: try(:current_component),
|
51
51
|
params: try(:params)
|
52
52
|
}
|
53
53
|
end
|
@@ -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:
|
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,
|
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
|
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
|
-
|
28
|
-
scope: %w
|
29
|
-
),
|
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
|
-
|
39
|
-
scope: %w
|
40
|
-
),
|
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
|
15
|
-
|
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? ?
|
25
|
-
scope:
|
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:
|
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
|
-
|
43
|
-
|
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
|
-
|
47
|
-
|
48
|
-
|
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
|
-
|
51
|
-
|
52
|
-
|
61
|
+
def popularity_level1?(initiative)
|
62
|
+
initiative.percentage.positive? && initiative.percentage < 40
|
63
|
+
end
|
53
64
|
|
54
|
-
|
55
|
-
|
56
|
-
|
65
|
+
def popularity_level2?(initiative)
|
66
|
+
initiative.percentage >= 40 && initiative.percentage < 60
|
67
|
+
end
|
57
68
|
|
58
|
-
|
59
|
-
|
60
|
-
|
69
|
+
def popularity_level3?(initiative)
|
70
|
+
initiative.percentage >= 60 && initiative.percentage < 80
|
71
|
+
end
|
61
72
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
end
|
73
|
+
def popularity_level4?(initiative)
|
74
|
+
initiative.percentage >= 80 && initiative.percentage < 100
|
75
|
+
end
|
66
76
|
|
67
|
-
|
68
|
-
|
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
|