decidim-participatory_processes 0.23.0 → 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/forms/decidim/participatory_processes/admin/participatory_process_user_role_form.rb +0 -5
- 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/permissions/decidim/participatory_processes/permissions.rb +1 -0
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +12 -4
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_user_role_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +67 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +2 -2
- 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 +65 -18
- data/config/locales/de.yml +85 -35
- 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 +56 -6
- data/config/locales/fi.yml +59 -9
- 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 +51 -6
- 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/si-LK.yml +1 -0
- data/config/locales/sk.yml +0 -8
- data/config/locales/sv.yml +13 -12
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/tr-TR.yml +104 -6
- 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 +65 -22
- 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
data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb
CHANGED
@@ -4,22 +4,8 @@
|
|
4
4
|
<div class="row collapse">
|
5
5
|
<div class="row small-up-1 smallmedium-up-2 mediumlarge-up-3
|
6
6
|
large-up-4 card-grid">
|
7
|
-
<%
|
8
|
-
|
9
|
-
<%= link_to decidim_participatory_processes.participatory_process_path(process), class: "card card--process card--mini" do %>
|
10
|
-
<div aria-hidden="true" class="card__image-top"
|
11
|
-
style="background-image:url(<%= process.hero_image.url %>)"></div>
|
12
|
-
<div class="card__content">
|
13
|
-
<span class="card__title card__link"><%= translated_attribute process.title %></span>
|
14
|
-
<% if process.active_step %>
|
15
|
-
<span class="card--process__small">
|
16
|
-
<%= t("active_step", scope: i18n_scope) %>
|
17
|
-
<strong><%= translated_attribute process.active_step.title %></strong>
|
18
|
-
</span>
|
19
|
-
<% end %>
|
20
|
-
</div>
|
21
|
-
<% end %>
|
22
|
-
</div>
|
7
|
+
<% highlighted_items.each do |item| %>
|
8
|
+
<%= card_for item, size: :s %>
|
23
9
|
<% end %>
|
24
10
|
</div>
|
25
11
|
</div>
|
@@ -1,43 +1,47 @@
|
|
1
|
-
<% process =
|
1
|
+
<% process = highlighted_items.first %>
|
2
2
|
<% title_id = "process_title" %>
|
3
3
|
<section class="wrapper-home home-section">
|
4
4
|
<div class="row" id="highlighted-processes">
|
5
5
|
<h3 class="section-heading"><%= t("active_processes", scope: i18n_scope) %></h3>
|
6
6
|
<div class="row collapse">
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
<%=
|
18
|
-
|
7
|
+
<% if process.is_a? Decidim::ParticipatoryProcessGroup %>
|
8
|
+
<%= render partial: "decidim/participatory_processes/participatory_processes/promoted_process_group.html", locals: { promoted_process_group: process } %>
|
9
|
+
<% else %>
|
10
|
+
<div class="card card--full card--process">
|
11
|
+
<div class="row collapse card--process__row">
|
12
|
+
<div class="column large-6 card--process__column">
|
13
|
+
<div class="card__content">
|
14
|
+
<%= link_to decidim_participatory_processes.participatory_process_path(process), class: "card__link" do %>
|
15
|
+
<h2 class="card__title" id="<%= title_id %>"><%= decidim_html_escape(translated_attribute(process.title)) %></h2>
|
16
|
+
<% end %>
|
17
|
+
<%= decidim_sanitize translated_attribute(process.short_description) %>
|
18
|
+
<%= link_to decidim_participatory_processes.participatory_process_path(process), class: "button small hollow" do %>
|
19
|
+
<span class="show-for-sr"><%= decidim_html_escape(translated_attribute(process.title)) %></span>
|
20
|
+
<%= t("more_information", scope: i18n_scope) %>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
19
23
|
</div>
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
24
|
+
<div class="column large-6 card--process__column">
|
25
|
+
<div class="card--full__image" style="background-image:url(<%= process.hero_image.url %>)">
|
26
|
+
<div class="card__content row collapse">
|
27
|
+
<div class="large-6 large-offset-6 columns">
|
28
|
+
<%= link_to decidim_participatory_processes.participatory_process_path(process), class: "button expanded button--sc" do %>
|
29
|
+
<span class="show-for-sr"><%= t("participate_in", resource_name: translated_attribute(process.title), scope: i18n_scope) %></span>
|
30
|
+
<span aria-hidden="true"><%= t("participate", scope: i18n_scope) %></span>
|
31
|
+
<% if process.active_step %>
|
32
|
+
<span class="button__info">
|
33
|
+
<%= t("active_step", scope: i18n_scope) %>
|
34
|
+
<strong><%= translated_attribute process.active_step.title %></strong>
|
35
|
+
</span>
|
36
|
+
<% end %>
|
33
37
|
<% end %>
|
34
|
-
|
38
|
+
</div>
|
35
39
|
</div>
|
36
40
|
</div>
|
37
41
|
</div>
|
38
42
|
</div>
|
39
43
|
</div>
|
40
|
-
|
44
|
+
<% end %>
|
41
45
|
</div>
|
42
46
|
</div>
|
43
47
|
<%= render "_all_processes" %>
|
@@ -4,32 +4,33 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
module ContentBlocks
|
6
6
|
class HighlightedProcessesCell < Decidim::ViewModel
|
7
|
+
include Decidim::ApplicationHelper
|
7
8
|
include Decidim::SanitizeHelper
|
9
|
+
include Decidim::CardHelper
|
10
|
+
include Cell::ViewModel::Partial
|
11
|
+
include ParticipatoryProcessHelper
|
12
|
+
include Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
|
8
13
|
|
9
14
|
delegate :current_user, to: :controller
|
10
15
|
|
11
16
|
def show
|
12
|
-
if
|
17
|
+
if single_item?
|
13
18
|
render "single_process"
|
14
|
-
elsif
|
19
|
+
elsif highlighted_items.any?
|
15
20
|
render
|
16
21
|
end
|
17
22
|
end
|
18
23
|
|
19
|
-
def
|
20
|
-
|
24
|
+
def single_item?
|
25
|
+
highlighted_items.length == 1
|
21
26
|
end
|
22
27
|
|
23
28
|
def max_results
|
24
29
|
model.settings.max_results
|
25
30
|
end
|
26
31
|
|
27
|
-
def
|
28
|
-
@
|
29
|
-
OrganizationPublishedParticipatoryProcesses.new(current_organization, current_user) |
|
30
|
-
HighlightedParticipatoryProcesses.new |
|
31
|
-
FilteredParticipatoryProcesses.new("active")
|
32
|
-
).query.includes([:organization]).limit(max_results)
|
32
|
+
def highlighted_items
|
33
|
+
@highlighted_items ||= promoted_groups + highlighted_processes
|
33
34
|
end
|
34
35
|
|
35
36
|
def i18n_scope
|
@@ -39,6 +40,28 @@ module Decidim
|
|
39
40
|
def decidim_participatory_processes
|
40
41
|
Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
|
41
42
|
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def highlighted_processes
|
47
|
+
@highlighted_processes ||= if highlighted_processes_max_results.zero?
|
48
|
+
[]
|
49
|
+
else
|
50
|
+
(
|
51
|
+
OrganizationPublishedParticipatoryProcesses.new(current_organization, current_user) |
|
52
|
+
HighlightedParticipatoryProcesses.new |
|
53
|
+
FilteredParticipatoryProcesses.new("active")
|
54
|
+
).query.includes([:organization]).limit(highlighted_processes_max_results)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def promoted_groups
|
59
|
+
@promoted_groups ||= (OrganizationParticipatoryProcessGroups.new(current_organization) | PromotedParticipatoryProcessGroups.new).query.limit(max_results)
|
60
|
+
end
|
61
|
+
|
62
|
+
def highlighted_processes_max_results
|
63
|
+
@highlighted_processes_max_results ||= max_results - promoted_groups.count
|
64
|
+
end
|
42
65
|
end
|
43
66
|
end
|
44
67
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
# This cell renders a set of filtered participatory processes from a base
|
6
|
+
# relation provided by the model
|
7
|
+
#
|
8
|
+
# The `model` must be a relation of participatory processes
|
9
|
+
#
|
10
|
+
# Available options:
|
11
|
+
#
|
12
|
+
# - `default_date_filter` => The date filter to use if not given by
|
13
|
+
# params. If not provided is inferred from the model relation
|
14
|
+
#
|
15
|
+
# Example:
|
16
|
+
#
|
17
|
+
# cell(
|
18
|
+
# "decidim/participatory_processes/filtered_participatory_processes",
|
19
|
+
# group.participatory_processes.published,
|
20
|
+
# date_filter: "active"
|
21
|
+
# )
|
22
|
+
class FilteredParticipatoryProcessesCell < Decidim::ViewModel
|
23
|
+
include Decidim::FilterResource
|
24
|
+
include Decidim::CardHelper
|
25
|
+
|
26
|
+
def elements
|
27
|
+
@elements ||= search.results
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def search_klass
|
33
|
+
Decidim::ParticipatoryProcesses::ParticipatoryProcessSearch
|
34
|
+
end
|
35
|
+
|
36
|
+
def default_search_params
|
37
|
+
{
|
38
|
+
base_relation: model,
|
39
|
+
date: default_date_filter
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def default_date_filter
|
44
|
+
@default_date_filter ||= options[:default_filter].presence || if model.any?(&:active?)
|
45
|
+
"active"
|
46
|
+
elsif model.any?(&:upcoming?)
|
47
|
+
"upcoming"
|
48
|
+
elsif model.any?(&:past?)
|
49
|
+
"past"
|
50
|
+
else
|
51
|
+
"all"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -12,7 +12,12 @@ module Decidim
|
|
12
12
|
private
|
13
13
|
|
14
14
|
def card_size
|
15
|
-
|
15
|
+
case @options[:size]
|
16
|
+
when :s
|
17
|
+
"decidim/participatory_processes/process_s"
|
18
|
+
else
|
19
|
+
"decidim/participatory_processes/process_m"
|
20
|
+
end
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
class ProcessFiltersCell < Decidim::ViewModel
|
6
|
-
ALL_FILTERS = %w(active past
|
6
|
+
ALL_FILTERS = %w(active upcoming past all).freeze
|
7
7
|
|
8
8
|
def filter_link(filter)
|
9
9
|
Decidim::ParticipatoryProcesses::Engine
|
@@ -12,7 +12,12 @@ module Decidim
|
|
12
12
|
private
|
13
13
|
|
14
14
|
def card_size
|
15
|
-
|
15
|
+
case @options[:size]
|
16
|
+
when :s
|
17
|
+
"decidim/participatory_processes/process_group_s"
|
18
|
+
else
|
19
|
+
"decidim/participatory_processes/process_group_m"
|
20
|
+
end
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def title
|
19
|
-
translated_attribute model.
|
19
|
+
translated_attribute model.title
|
20
20
|
end
|
21
21
|
|
22
22
|
def resource_path
|
@@ -36,10 +36,12 @@ module Decidim
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def processes_count_status
|
39
|
+
# rubocop: disable Style/StringConcatenation
|
39
40
|
content_tag(
|
40
41
|
:strong,
|
41
42
|
t("layouts.decidim.participatory_process_groups.participatory_process_group.processes_count")
|
42
43
|
) + " " + processes_visible_for_user
|
44
|
+
# rubocop: enable Style/StringConcatenation
|
43
45
|
end
|
44
46
|
|
45
47
|
def processes_visible_for_user
|
@@ -0,0 +1 @@
|
|
1
|
+
<div aria-hidden="true" class="card__image-top" style="background-image:url(<%= resource_image_path %>)"></div>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="column" id="<%= dom_id(model) %>">
|
2
|
+
<%= link_to resource_path, class: "card card--process card--stack card--mini" do %>
|
3
|
+
<%= render :image if has_image? %>
|
4
|
+
<div class="card__content">
|
5
|
+
<span class="card__title card__link"><%= title %></span>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
8
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
# This cell renders the Small (:s) process group card
|
6
|
+
# for an given instance of a ParticipatoryProcessGroup
|
7
|
+
class ProcessGroupSCell < Decidim::CardMCell
|
8
|
+
private
|
9
|
+
|
10
|
+
def has_image?
|
11
|
+
model.hero_image.url.present?
|
12
|
+
end
|
13
|
+
|
14
|
+
def resource_path
|
15
|
+
Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_process_group_path(model)
|
16
|
+
end
|
17
|
+
|
18
|
+
def resource_image_path
|
19
|
+
model.hero_image.url
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<div aria-hidden="true" class="card__image-top" style="background-image:url(<%= resource_image_path %>)"></div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="column" id="<%= dom_id(model) %>">
|
2
|
+
<%= link_to resource_path, class: "card card--process card--mini" do %>
|
3
|
+
<%= render :image if has_image? %>
|
4
|
+
<div class="card__content">
|
5
|
+
<span class="card__title card__link"><%= title %></span>
|
6
|
+
<% if has_step? %>
|
7
|
+
<span class="card--process__small">
|
8
|
+
<%= t("active_step", scope: i18n_scope) %>
|
9
|
+
<strong><%= step_title %></strong>
|
10
|
+
</span>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
# This cell renders the Small (:s) process card
|
6
|
+
# for an given instance of a ParticipatoryProcess
|
7
|
+
class ProcessSCell < Decidim::CardMCell
|
8
|
+
private
|
9
|
+
|
10
|
+
def has_image?
|
11
|
+
model.hero_image.url.present?
|
12
|
+
end
|
13
|
+
|
14
|
+
def has_step?
|
15
|
+
model.active_step.present?
|
16
|
+
end
|
17
|
+
|
18
|
+
def resource_path
|
19
|
+
Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_process_path(model)
|
20
|
+
end
|
21
|
+
|
22
|
+
def resource_image_path
|
23
|
+
model.hero_image.url
|
24
|
+
end
|
25
|
+
|
26
|
+
def step_title
|
27
|
+
translated_attribute model.active_step.title
|
28
|
+
end
|
29
|
+
|
30
|
+
def i18n_scope
|
31
|
+
"decidim.participatory_processes.pages.home.highlighted_processes"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<div class="
|
2
|
-
<span class="
|
1
|
+
<div class="space-stats__data">
|
2
|
+
<span class="space-stats__number">
|
3
3
|
<%= stat_number %>
|
4
4
|
</span>
|
5
5
|
|
6
|
-
<h4 class="
|
6
|
+
<h4 class="space-stats__title">
|
7
7
|
<%= stat_title %>
|
8
8
|
</h4>
|
9
9
|
</div>
|
data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb
CHANGED
@@ -6,6 +6,8 @@ module Decidim
|
|
6
6
|
# A command with all the business logic when creating a new participatory
|
7
7
|
# process admin in the system.
|
8
8
|
class CreateParticipatoryProcessAdmin < NotifyRoleAssignedToParticipatoryProcess
|
9
|
+
include ::Decidim::Admin::CreateParticipatorySpaceAdminUserActions
|
10
|
+
|
9
11
|
# Public: Initializes the command.
|
10
12
|
#
|
11
13
|
# form - A form object with the params.
|
@@ -15,33 +17,12 @@ module Decidim
|
|
15
17
|
def initialize(form, current_user, participatory_process)
|
16
18
|
@form = form
|
17
19
|
@current_user = current_user
|
18
|
-
@
|
19
|
-
end
|
20
|
-
|
21
|
-
# Executes the command. Broadcasts these events:
|
22
|
-
#
|
23
|
-
# - :ok when everything is valid.
|
24
|
-
# - :invalid if the form wasn't valid and we couldn't proceed.
|
25
|
-
#
|
26
|
-
# Returns nothing.
|
27
|
-
def call
|
28
|
-
return broadcast(:invalid) if form.invalid?
|
29
|
-
|
30
|
-
ActiveRecord::Base.transaction do
|
31
|
-
@user = existing_user || new_user
|
32
|
-
existing_role || create_role
|
33
|
-
add_admin_as_follower
|
34
|
-
end
|
35
|
-
|
36
|
-
broadcast(:ok)
|
37
|
-
rescue ActiveRecord::RecordInvalid
|
38
|
-
form.errors.add(:email, :taken)
|
39
|
-
broadcast(:invalid)
|
20
|
+
@participatory_space = participatory_process
|
40
21
|
end
|
41
22
|
|
42
23
|
private
|
43
24
|
|
44
|
-
attr_reader :form, :
|
25
|
+
attr_reader :form, :participatory_space, :current_user, :user
|
45
26
|
|
46
27
|
def create_role
|
47
28
|
extra_info = {
|
@@ -52,7 +33,7 @@ module Decidim
|
|
52
33
|
role_params = {
|
53
34
|
role: form.role.to_sym,
|
54
35
|
user: user,
|
55
|
-
participatory_process:
|
36
|
+
participatory_process: participatory_space
|
56
37
|
}
|
57
38
|
|
58
39
|
Decidim.traceability.create!(
|
@@ -65,60 +46,11 @@ module Decidim
|
|
65
46
|
end
|
66
47
|
|
67
48
|
def existing_role
|
68
|
-
Decidim::ParticipatoryProcessUserRole.
|
49
|
+
Decidim::ParticipatoryProcessUserRole.exists?(
|
69
50
|
role: form.role.to_sym,
|
70
51
|
user: user,
|
71
|
-
participatory_process:
|
72
|
-
)
|
73
|
-
end
|
74
|
-
|
75
|
-
def existing_user
|
76
|
-
return @existing_user if defined?(@existing_user)
|
77
|
-
|
78
|
-
@existing_user = User.find_by(
|
79
|
-
email: form.email,
|
80
|
-
organization: participatory_process.organization
|
52
|
+
participatory_process: participatory_space
|
81
53
|
)
|
82
|
-
|
83
|
-
InviteUserAgain.call(@existing_user, invitation_instructions) if @existing_user && !@existing_user.invitation_accepted?
|
84
|
-
|
85
|
-
@existing_user
|
86
|
-
end
|
87
|
-
|
88
|
-
def new_user
|
89
|
-
@new_user ||= InviteUser.call(user_form) do
|
90
|
-
on(:ok) do |user|
|
91
|
-
return user
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def user_form
|
97
|
-
OpenStruct.new(name: form.name,
|
98
|
-
email: form.email.downcase,
|
99
|
-
organization: participatory_process.organization,
|
100
|
-
admin: false,
|
101
|
-
invited_by: current_user,
|
102
|
-
invitation_instructions: invitation_instructions)
|
103
|
-
end
|
104
|
-
|
105
|
-
def invitation_instructions
|
106
|
-
return "invite_admin" if form.role == "admin"
|
107
|
-
|
108
|
-
"invite_collaborator"
|
109
|
-
end
|
110
|
-
|
111
|
-
def add_admin_as_follower
|
112
|
-
return if user.follows?(participatory_process)
|
113
|
-
|
114
|
-
form = Decidim::FollowForm
|
115
|
-
.from_params(followable_gid: participatory_process.to_signed_global_id.to_s)
|
116
|
-
.with_context(
|
117
|
-
current_organization: participatory_process.organization,
|
118
|
-
current_user: user
|
119
|
-
)
|
120
|
-
|
121
|
-
Decidim::CreateFollow.new(form, user).call
|
122
54
|
end
|
123
55
|
end
|
124
56
|
end
|