decidim-participatory_processes 0.23.3 → 0.24.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/participatory_process_groups/content_block_cell.rb +17 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +22 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters_small_view.erb +18 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/participatory_space_filters.erb +6 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +7 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/title_filter_order.erb +8 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +65 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/html/show.erb +3 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/html_cell.rb +13 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/metadata/show.erb +28 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/metadata_cell.rb +15 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/stats/show.erb +13 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/stats_cell.rb +17 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/title/show.erb +43 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/title_cell.rb +56 -0
- data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +78 -0
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +2 -16
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +32 -28
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +33 -10
- data/app/cells/decidim/participatory_processes/filtered_participatory_processes/show.erb +3 -0
- data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +56 -0
- data/app/cells/decidim/participatory_processes/process_cell.rb +6 -1
- data/app/cells/decidim/participatory_processes/process_filters_cell.rb +1 -1
- data/app/cells/decidim/participatory_processes/process_group_cell.rb +6 -1
- data/app/cells/decidim/participatory_processes/process_group_m_cell.rb +3 -1
- data/app/cells/decidim/participatory_processes/process_group_s/image.erb +1 -0
- data/app/cells/decidim/participatory_processes/process_group_s/show.erb +8 -0
- data/app/cells/decidim/participatory_processes/process_group_s_cell.rb +23 -0
- data/app/cells/decidim/participatory_processes/process_s/image.erb +1 -0
- data/app/cells/decidim/participatory_processes/process_s/show.erb +14 -0
- data/app/cells/decidim/participatory_processes/process_s_cell.rb +35 -0
- data/app/cells/decidim/participatory_processes/statistic/show.erb +3 -3
- data/app/cells/decidim/participatory_processes/statistics/show.erb +1 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +1 -0
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +7 -75
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +11 -2
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +1 -0
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +11 -2
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +1 -0
- data/app/controllers/decidim/participatory_processes/admin/imports_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/admin/moderations/reports_controller.rb +18 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb +48 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +53 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -1
- data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +1 -2
- data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +14 -1
- data/app/events/decidim/participatory_process_role_assigned_event.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +1 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_group_form.rb +34 -2
- data/app/forms/decidim/participatory_processes/admin/participatory_process_step_form.rb +1 -1
- data/app/helpers/decidim/participatory_processes/admin/participatory_processes_menu_helper.rb +23 -0
- data/app/helpers/decidim/participatory_processes/admin/process_groups_for_select_helper.rb +1 -1
- data/app/helpers/decidim/participatory_processes/application_helper.rb +0 -12
- data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +35 -0
- data/app/models/decidim/participatory_process_group.rb +9 -1
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +10 -2
- data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +67 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +3 -3
- data/app/queries/decidim/participatory_processes/group_participatory_processes.rb +16 -0
- data/app/queries/decidim/participatory_processes/group_published_participatory_processes.rb +21 -0
- data/app/queries/decidim/participatory_processes/organization_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb +12 -0
- data/app/queries/decidim/participatory_processes/stats_followers_count.rb +18 -4
- data/app/queries/decidim/participatory_processes/stats_participants_count.rb +18 -4
- data/app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb +6 -2
- data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +1 -1
- data/app/serializers/decidim/participatory_processes/participatory_process_serializer.rb +1 -1
- data/app/services/decidim/participatory_processes/participatory_process_search.rb +2 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +68 -13
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +7 -14
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +12 -3
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +2 -8
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/show.html.erb +10 -2
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/edit.html.erb +1 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +6 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/edit.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +8 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/new.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +4 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +14 -3
- data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +2 -0
- data/app/views/decidim/participatory_processes/admin/shared/_secondary_nav.html.erb +2 -16
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +18 -8
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb +12 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_participatory_process_group.html.erb +4 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +31 -0
- data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +4 -2
- data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +4 -4
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +8 -1
- data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +17 -0
- data/config/locales/ar.yml +0 -10
- data/config/locales/ca.yml +6 -9
- data/config/locales/cs.yml +54 -7
- data/config/locales/de.yml +52 -5
- data/config/locales/el.yml +0 -6
- data/config/locales/en.yml +52 -5
- data/config/locales/es-MX.yml +0 -9
- data/config/locales/es-PY.yml +0 -9
- data/config/locales/es.yml +0 -9
- data/config/locales/eu.yml +0 -6
- data/config/locales/fi-plain.yml +52 -5
- data/config/locales/fi.yml +52 -5
- data/config/locales/fr-CA.yml +52 -5
- data/config/locales/fr.yml +52 -5
- data/config/locales/gl.yml +0 -6
- data/config/locales/hu.yml +0 -6
- data/config/locales/id-ID.yml +0 -5
- data/config/locales/is-IS.yml +0 -3
- data/config/locales/it.yml +5 -6
- data/config/locales/ja.yml +0 -5
- data/config/locales/lv.yml +0 -7
- data/config/locales/nl.yml +47 -5
- data/config/locales/no.yml +0 -6
- data/config/locales/pl.yml +27 -7
- data/config/locales/pt-BR.yml +0 -6
- data/config/locales/pt.yml +0 -6
- data/config/locales/ro-RO.yml +0 -7
- data/config/locales/ru.yml +0 -8
- data/config/locales/sk.yml +0 -8
- data/config/locales/sv.yml +7 -6
- data/config/locales/tr-TR.yml +51 -5
- data/config/locales/uk.yml +0 -8
- data/config/locales/zh-CN.yml +0 -5
- data/db/migrate/20170220110740_remove_steps_short_description.rb +1 -1
- data/db/migrate/20201007215105_add_hashtag_to_participatory_process_groups.rb +7 -0
- data/db/migrate/20201008154315_add_metadata_columns_to_participatory_process_groups.rb +13 -0
- data/db/migrate/20201013105520_rename_name_column_to_title_in_decidim_participatory_process_groups.rb +39 -0
- data/db/migrate/20201030133444_add_promoted_flag_to_decidim_participatory_process_groups.rb +7 -0
- data/db/migrate/20210204154593_add_weight_field_to_participatory_processes.rb +7 -0
- data/lib/decidim/api/participatory_process_group_type.rb +17 -0
- data/{app/types/decidim/participatory_processes → lib/decidim/api}/participatory_process_input_filter.rb +0 -0
- data/{app/types/decidim/participatory_processes → lib/decidim/api}/participatory_process_input_sort.rb +2 -2
- data/lib/decidim/api/participatory_process_step_type.rb +23 -0
- data/lib/decidim/api/participatory_process_type.rb +50 -0
- data/lib/decidim/participatory_processes.rb +2 -6
- data/lib/decidim/participatory_processes/admin_engine.rb +49 -1
- data/lib/decidim/participatory_processes/api.rb +11 -0
- data/lib/decidim/participatory_processes/engine.rb +90 -8
- data/lib/decidim/participatory_processes/participatory_space.rb +47 -24
- data/lib/decidim/participatory_processes/query_extensions.rb +18 -20
- data/lib/decidim/participatory_processes/test/factories.rb +15 -2
- data/lib/decidim/participatory_processes/version.rb +1 -1
- metadata +60 -19
- data/app/functions/decidim/participatory_processes/participatory_process_finder.rb +0 -10
- data/app/functions/decidim/participatory_processes/participatory_process_list.rb +0 -11
- data/app/types/decidim/participatory_processes/participatory_process_group_type.rb +0 -20
- data/app/types/decidim/participatory_processes/participatory_process_step_type.rb +0 -28
- data/app/types/decidim/participatory_processes/participatory_process_type.rb +0 -54
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
# This type represents a ParticipatoryProcess.
|
6
|
+
class ParticipatoryProcessType < Decidim::Api::Types::BaseObject
|
7
|
+
implements Decidim::Core::ParticipatorySpaceInterface
|
8
|
+
implements Decidim::Core::ParticipatorySpaceResourceableInterface
|
9
|
+
implements Decidim::Core::ScopableInterface
|
10
|
+
implements Decidim::Core::AttachableInterface
|
11
|
+
|
12
|
+
description "A participatory process"
|
13
|
+
|
14
|
+
field :id, GraphQL::Types::ID, "The internal ID for this participatory process", null: false
|
15
|
+
field :slug, GraphQL::Types::String, null: false
|
16
|
+
field :hashtag, GraphQL::Types::String, "The hashtag for this participatory process", null: true
|
17
|
+
field :created_at, Decidim::Core::DateTimeType, "The time this page was created", null: false
|
18
|
+
field :updated_at, Decidim::Core::DateTimeType, "The time this page was updated", null: false
|
19
|
+
field :published_at, Decidim::Core::DateTimeType, "The time this page was published", null: false
|
20
|
+
field :subtitle, Decidim::Core::TranslatedFieldType, "The subtitle of this participatory process.", null: true
|
21
|
+
field :description, Decidim::Core::TranslatedFieldType, "The description of this participatory process.", null: true
|
22
|
+
field :short_description, Decidim::Core::TranslatedFieldType, "The short description of this participatory process.", null: true
|
23
|
+
field :start_date, Decidim::Core::DateType, "This participatory process' start date.", null: true
|
24
|
+
field :end_date, Decidim::Core::DateType, "This participatory process' end date.", null: true
|
25
|
+
|
26
|
+
field :banner_image, GraphQL::Types::String, "The banner image for this participatory process", null: true
|
27
|
+
field :hero_image, GraphQL::Types::String, "The hero image for this participatory process", null: true
|
28
|
+
field :promoted, GraphQL::Types::Boolean, "If this participatory process is promoted (therefore in the homepage)", null: true
|
29
|
+
field :developer_group, Decidim::Core::TranslatedFieldType, "The promoter group of this participatory process.", null: true
|
30
|
+
field :meta_scope, Decidim::Core::TranslatedFieldType, "The scope metadata of this participatory process.", null: true
|
31
|
+
field :local_area, Decidim::Core::TranslatedFieldType, "The organization area of this participatory process.", null: true
|
32
|
+
field :target, Decidim::Core::TranslatedFieldType, "Who participates in this participatory process.", null: true
|
33
|
+
field :participatory_scope, Decidim::Core::TranslatedFieldType, "What is decided on this participatory process.", null: true
|
34
|
+
field :participatory_structure, Decidim::Core::TranslatedFieldType, "How it is decided on this participatory process.", null: true
|
35
|
+
field :show_metrics, GraphQL::Types::Boolean, "If this participatory process should show metrics", null: true
|
36
|
+
field :show_statistics, GraphQL::Types::Boolean, "If this participatory process should show statistics", null: true
|
37
|
+
field :scopes_enabled, GraphQL::Types::Boolean, "If this participatory process has scopes enabled", null: true
|
38
|
+
|
39
|
+
field :announcement, Decidim::Core::TranslatedFieldType, "Highlighted announcement for this participatory process.", null: true
|
40
|
+
|
41
|
+
field :reference, GraphQL::Types::String, "Reference prefix for this participatory process", null: true
|
42
|
+
field :steps, [Decidim::ParticipatoryProcesses::ParticipatoryProcessStepType, { null: true }], "All the steps of this process.", null: false
|
43
|
+
field :categories, [Decidim::Core::CategoryType, { null: true }], "Categories for this participatory process", null: false
|
44
|
+
|
45
|
+
field :participatory_process_group, Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupType,
|
46
|
+
null: true,
|
47
|
+
description: "The participatory process group in which this process belong to"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -1,16 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "decidim/participatory_processes/admin"
|
4
|
+
require "decidim/participatory_processes/api"
|
4
5
|
require "decidim/participatory_processes/engine"
|
5
6
|
require "decidim/participatory_processes/admin_engine"
|
6
7
|
require "decidim/participatory_processes/participatory_space"
|
7
8
|
|
8
9
|
module Decidim
|
9
10
|
# Base module for the participatory processes engine.
|
10
|
-
module ParticipatoryProcesses
|
11
|
-
# Public: Stores an instance of ViewHooks
|
12
|
-
def self.view_hooks
|
13
|
-
@view_hooks ||= ViewHooks.new
|
14
|
-
end
|
15
|
-
end
|
11
|
+
module ParticipatoryProcesses; end
|
16
12
|
end
|
@@ -15,7 +15,11 @@ module Decidim
|
|
15
15
|
paths["lib/tasks"] = nil
|
16
16
|
|
17
17
|
routes do
|
18
|
-
resources :participatory_process_groups
|
18
|
+
resources :participatory_process_groups do
|
19
|
+
resource :landing_page, only: [:edit, :update], controller: "participatory_process_group_landing_page" do
|
20
|
+
resources :content_blocks, only: [:edit, :update], controller: "participatory_process_group_landing_page_content_blocks"
|
21
|
+
end
|
22
|
+
end
|
19
23
|
resources :participatory_processes, param: :slug, except: [:show, :destroy] do
|
20
24
|
resource :publish, controller: "participatory_process_publications", only: [:create, :destroy]
|
21
25
|
resources :copies, controller: "participatory_process_copies", only: [:new, :create]
|
@@ -52,6 +56,7 @@ module Decidim
|
|
52
56
|
get :share
|
53
57
|
end
|
54
58
|
resources :exports, only: :create
|
59
|
+
resources :imports, only: [:new, :create]
|
55
60
|
end
|
56
61
|
|
57
62
|
resources :moderations do
|
@@ -60,7 +65,9 @@ module Decidim
|
|
60
65
|
put :hide
|
61
66
|
put :unhide
|
62
67
|
end
|
68
|
+
resources :reports, controller: "moderations/reports", only: [:index, :show]
|
63
69
|
end
|
70
|
+
|
64
71
|
resources :participatory_space_private_users, controller: "participatory_space_private_users" do
|
65
72
|
member do
|
66
73
|
post :resend_invitation, to: "participatory_space_private_users#resend_invitation"
|
@@ -86,6 +93,12 @@ module Decidim
|
|
86
93
|
app.config.assets.precompile += %w(admin/decidim_participatory_processes_manifest.js)
|
87
94
|
end
|
88
95
|
|
96
|
+
initializer "decidim_participatory_processes.action_controller" do |_app|
|
97
|
+
ActiveSupport.on_load :action_controller do
|
98
|
+
helper Decidim::ParticipatoryProcesses::Admin::ParticipatoryProcessesMenuHelper if respond_to?(:helper)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
89
102
|
initializer "decidim_participatory_processes.admin_menu" do
|
90
103
|
Decidim.menu :admin_menu do |menu|
|
91
104
|
menu.item I18n.t("menu.participatory_processes", scope: "decidim.admin"),
|
@@ -97,6 +110,41 @@ module Decidim
|
|
97
110
|
if: allowed_to?(:enter, :space_area, space_name: :processes) || allowed_to?(:enter, :space_area, space_name: :process_groups)
|
98
111
|
end
|
99
112
|
end
|
113
|
+
|
114
|
+
initializer "decidim_participatory_processes.admin_participatory_processes_menu" do
|
115
|
+
Decidim.menu :admin_participatory_processes_menu do |menu|
|
116
|
+
menu.item I18n.t("menu.participatory_processes", scope: "decidim.admin"),
|
117
|
+
decidim_admin_participatory_processes.participatory_processes_path,
|
118
|
+
position: 1,
|
119
|
+
if: allowed_to?(:enter, :space_area, space_name: :processes),
|
120
|
+
active: is_active_link?(decidim_admin_participatory_processes.participatory_processes_path)
|
121
|
+
|
122
|
+
menu.item I18n.t("menu.participatory_process_groups", scope: "decidim.admin"),
|
123
|
+
decidim_admin_participatory_processes.participatory_process_groups_path,
|
124
|
+
position: 2,
|
125
|
+
if: allowed_to?(:enter, :space_area, space_name: :process_groups),
|
126
|
+
active: is_active_link?(decidim_admin_participatory_processes.participatory_process_groups_path)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
initializer "decidim_participatory_processes.admin_process_group_menu" do
|
130
|
+
Decidim.menu :admin_participatory_process_menu do |menu|
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
initializer "decidim_participatory_processes.admin_process_group_menu" do
|
135
|
+
Decidim.menu :admin_participatory_process_group_menu do |menu|
|
136
|
+
menu.item I18n.t("info", scope: "decidim.admin.menu.participatory_process_groups_submenu"),
|
137
|
+
decidim_admin_participatory_processes.edit_participatory_process_group_path(participatory_process_group),
|
138
|
+
position: 1,
|
139
|
+
if: allowed_to?(:update, :process_group, process_group: participatory_process_group),
|
140
|
+
active: is_active_link?(decidim_admin_participatory_processes.edit_participatory_process_group_path(participatory_process_group))
|
141
|
+
menu.item I18n.t("landing_page", scope: "decidim.admin.menu.participatory_process_groups_submenu"),
|
142
|
+
decidim_admin_participatory_processes.edit_participatory_process_group_landing_page_path(participatory_process_group),
|
143
|
+
position: 2,
|
144
|
+
if: allowed_to?(:update, :process_group, process_group: participatory_process_group),
|
145
|
+
active: is_active_link?(decidim_admin_participatory_processes.participatory_process_group_landing_page_path(participatory_process_group))
|
146
|
+
end
|
147
|
+
end
|
100
148
|
end
|
101
149
|
end
|
102
150
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
autoload :ParticipatoryProcessInputFilter, "decidim/api/participatory_process_input_filter"
|
6
|
+
autoload :ParticipatoryProcessInputSort, "decidim/api/participatory_process_input_sort"
|
7
|
+
autoload :ParticipatoryProcessGroupType, "decidim/api/participatory_process_group_type"
|
8
|
+
autoload :ParticipatoryProcessStepType, "decidim/api/participatory_process_step_type"
|
9
|
+
autoload :ParticipatoryProcessType, "decidim/api/participatory_process_type"
|
10
|
+
end
|
11
|
+
end
|
@@ -51,9 +51,7 @@ module Decidim
|
|
51
51
|
end
|
52
52
|
|
53
53
|
initializer "decidim_participatory_processes.query_extensions" do
|
54
|
-
Decidim::Api::QueryType.
|
55
|
-
QueryExtensions.define(self)
|
56
|
-
end
|
54
|
+
Decidim::Api::QueryType.include Decidim::ParticipatoryProcesses::QueryExtensions
|
57
55
|
end
|
58
56
|
|
59
57
|
initializer "decidim_participatory_processes.add_cells_view_paths" do
|
@@ -67,7 +65,7 @@ module Decidim
|
|
67
65
|
decidim_participatory_processes.participatory_processes_path,
|
68
66
|
position: 2,
|
69
67
|
if: Decidim::ParticipatoryProcess.where(organization: current_organization).published.any?,
|
70
|
-
active: %r{
|
68
|
+
active: %r{^/process(es|_groups)}
|
71
69
|
end
|
72
70
|
end
|
73
71
|
|
@@ -81,15 +79,99 @@ module Decidim
|
|
81
79
|
settings.attribute :max_results, type: :integer, default: 4
|
82
80
|
end
|
83
81
|
end
|
82
|
+
|
83
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :title) do |content_block|
|
84
|
+
content_block.cell = "decidim/participatory_process_groups/content_blocks/title"
|
85
|
+
content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.title.name"
|
86
|
+
content_block.default!
|
87
|
+
end
|
88
|
+
|
89
|
+
(1..3).each do |index|
|
90
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :"html_#{index}") do |content_block|
|
91
|
+
content_block.cell = "decidim/participatory_process_groups/content_blocks/html"
|
92
|
+
content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.html_#{index}.name"
|
93
|
+
content_block.settings_form_cell = "decidim/content_blocks/html_settings_form"
|
94
|
+
|
95
|
+
content_block.settings do |settings|
|
96
|
+
settings.attribute :html_content, type: :text, translated: true
|
97
|
+
end
|
98
|
+
content_block.default!
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :metadata) do |content_block|
|
103
|
+
content_block.cell = "decidim/participatory_process_groups/content_blocks/metadata"
|
104
|
+
content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.metadata.name"
|
105
|
+
content_block.default!
|
106
|
+
end
|
107
|
+
|
108
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :cta) do |content_block|
|
109
|
+
content_block.cell = "decidim/content_blocks/cta"
|
110
|
+
content_block.settings_form_cell = "decidim/content_blocks/cta_settings_form"
|
111
|
+
content_block.public_name_key = "decidim.content_blocks.cta.name"
|
112
|
+
|
113
|
+
content_block.images = [
|
114
|
+
{
|
115
|
+
name: :background_image,
|
116
|
+
uploader: "Decidim::HomepageImageUploader"
|
117
|
+
}
|
118
|
+
]
|
119
|
+
|
120
|
+
content_block.settings do |settings|
|
121
|
+
settings.attribute :button_text, type: :text, translated: true
|
122
|
+
settings.attribute :button_url, type: :string, required: true
|
123
|
+
settings.attribute :description, type: :string, translated: true, editor: true
|
124
|
+
end
|
125
|
+
|
126
|
+
content_block.default!
|
127
|
+
end
|
128
|
+
|
129
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :highlighted_proposals) do |content_block|
|
130
|
+
content_block.cell = "decidim/proposals/content_blocks/highlighted_proposals"
|
131
|
+
content_block.settings_form_cell = "decidim/content_blocks/highlighted_elements_settings_form"
|
132
|
+
content_block.public_name_key = "decidim.proposals.content_blocks.highlighted_proposals.proposals"
|
133
|
+
|
134
|
+
content_block.settings do |settings|
|
135
|
+
settings.attribute :order, type: :enum, default: "random", choices: %w(random recent)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :highlighted_results) do |content_block|
|
140
|
+
content_block.cell = "decidim/accountability/content_blocks/highlighted_results"
|
141
|
+
content_block.settings_form_cell = "decidim/content_blocks/highlighted_elements_settings_form"
|
142
|
+
content_block.public_name_key = "decidim.accountability.content_blocks.highlighted_results.results"
|
143
|
+
|
144
|
+
content_block.settings do |settings|
|
145
|
+
settings.attribute :order, type: :enum, default: "random", choices: %w(random recent)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :highlighted_meetings) do |content_block|
|
150
|
+
content_block.cell = "decidim/meetings/content_blocks/highlighted_meetings"
|
151
|
+
content_block.public_name_key = "decidim.meetings.content_blocks.upcoming_events.name"
|
152
|
+
content_block.default!
|
153
|
+
end
|
154
|
+
|
155
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :stats) do |content_block|
|
156
|
+
content_block.cell = "decidim/participatory_process_groups/content_blocks/stats"
|
157
|
+
content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.stats.name"
|
158
|
+
content_block.default!
|
159
|
+
end
|
160
|
+
|
161
|
+
Decidim.content_blocks.register(:participatory_process_group_homepage, :participatory_processes) do |content_block|
|
162
|
+
content_block.cell = "decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes"
|
163
|
+
content_block.public_name_key = "decidim.participatory_process_groups.content_blocks.participatory_processes.name"
|
164
|
+
content_block.default!
|
165
|
+
end
|
84
166
|
end
|
85
167
|
|
86
168
|
initializer "decidim_participatory_processes.stats" do
|
87
|
-
Decidim.stats.register :followers_count, priority: StatsRegistry::HIGH_PRIORITY do |
|
88
|
-
Decidim::ParticipatoryProcesses::StatsFollowersCount.for(
|
169
|
+
Decidim.stats.register :followers_count, priority: StatsRegistry::HIGH_PRIORITY do |participatory_space|
|
170
|
+
Decidim::ParticipatoryProcesses::StatsFollowersCount.for(participatory_space)
|
89
171
|
end
|
90
172
|
|
91
|
-
Decidim.stats.register :participants_count, priority: StatsRegistry::HIGH_PRIORITY do |
|
92
|
-
Decidim::ParticipatoryProcesses::StatsParticipantsCount.for(
|
173
|
+
Decidim.stats.register :participants_count, priority: StatsRegistry::HIGH_PRIORITY do |participatory_space|
|
174
|
+
Decidim::ParticipatoryProcesses::StatsParticipantsCount.for(participatory_space)
|
93
175
|
end
|
94
176
|
end
|
95
177
|
|
@@ -67,26 +67,49 @@ Decidim.register_participatory_space(:participatory_processes) do |participatory
|
|
67
67
|
process_groups = []
|
68
68
|
2.times do
|
69
69
|
process_groups << Decidim::ParticipatoryProcessGroup.create!(
|
70
|
-
|
70
|
+
title: Decidim::Faker::Localized.sentence(word_count: 3),
|
71
71
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
72
|
-
Decidim::Faker::Localized.paragraph(3)
|
72
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
73
73
|
end,
|
74
|
+
hashtag: Faker::Internet.slug,
|
75
|
+
group_url: Faker::Internet.url,
|
74
76
|
organization: organization,
|
75
|
-
hero_image: File.new(File.join(seeds_root, "city.jpeg")) # Keep after organization
|
77
|
+
hero_image: File.new(File.join(seeds_root, "city.jpeg")), # Keep after organization
|
78
|
+
developer_group: Decidim::Faker::Localized.sentence(word_count: 1),
|
79
|
+
local_area: Decidim::Faker::Localized.sentence(word_count: 2),
|
80
|
+
meta_scope: Decidim::Faker::Localized.word,
|
81
|
+
target: Decidim::Faker::Localized.sentence(word_count: 3),
|
82
|
+
participatory_scope: Decidim::Faker::Localized.sentence(word_count: 1),
|
83
|
+
participatory_structure: Decidim::Faker::Localized.sentence(word_count: 2)
|
76
84
|
)
|
77
85
|
end
|
78
86
|
|
87
|
+
landing_page_content_blocks = [:title, :metadata, :cta, :highlighted_proposals, :highlighted_results, :highlighted_meetings, :stats, :participatory_processes]
|
88
|
+
|
89
|
+
process_groups.each do |process_group|
|
90
|
+
landing_page_content_blocks.each.with_index(1) do |manifest_name, index|
|
91
|
+
Decidim::ContentBlock.create(
|
92
|
+
organization: organization,
|
93
|
+
scope_name: :participatory_process_group_homepage,
|
94
|
+
manifest_name: manifest_name,
|
95
|
+
weight: index,
|
96
|
+
scoped_resource_id: process_group.id,
|
97
|
+
published_at: Time.current
|
98
|
+
)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
79
102
|
2.times do |n|
|
80
103
|
params = {
|
81
|
-
title: Decidim::Faker::Localized.sentence(5),
|
82
|
-
slug: Faker::Internet.unique.slug(nil, "-"),
|
83
|
-
subtitle: Decidim::Faker::Localized.sentence(2),
|
104
|
+
title: Decidim::Faker::Localized.sentence(word_count: 5),
|
105
|
+
slug: Decidim::Faker::Internet.unique.slug(words: nil, glue: "-"),
|
106
|
+
subtitle: Decidim::Faker::Localized.sentence(word_count: 2),
|
84
107
|
hashtag: "##{Faker::Lorem.word}",
|
85
108
|
short_description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
86
|
-
Decidim::Faker::Localized.sentence(3)
|
109
|
+
Decidim::Faker::Localized.sentence(word_count: 3)
|
87
110
|
end,
|
88
111
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
89
|
-
Decidim::Faker::Localized.paragraph(3)
|
112
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
90
113
|
end,
|
91
114
|
organization: organization,
|
92
115
|
hero_image: File.new(File.join(seeds_root, "city.jpeg")), # Keep after organization
|
@@ -94,11 +117,11 @@ Decidim.register_participatory_space(:participatory_processes) do |participatory
|
|
94
117
|
promoted: true,
|
95
118
|
published_at: 2.weeks.ago,
|
96
119
|
meta_scope: Decidim::Faker::Localized.word,
|
97
|
-
developer_group: Decidim::Faker::Localized.sentence(1),
|
98
|
-
local_area: Decidim::Faker::Localized.sentence(2),
|
99
|
-
target: Decidim::Faker::Localized.sentence(3),
|
100
|
-
participatory_scope: Decidim::Faker::Localized.sentence(1),
|
101
|
-
participatory_structure: Decidim::Faker::Localized.sentence(2),
|
120
|
+
developer_group: Decidim::Faker::Localized.sentence(word_count: 1),
|
121
|
+
local_area: Decidim::Faker::Localized.sentence(word_count: 2),
|
122
|
+
target: Decidim::Faker::Localized.sentence(word_count: 3),
|
123
|
+
participatory_scope: Decidim::Faker::Localized.sentence(word_count: 1),
|
124
|
+
participatory_structure: Decidim::Faker::Localized.sentence(word_count: 2),
|
102
125
|
start_date: Date.current,
|
103
126
|
end_date: 2.months.from_now,
|
104
127
|
participatory_process_group: process_groups.sample,
|
@@ -119,9 +142,9 @@ Decidim.register_participatory_space(:participatory_processes) do |participatory
|
|
119
142
|
participatory_process: process,
|
120
143
|
active: true
|
121
144
|
).update!(
|
122
|
-
title: Decidim::Faker::Localized.sentence(1, false, 2),
|
145
|
+
title: Decidim::Faker::Localized.sentence(word_count: 1, supplemental: false, random_words_to_add: 2),
|
123
146
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
124
|
-
Decidim::Faker::Localized.paragraph(3)
|
147
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
125
148
|
end,
|
126
149
|
start_date: 1.month.ago,
|
127
150
|
end_date: 2.months.from_now
|
@@ -152,37 +175,37 @@ Decidim.register_participatory_space(:participatory_processes) do |participatory
|
|
152
175
|
|
153
176
|
attachment_collection = Decidim::AttachmentCollection.create!(
|
154
177
|
name: Decidim::Faker::Localized.word,
|
155
|
-
description: Decidim::Faker::Localized.sentence(5),
|
178
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
156
179
|
collection_for: process
|
157
180
|
)
|
158
181
|
|
159
182
|
Decidim::Attachment.create!(
|
160
|
-
title: Decidim::Faker::Localized.sentence(2),
|
161
|
-
description: Decidim::Faker::Localized.sentence(5),
|
183
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
184
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
162
185
|
attachment_collection: attachment_collection,
|
163
186
|
attached_to: process,
|
164
187
|
file: File.new(File.join(seeds_root, "Exampledocument.pdf")) # Keep after attached_to
|
165
188
|
)
|
166
189
|
|
167
190
|
Decidim::Attachment.create!(
|
168
|
-
title: Decidim::Faker::Localized.sentence(2),
|
169
|
-
description: Decidim::Faker::Localized.sentence(5),
|
191
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
192
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
170
193
|
attached_to: process,
|
171
194
|
file: File.new(File.join(seeds_root, "city.jpeg")) # Keep after attached_to
|
172
195
|
)
|
173
196
|
|
174
197
|
Decidim::Attachment.create!(
|
175
|
-
title: Decidim::Faker::Localized.sentence(2),
|
176
|
-
description: Decidim::Faker::Localized.sentence(5),
|
198
|
+
title: Decidim::Faker::Localized.sentence(word_count: 2),
|
199
|
+
description: Decidim::Faker::Localized.sentence(word_count: 5),
|
177
200
|
attached_to: process,
|
178
201
|
file: File.new(File.join(seeds_root, "Exampledocument.pdf")) # Keep after attached_to
|
179
202
|
)
|
180
203
|
|
181
204
|
2.times do
|
182
205
|
Decidim::Category.create!(
|
183
|
-
name: Decidim::Faker::Localized.sentence(5),
|
206
|
+
name: Decidim::Faker::Localized.sentence(word_count: 5),
|
184
207
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
185
|
-
Decidim::Faker::Localized.paragraph(3)
|
208
|
+
Decidim::Faker::Localized.paragraph(sentence_count: 3)
|
186
209
|
end,
|
187
210
|
participatory_space: process
|
188
211
|
)
|
@@ -10,30 +10,28 @@ module Decidim
|
|
10
10
|
# type - A GraphQL::BaseType to extend.
|
11
11
|
#
|
12
12
|
# Returns nothing.
|
13
|
-
def self.
|
14
|
-
type.field :
|
15
|
-
|
16
|
-
|
13
|
+
def self.included(type)
|
14
|
+
type.field :participatory_process_groups, [ParticipatoryProcessGroupType],
|
15
|
+
null: false,
|
16
|
+
description: "Lists all participatory process groups"
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
)
|
22
|
-
}
|
18
|
+
type.field :participatory_process_group, ParticipatoryProcessGroupType, null: true do
|
19
|
+
description "Finds a participatory process group"
|
20
|
+
argument :id, GraphQL::Types::ID, required: true, description: "The ID of the Participatory process group"
|
23
21
|
end
|
22
|
+
end
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
def participatory_process_groups(*)
|
25
|
+
Decidim::ParticipatoryProcessGroup.where(
|
26
|
+
organization: context[:current_organization]
|
27
|
+
)
|
28
|
+
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
end
|
30
|
+
def participatory_process_group(id:)
|
31
|
+
Decidim::ParticipatoryProcessGroup.find_by(
|
32
|
+
organization: context[:current_organization],
|
33
|
+
id: id
|
34
|
+
)
|
37
35
|
end
|
38
36
|
end
|
39
37
|
end
|