decidim-participatory_processes 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +36 -0
- data/Rakefile +3 -0
- data/app/assets/config/admin/decidim_participatory_processes_manifest.js +1 -0
- data/app/assets/config/decidim_participatory_processes_manifest.js +2 -0
- data/app/assets/images/decidim/participatory_processes/process.svg +10 -0
- data/app/assets/javascripts/decidim/participatory_processes/admin/participatory_processes.js.es6 +12 -0
- data/app/assets/javascripts/decidim/participatory_processes/filters.js.es6 +25 -0
- data/app/commands/decidim/participatory_processes/admin/activate_participatory_process_step.rb +46 -0
- data/app/commands/decidim/participatory_processes/admin/copy_participatory_process.rb +116 -0
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +82 -0
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +95 -0
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +57 -0
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_step.rb +49 -0
- data/app/commands/decidim/participatory_processes/admin/deactivate_participatory_process_step.rb +38 -0
- data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_step.rb +46 -0
- data/app/commands/decidim/participatory_processes/admin/publish_participatory_process.rb +34 -0
- data/app/commands/decidim/participatory_processes/admin/reorder_participatory_process_steps.rb +54 -0
- data/app/commands/decidim/participatory_processes/admin/unpublish_participatory_process.rb +34 -0
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +77 -0
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_admin.rb +43 -0
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +60 -0
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +51 -0
- data/app/constraints/decidim/participatory_processes/current_feature.rb +28 -0
- data/app/constraints/decidim/participatory_processes/current_participatory_process.rb +37 -0
- data/app/controllers/concerns/decidim/participatory_processes/admin/participatory_process_context.rb +21 -0
- data/app/controllers/concerns/decidim/participatory_processes/needs_participatory_process.rb +50 -0
- data/app/controllers/concerns/decidim/participatory_processes/participatory_process_context.rb +27 -0
- data/app/controllers/decidim/participatory_processes/admin/application_controller.rb +11 -0
- data/app/controllers/decidim/participatory_processes/admin/categories_controller.rb +13 -0
- data/app/controllers/decidim/participatory_processes/admin/concerns/participatory_process_admin.rb +26 -0
- data/app/controllers/decidim/participatory_processes/admin/exports_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/admin/feature_permissions_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/admin/features_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/admin/moderations_controller.rb +12 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_attachments_controller.rb +27 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_copies_controller.rb +35 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +90 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_publications_controller.rb +45 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_step_activations_controller.rb +39 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_step_ordering_controller.rb +29 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +91 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_user_roles_controller.rb +99 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +102 -0
- data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +28 -0
- data/app/controllers/decidim/participatory_processes/participatory_process_steps_controller.rb +20 -0
- data/app/controllers/decidim/participatory_processes/participatory_process_widgets_controller.rb +21 -0
- data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +64 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_copy_form.rb +35 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +72 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +26 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_step_form.rb +37 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_user_role_form.rb +31 -0
- data/app/helpers/decidim/participatory_processes/admin/process_groups_for_select_helper.rb +23 -0
- data/app/helpers/decidim/participatory_processes/admin/processes_for_select_helper.rb +25 -0
- data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +19 -0
- data/app/helpers/decidim/participatory_processes/participatory_process_steps_helper.rb +20 -0
- data/app/models/decidim/participatory_process.rb +62 -0
- data/app/models/decidim/participatory_process_group.rb +15 -0
- data/app/models/decidim/participatory_process_step.rb +39 -0
- data/app/models/decidim/participatory_processes/abilities/admin/admin_ability.rb +21 -0
- data/app/models/decidim/participatory_processes/abilities/admin_ability.rb +16 -0
- data/app/models/decidim/participatory_processes/abilities/everyone_ability.rb +19 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +52 -0
- data/app/queries/decidim/participatory_processes/admin/admin_users.rb +46 -0
- data/app/queries/decidim/participatory_processes/filtered_participatory_process_groups.rb +29 -0
- data/app/queries/decidim/participatory_processes/filtered_participatory_processes.rb +26 -0
- data/app/queries/decidim/participatory_processes/highlighted_participatory_processes.rb +12 -0
- data/app/queries/decidim/participatory_processes/organization_participatory_process_groups.rb +16 -0
- data/app/queries/decidim/participatory_processes/organization_participatory_processes.rb +16 -0
- data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_process_groups.rb +20 -0
- data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_processes.rb +22 -0
- data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb +19 -0
- data/app/queries/decidim/participatory_processes/prioritized_participatory_processes.rb +13 -0
- data/app/queries/decidim/participatory_processes/promoted_participatory_processes.rb +12 -0
- data/app/queries/decidim/participatory_processes/published_participatory_processes.rb +12 -0
- data/app/views/decidim/participatory_process_groups/_participatory_process_group.html.erb +22 -0
- data/app/views/decidim/participatory_process_steps/_participatory_process_step.html.erb +16 -0
- data/app/views/decidim/participatory_processes/_order_by_processes.html.erb +12 -0
- data/app/views/decidim/participatory_processes/_participatory_process.html.erb +28 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/_form.html.erb +38 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +7 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +17 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +19 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +44 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +13 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/show.html.erb +23 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +25 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/edit.html.erb +8 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +63 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/new.html.erb +7 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/show.html.erb +18 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/_form.html.erb +22 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/edit.html.erb +7 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +65 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/new.html.erb +7 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +107 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +19 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +66 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +11 -0
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +11 -0
- data/app/views/decidim/participatory_processes/participatory_process_steps/_timeline.html.erb +7 -0
- data/app/views/decidim/participatory_processes/participatory_process_steps/index.html.erb +14 -0
- data/app/views/decidim/participatory_processes/participatory_process_widgets/show.html.erb +17 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_no_processes_yet.html.erb +3 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process.html.erb +32 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_statistics.html.erb +10 -0
- data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +22 -0
- data/app/views/decidim/participatory_processes/participatory_processes/index.js.erb +6 -0
- data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +92 -0
- data/app/views/layouts/decidim/_process_header.html.erb +65 -0
- data/app/views/layouts/decidim/_process_header_steps.html.erb +27 -0
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +64 -0
- data/app/views/layouts/decidim/admin/participatory_process_groups.html.erb +14 -0
- data/app/views/layouts/decidim/admin/participatory_processes.html.erb +14 -0
- data/app/views/layouts/decidim/participatory_process.html.erb +30 -0
- data/config/locales/ca.yml +281 -0
- data/config/locales/en.yml +281 -0
- data/config/locales/es.yml +281 -0
- data/config/locales/eu.yml +280 -0
- data/config/locales/fi.yml +280 -0
- data/config/locales/fr.yml +280 -0
- data/config/locales/it.yml +280 -0
- data/config/locales/nl.yml +280 -0
- data/config/locales/pl.yml +281 -0
- data/config/locales/uk.yml +282 -0
- data/db/migrate/20161005130108_add_participatory_processes.rb +19 -0
- data/db/migrate/20161010102356_translate_processes.rb +17 -0
- data/db/migrate/20161011125616_add_hero_image_to_processes.rb +7 -0
- data/db/migrate/20161011141033_add_banner_image_to_processes.rb +7 -0
- data/db/migrate/20161013134732_add_promoted_flag_to_processes.rb +7 -0
- data/db/migrate/20161017085822_add_participatory_process_steps.rb +18 -0
- data/db/migrate/20161019072016_add_active_flag_to_step.rb +13 -0
- data/db/migrate/20161020080756_add_position_to_steps.rb +9 -0
- data/db/migrate/20161025125300_add_published_at_to_processes.rb +7 -0
- data/db/migrate/20161107152228_remove_not_null_on_step_position.rb +7 -0
- data/db/migrate/20161110092735_add_index_for_process_slug_organization.rb +10 -0
- data/db/migrate/20161116115156_create_attachments.rb +18 -0
- data/db/migrate/20170116135237_loosen_step_requirements.rb +8 -0
- data/db/migrate/20170123134023_make_attachments_polymorphic.rb +20 -0
- data/db/migrate/20170125135937_rename_attachable_to_attached_to.rb +13 -0
- data/db/migrate/20170126151123_add_extra_info_to_processes.rb +10 -0
- data/db/migrate/20170206083118_rename_extra_info_on_processes.rb +14 -0
- data/db/migrate/20170220110740_remove_steps_short_description.rb +23 -0
- data/db/migrate/20170221094835_add_scopes_to_processes.rb +8 -0
- data/db/migrate/20170228142440_add_participatory_process_groups.rb +17 -0
- data/db/migrate/20170404132616_change_steps_end_and_start_date_to_date.rb +8 -0
- data/db/migrate/20170720120135_make_features_polymorphic.rb +27 -0
- data/db/migrate/20170725085104_add_show_statistics_to_participatory_processes.rb +7 -0
- data/db/migrate/20170804125402_attachment_description_nullable.rb +7 -0
- data/db/migrate/20170808080905_add_announcement_to_participatory_processes.rb +7 -0
- data/db/migrate/20170809084005_add_scopes_enabled_to_participatory_processes.rb +7 -0
- data/db/migrate/20170830081725_add_start_date_to_processes.rb +8 -0
- data/db/seeds/Exampledocument.pdf +0 -0
- data/db/seeds/city.jpeg +0 -0
- data/db/seeds/city2.jpeg +0 -0
- data/db/seeds/homepage_image.jpg +0 -0
- data/lib/decidim/participatory_processes.rb +12 -0
- data/lib/decidim/participatory_processes/admin.rb +10 -0
- data/lib/decidim/participatory_processes/admin_engine.rb +98 -0
- data/lib/decidim/participatory_processes/engine.rb +55 -0
- data/lib/decidim/participatory_processes/participatory_space.rb +118 -0
- data/lib/decidim/participatory_processes/test/factories.rb +97 -0
- metadata +266 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory process publications.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessPublicationsController < Decidim::Admin::ApplicationController
|
9
|
+
include Concerns::ParticipatoryProcessAdmin
|
10
|
+
|
11
|
+
def create
|
12
|
+
authorize! :publish, current_participatory_process
|
13
|
+
|
14
|
+
PublishParticipatoryProcess.call(current_participatory_process) do
|
15
|
+
on(:ok) do
|
16
|
+
flash[:notice] = I18n.t("participatory_process_publications.create.success", scope: "decidim.admin")
|
17
|
+
end
|
18
|
+
|
19
|
+
on(:invalid) do
|
20
|
+
flash.now[:alert] = I18n.t("participatory_process_publications.create.error", scope: "decidim.admin")
|
21
|
+
end
|
22
|
+
|
23
|
+
redirect_back(fallback_location: participatory_processes_path)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def destroy
|
28
|
+
authorize! :publish, current_participatory_process
|
29
|
+
|
30
|
+
UnpublishParticipatoryProcess.call(current_participatory_process) do
|
31
|
+
on(:ok) do
|
32
|
+
flash[:notice] = I18n.t("participatory_process_publications.destroy.success", scope: "decidim.admin")
|
33
|
+
end
|
34
|
+
|
35
|
+
on(:invalid) do
|
36
|
+
flash.now[:alert] = I18n.t("participatory_process_publications.destroy.error", scope: "decidim.admin")
|
37
|
+
end
|
38
|
+
|
39
|
+
redirect_back(fallback_location: participatory_processes_path)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory process step activations.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessStepActivationsController < Decidim::Admin::ApplicationController
|
9
|
+
include Concerns::ParticipatoryProcessAdmin
|
10
|
+
|
11
|
+
def create
|
12
|
+
authorize! :activate, process_step
|
13
|
+
|
14
|
+
ActivateParticipatoryProcessStep.call(process_step) do
|
15
|
+
on(:ok) do
|
16
|
+
flash[:notice] = I18n.t("participatory_process_step_activations.create.success", scope: "decidim.admin")
|
17
|
+
end
|
18
|
+
|
19
|
+
on(:invalid) do
|
20
|
+
flash.now[:alert] = I18n.t("participatory_process_step_activations.create.error", scope: "decidim.admin")
|
21
|
+
end
|
22
|
+
|
23
|
+
redirect_to participatory_process_steps_path(current_participatory_process)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def process_step
|
30
|
+
collection.find(params[:step_id])
|
31
|
+
end
|
32
|
+
|
33
|
+
def collection
|
34
|
+
current_participatory_process.steps
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory process step ordering.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessStepOrderingController < Decidim::Admin::ApplicationController
|
9
|
+
include Concerns::ParticipatoryProcessAdmin
|
10
|
+
|
11
|
+
def create
|
12
|
+
authorize! :reorder, Decidim::ParticipatoryProcessStep
|
13
|
+
ReorderParticipatoryProcessSteps.call(collection, params[:items_ids]) do
|
14
|
+
on(:invalid) do
|
15
|
+
flash.now[:alert] = I18n.t("participatory_process_steps.ordering.error", scope: "decidim.admin")
|
16
|
+
redirect_to participatory_process_path(current_participatory_process)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def collection
|
24
|
+
current_participatory_process.steps
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory process steps.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessStepsController < Decidim::Admin::ApplicationController
|
9
|
+
include Concerns::ParticipatoryProcessAdmin
|
10
|
+
|
11
|
+
def index
|
12
|
+
authorize! :read, Decidim::ParticipatoryProcessStep
|
13
|
+
end
|
14
|
+
|
15
|
+
def new
|
16
|
+
authorize! :create, Decidim::ParticipatoryProcessStep
|
17
|
+
@form = form(ParticipatoryProcessStepForm).instance
|
18
|
+
end
|
19
|
+
|
20
|
+
def create
|
21
|
+
authorize! :create, Decidim::ParticipatoryProcessStep
|
22
|
+
@form = form(ParticipatoryProcessStepForm).from_params(params)
|
23
|
+
|
24
|
+
CreateParticipatoryProcessStep.call(@form, current_participatory_process) do
|
25
|
+
on(:ok) do
|
26
|
+
flash[:notice] = I18n.t("participatory_process_steps.create.success", scope: "decidim.admin")
|
27
|
+
redirect_to participatory_process_steps_path(current_participatory_process)
|
28
|
+
end
|
29
|
+
|
30
|
+
on(:invalid) do
|
31
|
+
flash.now[:alert] = I18n.t("participatory_process_steps.create.error", scope: "decidim.admin")
|
32
|
+
render :new
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def edit
|
38
|
+
@participatory_process_step = collection.find(params[:id])
|
39
|
+
authorize! :update, @participatory_process_step
|
40
|
+
@form = form(ParticipatoryProcessStepForm).from_model(@participatory_process_step)
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@participatory_process_step = collection.find(params[:id])
|
45
|
+
authorize! :update, @participatory_process_step
|
46
|
+
@form = form(ParticipatoryProcessStepForm).from_params(params)
|
47
|
+
|
48
|
+
UpdateParticipatoryProcessStep.call(@participatory_process_step, @form) do
|
49
|
+
on(:ok) do
|
50
|
+
flash[:notice] = I18n.t("participatory_process_steps.update.success", scope: "decidim.admin")
|
51
|
+
redirect_to participatory_process_steps_path(current_participatory_process)
|
52
|
+
end
|
53
|
+
|
54
|
+
on(:invalid) do
|
55
|
+
flash.now[:alert] = I18n.t("participatory_process_steps.update.error", scope: "decidim.admin")
|
56
|
+
render :edit
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def show
|
62
|
+
@participatory_process_step = collection.find(params[:id])
|
63
|
+
authorize! :read, @participatory_process_step
|
64
|
+
end
|
65
|
+
|
66
|
+
def destroy
|
67
|
+
@participatory_process_step = collection.find(params[:id])
|
68
|
+
authorize! :destroy, @participatory_process_step
|
69
|
+
|
70
|
+
DestroyParticipatoryProcessStep.call(@participatory_process_step) do
|
71
|
+
on(:ok) do
|
72
|
+
flash[:notice] = I18n.t("participatory_process_steps.destroy.success", scope: "decidim.admin")
|
73
|
+
redirect_to participatory_process_steps_path(current_participatory_process)
|
74
|
+
end
|
75
|
+
|
76
|
+
on(:invalid) do |reason|
|
77
|
+
flash[:alert] = I18n.t("participatory_process_steps.destroy.error.#{reason}", scope: "decidim.admin")
|
78
|
+
redirect_to participatory_process_steps_path(current_participatory_process)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def collection
|
86
|
+
@collection ||= current_participatory_process.steps
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory process user roles.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessUserRolesController < Decidim::Admin::ApplicationController
|
9
|
+
include Concerns::ParticipatoryProcessAdmin
|
10
|
+
|
11
|
+
def index
|
12
|
+
authorize! :read, Decidim::ParticipatoryProcessUserRole
|
13
|
+
@participatory_process_user_roles = collection
|
14
|
+
end
|
15
|
+
|
16
|
+
def new
|
17
|
+
authorize! :create, Decidim::ParticipatoryProcessUserRole
|
18
|
+
@form = form(ParticipatoryProcessUserRoleForm).instance
|
19
|
+
end
|
20
|
+
|
21
|
+
def create
|
22
|
+
authorize! :create, Decidim::ParticipatoryProcessUserRole
|
23
|
+
@form = form(ParticipatoryProcessUserRoleForm).from_params(params)
|
24
|
+
|
25
|
+
CreateParticipatoryProcessAdmin.call(@form, current_user, current_participatory_process) do
|
26
|
+
on(:ok) do
|
27
|
+
flash[:notice] = I18n.t("participatory_process_user_roles.create.success", scope: "decidim.admin")
|
28
|
+
end
|
29
|
+
|
30
|
+
on(:invalid) do
|
31
|
+
flash[:alert] = I18n.t("participatory_process_user_roles.create.error", scope: "decidim.admin")
|
32
|
+
end
|
33
|
+
redirect_to participatory_process_user_roles_path(current_participatory_process)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def edit
|
38
|
+
@user_role = collection.find(params[:id])
|
39
|
+
authorize! :update, @user_role
|
40
|
+
@form = form(ParticipatoryProcessUserRoleForm).from_model(@user_role.user)
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@user_role = collection.find(params[:id])
|
45
|
+
authorize! :update, @user_role
|
46
|
+
@form = form(ParticipatoryProcessUserRoleForm).from_params(params)
|
47
|
+
|
48
|
+
UpdateParticipatoryProcessAdmin.call(@form, @user_role) do
|
49
|
+
on(:ok) do
|
50
|
+
flash[:notice] = I18n.t("participatory_process_user_roles.update.success", scope: "decidim.admin")
|
51
|
+
redirect_to participatory_process_user_roles_path(current_participatory_process)
|
52
|
+
end
|
53
|
+
|
54
|
+
on(:invalid) do
|
55
|
+
flash.now[:alert] = I18n.t("participatory_process_user_roles.update.error", scope: "decidim.admin")
|
56
|
+
render :edit
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def destroy
|
62
|
+
@participatory_process_user_role = collection.find(params[:id])
|
63
|
+
authorize! :destroy, @participatory_process_user_role
|
64
|
+
@participatory_process_user_role.destroy!
|
65
|
+
|
66
|
+
flash[:notice] = I18n.t("participatory_process_user_roles.destroy.success", scope: "decidim.admin")
|
67
|
+
|
68
|
+
redirect_to participatory_process_user_roles_path(@participatory_process_user_role.participatory_process)
|
69
|
+
end
|
70
|
+
|
71
|
+
def resend_invitation
|
72
|
+
@user_role = collection.find(params[:id])
|
73
|
+
authorize! :invite, @user_role
|
74
|
+
|
75
|
+
InviteUserAgain.call(@user_role.user, "invite_admin") do
|
76
|
+
on(:ok) do
|
77
|
+
flash[:notice] = I18n.t("users.resend_invitation.success", scope: "decidim.admin")
|
78
|
+
end
|
79
|
+
|
80
|
+
on(:invalid) do
|
81
|
+
flash[:alert] = I18n.t("users.resend_invitation.error", scope: "decidim.admin")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
redirect_to participatory_process_user_roles_path(current_participatory_process)
|
86
|
+
end
|
87
|
+
|
88
|
+
private
|
89
|
+
|
90
|
+
def collection
|
91
|
+
@collection ||= Decidim::ParticipatoryProcessUserRole
|
92
|
+
.includes(:user)
|
93
|
+
.where(participatory_process: current_participatory_process)
|
94
|
+
.order(:role, "decidim_users.name")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory processes.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessesController < Decidim::Admin::ApplicationController
|
9
|
+
helper ProcessGroupsForSelectHelper
|
10
|
+
|
11
|
+
helper_method :current_participatory_process
|
12
|
+
|
13
|
+
layout "decidim/admin/participatory_processes"
|
14
|
+
|
15
|
+
def index
|
16
|
+
authorize! :index, Decidim::ParticipatoryProcess
|
17
|
+
@participatory_processes = collection
|
18
|
+
end
|
19
|
+
|
20
|
+
def new
|
21
|
+
authorize! :new, Decidim::ParticipatoryProcess
|
22
|
+
@form = form(ParticipatoryProcessForm).instance
|
23
|
+
end
|
24
|
+
|
25
|
+
def create
|
26
|
+
authorize! :new, Decidim::ParticipatoryProcess
|
27
|
+
@form = form(ParticipatoryProcessForm).from_params(params)
|
28
|
+
|
29
|
+
CreateParticipatoryProcess.call(@form) do
|
30
|
+
on(:ok) do |participatory_process|
|
31
|
+
flash[:notice] = I18n.t("participatory_processes.create.success", scope: "decidim.admin")
|
32
|
+
redirect_to participatory_process_steps_path(participatory_process)
|
33
|
+
end
|
34
|
+
|
35
|
+
on(:invalid) do
|
36
|
+
flash.now[:alert] = I18n.t("participatory_processes.create.error", scope: "decidim.admin")
|
37
|
+
render :new
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def edit
|
43
|
+
authorize! :update, current_participatory_process
|
44
|
+
@form = form(ParticipatoryProcessForm).from_model(current_participatory_process)
|
45
|
+
render layout: "decidim/admin/participatory_process"
|
46
|
+
end
|
47
|
+
|
48
|
+
def update
|
49
|
+
authorize! :update, current_participatory_process
|
50
|
+
@form = form(ParticipatoryProcessForm).from_params(participatory_process_params)
|
51
|
+
|
52
|
+
UpdateParticipatoryProcess.call(current_participatory_process, @form) do
|
53
|
+
on(:ok) do |participatory_process|
|
54
|
+
flash[:notice] = I18n.t("participatory_processes.update.success", scope: "decidim.admin")
|
55
|
+
redirect_to edit_participatory_process_path(participatory_process)
|
56
|
+
end
|
57
|
+
|
58
|
+
on(:invalid) do
|
59
|
+
flash.now[:alert] = I18n.t("participatory_processes.update.error", scope: "decidim.admin")
|
60
|
+
render :edit, layout: "decidim/admin/participatory_process"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def destroy
|
66
|
+
authorize! :destroy, current_participatory_process
|
67
|
+
current_participatory_process.destroy!
|
68
|
+
|
69
|
+
flash[:notice] = I18n.t("participatory_processes.destroy.success", scope: "decidim.admin")
|
70
|
+
|
71
|
+
redirect_to participatory_processes_path
|
72
|
+
end
|
73
|
+
|
74
|
+
def copy
|
75
|
+
authorize! :create, Decidim::ParticipatoryProcess
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def current_participatory_process
|
81
|
+
@current_participatory_process ||= collection.find(params[:id]) if params[:id]
|
82
|
+
end
|
83
|
+
|
84
|
+
def collection
|
85
|
+
@collection ||= Decidim::ParticipatoryProcessesWithUserRole.for(current_user)
|
86
|
+
end
|
87
|
+
|
88
|
+
def ability_context
|
89
|
+
super.merge(current_participatory_process: current_participatory_process)
|
90
|
+
end
|
91
|
+
|
92
|
+
def participatory_process_params
|
93
|
+
{
|
94
|
+
id: params[:id],
|
95
|
+
hero_image: current_participatory_process.hero_image,
|
96
|
+
banner_image: current_participatory_process.banner_image
|
97
|
+
}.merge(params[:participatory_process].to_unsafe_h)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
class ParticipatoryProcessGroupsController < Decidim::ApplicationController
|
6
|
+
helper_method :participatory_processes, :group, :collection
|
7
|
+
|
8
|
+
before_action :set_group
|
9
|
+
|
10
|
+
def show
|
11
|
+
authorize! :read, ParticipatoryProcessGroup
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def participatory_processes
|
17
|
+
@participatory_processes ||= group.participatory_processes.published
|
18
|
+
end
|
19
|
+
alias collection participatory_processes
|
20
|
+
|
21
|
+
def set_group
|
22
|
+
@group = Decidim::ParticipatoryProcessGroup.find(params[:id])
|
23
|
+
end
|
24
|
+
|
25
|
+
attr_reader :group
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/app/controllers/decidim/participatory_processes/participatory_process_steps_controller.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
# A controller that holds the logic to show ParticipatoryProcessSteps in a
|
6
|
+
# public layout.
|
7
|
+
class ParticipatoryProcessStepsController < Decidim::ApplicationController
|
8
|
+
helper_method :participatory_process, :current_participatory_process
|
9
|
+
layout "layouts/decidim/participatory_process", only: [:index]
|
10
|
+
include NeedsParticipatoryProcess
|
11
|
+
|
12
|
+
helper ParticipatoryProcessHelper
|
13
|
+
helper Decidim::IconHelper
|
14
|
+
|
15
|
+
def index
|
16
|
+
authorize! :read, ParticipatoryProcess
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|