decidim-participatory_processes 0.27.8 → 0.28.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/cells/decidim/participatory_process_groups/content_block_cell.rb +5 -1
- data/app/cells/decidim/participatory_process_groups/content_blocks/extra_data/recent_users.erb +1 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/extra_data_cell.rb +71 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/main_data/content.erb +30 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/main_data_cell.rb +77 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/related_processes_cell.rb +47 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/statistics_cell.rb +2 -2
- data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +4 -4
- data/app/cells/decidim/participatory_processes/content_block_cell.rb +21 -0
- data/app/cells/decidim/participatory_processes/content_blocks/extra_data/active_step.erb +1 -0
- data/app/cells/decidim/participatory_processes/content_blocks/extra_data_cell.rb +60 -0
- data/app/cells/decidim/participatory_processes/content_blocks/hero_cell.rb +29 -0
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +14 -27
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_settings_form/show.erb +1 -1
- data/app/cells/decidim/participatory_processes/content_blocks/main_data_cell.rb +34 -0
- data/app/cells/decidim/participatory_processes/content_blocks/metadata_cell.rb +23 -0
- data/app/cells/decidim/participatory_processes/content_blocks/metrics_cell.rb +25 -0
- data/app/cells/decidim/participatory_processes/content_blocks/processes_settings_form/show.erb +3 -0
- data/app/cells/decidim/participatory_processes/content_blocks/processes_settings_form_cell.rb +28 -0
- data/app/cells/decidim/participatory_processes/content_blocks/related_processes/content.erb +1 -0
- data/app/cells/decidim/participatory_processes/content_blocks/related_processes_cell.rb +53 -0
- data/app/cells/decidim/participatory_processes/content_blocks/stats_cell.rb +17 -0
- data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +1 -1
- data/app/cells/decidim/participatory_processes/process_cell.rb +2 -2
- data/app/cells/decidim/participatory_processes/process_dropdown_metadata/metadata.erb +22 -0
- data/app/cells/decidim/participatory_processes/process_dropdown_metadata_cell.rb +39 -0
- data/app/cells/decidim/participatory_processes/process_filters/show.erb +4 -5
- data/app/cells/decidim/participatory_processes/process_filters/type_filter.erb +1 -1
- data/app/cells/decidim/participatory_processes/process_filters_cell.rb +6 -6
- data/app/cells/decidim/participatory_processes/process_g_cell.rb +31 -0
- data/app/cells/decidim/participatory_processes/process_group_cell.rb +2 -2
- data/app/cells/decidim/participatory_processes/process_group_g_cell.rb +23 -0
- data/app/cells/decidim/participatory_processes/process_group_metadata_cell.rb +46 -0
- data/app/cells/decidim/participatory_processes/process_group_s_cell.rb +5 -13
- data/app/cells/decidim/participatory_processes/process_metadata_cell.rb +44 -0
- data/app/cells/decidim/participatory_processes/process_metadata_g_cell.rb +15 -0
- data/app/cells/decidim/participatory_processes/process_s_cell.rb +5 -25
- data/app/cells/decidim/participatory_processes/process_step/show.erb +48 -0
- data/app/cells/decidim/participatory_processes/process_step_cell.rb +30 -0
- data/app/cells/decidim/participatory_processes/processes/show.erb +16 -0
- data/app/cells/decidim/participatory_processes/processes_cell.rb +24 -0
- data/app/commands/decidim/participatory_processes/admin/activate_participatory_process_step.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/copy_participatory_process.rb +2 -2
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +3 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +4 -2
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_step.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_type.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_group.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_step.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_type.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/reorder_participatory_process_steps.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +2 -2
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_step.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_type.rb +1 -1
- data/app/constraints/decidim/participatory_processes/current_participatory_process.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/application_controller.rb +29 -0
- data/app/controllers/decidim/participatory_processes/admin/categories_controller.rb +2 -0
- data/app/controllers/decidim/participatory_processes/admin/concerns/participatory_process_admin.rb +3 -1
- data/app/controllers/decidim/participatory_processes/admin/moderations/reports_controller.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/moderations_controller.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_attachment_collections_controller.rb +5 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_attachments_controller.rb +5 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_content_blocks_controller.rb +1 -5
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_group_landing_page_controller.rb +24 -7
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +16 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_content_blocks_controller.rb +37 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_landing_page_controller.rb +37 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_publications_controller.rb +9 -29
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_step_activations_controller.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_steps_controller.rb +16 -4
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_types_controller.rb +19 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_user_roles_controller.rb +8 -91
- data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +3 -0
- data/app/controllers/decidim/participatory_processes/participatory_process_groups_controller.rb +14 -1
- data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +19 -4
- data/app/events/decidim/participatory_process_role_assigned_event.rb +6 -6
- data/app/events/decidim/participatory_process_step_activated_event.rb +5 -4
- data/app/events/decidim/participatory_process_step_changed_event.rb +5 -4
- data/app/forms/decidim/participatory_processes/admin/participatory_process_copy_form.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_step_form.rb +2 -2
- data/app/forms/decidim/participatory_processes/admin/participatory_process_user_role_form.rb +2 -18
- data/app/helpers/decidim/participatory_processes/admin/participatory_process_helper.rb +1 -0
- data/app/helpers/decidim/participatory_processes/application_helper.rb +5 -0
- data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +37 -9
- data/app/helpers/decidim/participatory_processes/participatory_space_content_blocks_helper.rb +17 -0
- data/app/jobs/decidim/participatory_processes/change_active_step_job.rb +35 -0
- data/app/models/decidim/participatory_process.rb +5 -5
- data/app/models/decidim/participatory_process_group.rb +4 -0
- data/app/models/decidim/participatory_process_user_role.rb +5 -34
- data/app/packs/entrypoints/decidim_participatory_processes.js +0 -2
- data/app/packs/src/decidim/participatory_processes/admin/participatory_processes.js +2 -2
- data/app/permissions/decidim/participatory_processes/permissions.rb +11 -15
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_group_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_type_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/admin_log/step_presenter.rb +2 -2
- data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +4 -40
- data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +0 -68
- data/app/presenters/decidim/participatory_processes/participatory_process_presenter.rb +6 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +3 -42
- data/app/queries/decidim/participatory_processes/admin/admin_users.rb +1 -1
- data/app/queries/decidim/participatory_processes/admin/moderators.rb +1 -1
- data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +4 -4
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/_form.html.erb +24 -29
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +16 -5
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +72 -50
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +15 -9
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +49 -54
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +28 -5
- data/app/views/decidim/participatory_processes/admin/participatory_process_imports/_form.html.erb +33 -39
- data/app/views/decidim/participatory_processes/admin/participatory_process_imports/new.html.erb +18 -5
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +18 -25
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/edit.html.erb +16 -5
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +54 -54
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/new.html.erb +18 -5
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/show.html.erb +2 -2
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/_form.html.erb +6 -8
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/edit.html.erb +14 -6
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/index.html.erb +47 -50
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/new.html.erb +14 -6
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/_form.html.erb +14 -18
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/edit.html.erb +17 -6
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/index.html.erb +59 -60
- data/app/views/decidim/participatory_processes/admin/participatory_process_user_roles/new.html.erb +16 -5
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +193 -146
- data/app/views/decidim/participatory_processes/admin/participatory_processes/edit.html.erb +25 -11
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +111 -128
- data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +16 -9
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +6 -10
- data/app/views/decidim/participatory_processes/participatory_processes/_collection.html.erb +8 -0
- data/app/views/decidim/participatory_processes/participatory_processes/all_metrics.html.erb +21 -8
- data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +19 -17
- data/app/views/decidim/participatory_processes/participatory_processes/index.js.erb +1 -8
- data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +14 -128
- data/app/views/layouts/decidim/_process_header.html.erb +15 -26
- data/app/views/layouts/decidim/_process_nav_item.html.erb +6 -0
- data/app/views/layouts/decidim/admin/_manage_processes.html.erb +36 -0
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +12 -14
- data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +23 -13
- data/app/views/layouts/decidim/admin/participatory_process_groups.html.erb +13 -0
- data/app/views/layouts/decidim/admin/participatory_process_type.html.erb +13 -11
- data/app/views/layouts/decidim/admin/participatory_processes.html.erb +14 -8
- data/app/views/layouts/decidim/participatory_process.html.erb +7 -14
- data/config/locales/ar.yml +1 -55
- data/config/locales/bg.yml +0 -518
- data/config/locales/ca.yml +50 -70
- data/config/locales/cs.yml +51 -71
- data/config/locales/de.yml +52 -72
- data/config/locales/el.yml +8 -64
- data/config/locales/en.yml +52 -72
- data/config/locales/es-MX.yml +49 -69
- data/config/locales/es-PY.yml +49 -69
- data/config/locales/es.yml +49 -69
- data/config/locales/eu.yml +89 -112
- data/config/locales/fi-plain.yml +50 -70
- data/config/locales/fi.yml +51 -71
- data/config/locales/fr-CA.yml +51 -71
- data/config/locales/fr.yml +52 -72
- data/config/locales/ga-IE.yml +0 -16
- data/config/locales/gl.yml +0 -67
- data/config/locales/hu.yml +6 -66
- data/config/locales/id-ID.yml +1 -55
- data/config/locales/is-IS.yml +0 -24
- data/config/locales/it.yml +0 -67
- data/config/locales/ja.yml +51 -71
- data/config/locales/lb.yml +1 -153
- data/config/locales/lt.yml +39 -65
- data/config/locales/lv.yml +1 -59
- data/config/locales/nl.yml +0 -67
- data/config/locales/no.yml +0 -92
- data/config/locales/pl.yml +0 -124
- data/config/locales/pt-BR.yml +1 -113
- data/config/locales/pt.yml +0 -67
- data/config/locales/ro-RO.yml +4 -64
- data/config/locales/ru.yml +0 -49
- data/config/locales/sk.yml +1 -56
- data/config/locales/sl.yml +0 -7
- data/config/locales/sr-CS.yml +0 -4
- data/config/locales/sv.yml +15 -66
- data/config/locales/tr-TR.yml +7 -68
- data/config/locales/uk.yml +0 -49
- data/config/locales/zh-CN.yml +2 -63
- data/config/locales/zh-TW.yml +3 -63
- data/db/migrate/20220315100140_change_steps_dates_to_datetime.rb +8 -0
- data/lib/decidim/api/participatory_process_step_type.rb +2 -2
- data/lib/decidim/participatory_processes/admin_engine.rb +20 -139
- data/lib/decidim/participatory_processes/content_blocks/registry_manager.rb +278 -0
- data/lib/decidim/participatory_processes/engine.rb +13 -103
- data/lib/decidim/participatory_processes/menu.rb +190 -0
- data/lib/decidim/participatory_processes/participatory_space.rb +7 -204
- data/lib/decidim/participatory_processes/query_extensions.rb +2 -2
- data/lib/decidim/participatory_processes/seeds.rb +164 -0
- data/lib/decidim/participatory_processes/test/factories.rb +58 -66
- data/lib/decidim/participatory_processes/version.rb +1 -1
- data/lib/tasks/decidim_participatory_processes.rake +8 -0
- metadata +62 -67
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +0 -21
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters_small_view.erb +0 -18
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/participatory_space_filters.erb +0 -6
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +0 -8
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/title_filter_order.erb +0 -8
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +0 -60
- data/app/cells/decidim/participatory_process_groups/content_blocks/html/show.erb +0 -3
- data/app/cells/decidim/participatory_process_groups/content_blocks/html_cell.rb +0 -13
- data/app/cells/decidim/participatory_process_groups/content_blocks/metadata/show.erb +0 -28
- data/app/cells/decidim/participatory_process_groups/content_blocks/metadata_cell.rb +0 -15
- data/app/cells/decidim/participatory_process_groups/content_blocks/title/show.erb +0 -43
- data/app/cells/decidim/participatory_process_groups/content_blocks/title_cell.rb +0 -64
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/_all_processes.erb +0 -9
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +0 -14
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +0 -48
- data/app/cells/decidim/participatory_processes/process_group_m/footer.erb +0 -8
- data/app/cells/decidim/participatory_processes/process_group_m_cell.rb +0 -60
- data/app/cells/decidim/participatory_processes/process_group_s/image.erb +0 -1
- data/app/cells/decidim/participatory_processes/process_group_s/show.erb +0 -8
- data/app/cells/decidim/participatory_processes/process_m/data.erb +0 -21
- data/app/cells/decidim/participatory_processes/process_m/footer.erb +0 -14
- data/app/cells/decidim/participatory_processes/process_m/tags.erb +0 -8
- data/app/cells/decidim/participatory_processes/process_m_cell.rb +0 -87
- data/app/cells/decidim/participatory_processes/process_s/image.erb +0 -1
- data/app/cells/decidim/participatory_processes/process_s/show.erb +0 -14
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_admin.rb +0 -58
- data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_admin.rb +0 -58
- data/app/commands/decidim/participatory_processes/admin/notify_role_assigned_to_participatory_process.rb +0 -22
- data/app/commands/decidim/participatory_processes/admin/publish_participatory_process.rb +0 -40
- data/app/commands/decidim/participatory_processes/admin/unpublish_participatory_process.rb +0 -40
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_admin.rb +0 -56
- data/app/controllers/decidim/participatory_processes/participatory_process_steps_controller.rb +0 -28
- data/app/controllers/decidim/participatory_processes/widgets_controller.rb +0 -37
- data/app/packs/src/decidim/participatory_processes/filters.js +0 -28
- data/app/views/decidim/participatory_process_steps/_participatory_process_step.html.erb +0 -16
- data/app/views/decidim/participatory_processes/participatory_process_steps/_timeline.html.erb +0 -7
- data/app/views/decidim/participatory_processes/participatory_process_steps/index.html.erb +0 -18
- data/app/views/decidim/participatory_processes/participatory_processes/_metrics.html.erb +0 -10
- data/app/views/decidim/participatory_processes/participatory_processes/_order_by_processes.html.erb +0 -1
- data/app/views/decidim/participatory_processes/participatory_processes/_participatory_process_group.html.erb +0 -4
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process.html.erb +0 -39
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +0 -31
- data/app/views/layouts/decidim/_process_header_steps.html.erb +0 -37
- data/app/views/layouts/decidim/_process_navigation.html.erb +0 -20
- data/config/locales/he-IL.yml +0 -1
- 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/decidim-participatory_processes.gemspec +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c20cba8c3db18a435e4fc579d65c157b7fb3090248ae43439f38a8b965c8e5f9
|
4
|
+
data.tar.gz: 0c891de5843b312c0b05b64278dc8f9b503f01a7e8ecc7a92d365ed196955af9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ce2935928f0edaab57c9bd244f086468e3c89a595412d899f12c3257fe6ac1fd911b02ce3db187b5aba2c8c8a1781210f748b6dd472ed2fc3afe0b04bce8311
|
7
|
+
data.tar.gz: a02b2043ab072f42bc30ad1c3ab65992d624acbe57a74f98602218477b8d102a41033d3de14f49b76175096b8cd91629a193ed636b73c91d5d501a3d1e64b6bf
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ This module provides:
|
|
25
25
|
|
26
26
|
## Installation
|
27
27
|
|
28
|
-
This is on the default Decidim installation so you
|
28
|
+
This is on the default Decidim installation so you should not change anything to use this participatory space.
|
29
29
|
|
30
30
|
## Screenshots
|
31
31
|
|
@@ -6,7 +6,11 @@ module Decidim
|
|
6
6
|
delegate :scoped_resource, to: :controller
|
7
7
|
|
8
8
|
def edit_content_block_path
|
9
|
-
decidim_participatory_processes.edit_participatory_process_group_landing_page_content_block_path(scoped_resource,
|
9
|
+
decidim_participatory_processes.edit_participatory_process_group_landing_page_content_block_path(scoped_resource, model)
|
10
|
+
end
|
11
|
+
|
12
|
+
def content_block_path
|
13
|
+
decidim_participatory_processes.participatory_process_group_landing_page_content_block_path(scoped_resource, model)
|
10
14
|
end
|
11
15
|
|
12
16
|
def decidim_participatory_processes
|
data/app/cells/decidim/participatory_process_groups/content_blocks/extra_data/recent_users.erb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
<%# This partial overrides the default one to render nothing %>
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcessGroups
|
5
|
+
module ContentBlocks
|
6
|
+
class ExtraDataCell < Decidim::ContentBlocks::ParticipatorySpaceExtraDataCell
|
7
|
+
include Decidim::SanitizeHelper
|
8
|
+
|
9
|
+
delegate :developer_group, :target, :participatory_scope, :participatory_structure, to: :resource
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def extra_data_items
|
14
|
+
[developer_group_item, target_item, participatory_scope_item, participatory_structure_item].compact
|
15
|
+
end
|
16
|
+
|
17
|
+
def developer_group_item
|
18
|
+
return if (text = decidim_sanitize translated_attribute(developer_group)).blank?
|
19
|
+
|
20
|
+
{
|
21
|
+
title: t("decidim.participatory_process_groups.content_blocks.extra_data.developer_group"),
|
22
|
+
icon: "question-line",
|
23
|
+
text:
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def target_item
|
28
|
+
return if (text = decidim_sanitize translated_attribute(target)).blank?
|
29
|
+
|
30
|
+
{
|
31
|
+
title: t("decidim.participatory_process_groups.content_blocks.extra_data.target"),
|
32
|
+
icon: "question-line",
|
33
|
+
text:
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def participatory_scope_item
|
38
|
+
return if (text = decidim_sanitize translated_attribute(participatory_scope)).blank?
|
39
|
+
|
40
|
+
{
|
41
|
+
title: t("decidim.participatory_process_groups.content_blocks.extra_data.participatory_scope"),
|
42
|
+
icon: "question-line",
|
43
|
+
text:
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
def participatory_structure_item
|
48
|
+
return if (text = decidim_sanitize translated_attribute(participatory_structure)).blank?
|
49
|
+
|
50
|
+
{
|
51
|
+
title: t("decidim.participatory_process_groups.content_blocks.extra_data.participatory_structure"),
|
52
|
+
icon: "question-line",
|
53
|
+
text:
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
def group_uri
|
58
|
+
@group_uri = URI.parse(group_url)
|
59
|
+
end
|
60
|
+
|
61
|
+
def group_url_text
|
62
|
+
group_uri.host + group_uri.path
|
63
|
+
end
|
64
|
+
|
65
|
+
def block_id
|
66
|
+
"participatory_process_group-extra_data"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<h2 class="h2 decorator"><%= title_text %></h2>
|
2
|
+
|
3
|
+
<div class="editor-content content-block__description">
|
4
|
+
<%= description_text %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<% group_attributes1 = [processes_count_item, meta_scope_item].compact %>
|
8
|
+
<% group_attributes2 = [hashtag_item, external_link_item].compact %>
|
9
|
+
|
10
|
+
<div class="participatory-space-group__content-block-metadata">
|
11
|
+
<% group_attributes1.each do |item| %>
|
12
|
+
<% next if item.blank? %>
|
13
|
+
|
14
|
+
<span>
|
15
|
+
<%= icon item[:icon] %>
|
16
|
+
<%= item[:text] %>
|
17
|
+
</span>
|
18
|
+
<% end %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="participatory-space-group__content-block-metadata">
|
22
|
+
<% group_attributes2.each do |item| %>
|
23
|
+
<% next if item.blank? %>
|
24
|
+
|
25
|
+
<span>
|
26
|
+
<%= icon item[:icon] %>
|
27
|
+
<%= item[:text] %>
|
28
|
+
</span>
|
29
|
+
<% end %>
|
30
|
+
</div>
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcessGroups
|
5
|
+
module ContentBlocks
|
6
|
+
class MainDataCell < Decidim::ContentBlocks::ParticipatorySpaceMainDataCell
|
7
|
+
include Decidim::SanitizeHelper
|
8
|
+
include Decidim::TwitterSearchHelper
|
9
|
+
|
10
|
+
delegate :title, :description, :hashtag, :group_url, :meta_scope, to: :resource
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def extra_classes
|
15
|
+
"participatory-space-group__content-block"
|
16
|
+
end
|
17
|
+
|
18
|
+
def title_text
|
19
|
+
translated_attribute(title)
|
20
|
+
end
|
21
|
+
|
22
|
+
def description_text
|
23
|
+
decidim_sanitize_editor_admin translated_attribute(description)
|
24
|
+
end
|
25
|
+
|
26
|
+
def hashtag_item
|
27
|
+
return if hashtag_text.blank?
|
28
|
+
|
29
|
+
{
|
30
|
+
icon: "twitter-x-line",
|
31
|
+
text: link_to("##{hashtag_text}", twitter_hashtag_url(hashtag_text), target: "_blank", rel: "noopener")
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
def processes_count_item
|
36
|
+
{
|
37
|
+
icon: "grid-line",
|
38
|
+
text: t(
|
39
|
+
"decidim.participatory_process_groups.content_blocks.title.participatory_processes",
|
40
|
+
count: cell("decidim/participatory_process_groups/content_blocks/related_processes", model).total_count
|
41
|
+
)
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
def external_link_item
|
46
|
+
return if group_url.blank?
|
47
|
+
|
48
|
+
{
|
49
|
+
icon: "external-link-line",
|
50
|
+
text: link_to(group_url_text, group_url, target: "_blank", rel: "noopener")
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
def meta_scope_item
|
55
|
+
return if (scope_text = translated_attribute(meta_scope)).blank?
|
56
|
+
|
57
|
+
{
|
58
|
+
icon: "globe-line",
|
59
|
+
text: "<strong>#{t("decidim.participatory_process_groups.content_blocks.title.meta_scope")}</strong> #{scope_text}"
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
def hashtag_text
|
64
|
+
@hashtag_text ||= decidim_html_escape(hashtag || "")
|
65
|
+
end
|
66
|
+
|
67
|
+
def group_url_text
|
68
|
+
group_uri.host + group_uri.path
|
69
|
+
end
|
70
|
+
|
71
|
+
def group_uri
|
72
|
+
@group_uri = URI.parse(group_url)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcessGroups
|
5
|
+
module ContentBlocks
|
6
|
+
class RelatedProcessesCell < Decidim::ParticipatoryProcesses::ContentBlocks::RelatedProcessesCell
|
7
|
+
def related_processes
|
8
|
+
@related_processes ||=
|
9
|
+
Decidim::ParticipatoryProcesses::GroupPublishedParticipatoryProcesses.new(
|
10
|
+
resource,
|
11
|
+
current_user
|
12
|
+
).query
|
13
|
+
end
|
14
|
+
|
15
|
+
def filtered_processes
|
16
|
+
return related_processes unless filter_active?
|
17
|
+
|
18
|
+
related_processes.active
|
19
|
+
end
|
20
|
+
|
21
|
+
def total_count
|
22
|
+
filtered_processes.size
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def filter_active?
|
28
|
+
default_filter == "active"
|
29
|
+
end
|
30
|
+
|
31
|
+
def default_filter
|
32
|
+
return if model.blank?
|
33
|
+
|
34
|
+
model.settings.try(:default_filter)
|
35
|
+
end
|
36
|
+
|
37
|
+
def title
|
38
|
+
if filter_active?
|
39
|
+
t("active", scope: "decidim.participatory_process_groups.content_blocks.participatory_processes")
|
40
|
+
else
|
41
|
+
t("name", scope: "decidim.participatory_process_groups.content_blocks.participatory_processes")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -3,11 +3,11 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcessGroups
|
5
5
|
module ContentBlocks
|
6
|
-
class StatisticsCell < Decidim::
|
6
|
+
class StatisticsCell < Decidim::ContentBlocks::ParticipatorySpaceStatsCell
|
7
7
|
def stats
|
8
8
|
@stats ||= begin
|
9
9
|
participatory_process_group = Decidim::ParticipatoryProcessGroup.find(model.scoped_resource_id)
|
10
|
-
Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupStatsPresenter.new(participatory_process_group:
|
10
|
+
Decidim::ParticipatoryProcesses::ParticipatoryProcessGroupStatsPresenter.new(participatory_process_group:).collection
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcessGroups
|
5
5
|
# This cell renders the filter tabs of participatory processes
|
6
|
-
# in a group. It
|
6
|
+
# in a group. It is inherited from ProcessFiltersCell of participatory
|
7
7
|
# processes index but is based in the group processes
|
8
8
|
#
|
9
9
|
# The `model` must be a Decidim::ParticipatoryProcessGroup`
|
@@ -57,10 +57,10 @@ module Decidim
|
|
57
57
|
{
|
58
58
|
with_date: date_filter,
|
59
59
|
with_any_scope: get_filter(:with_any_scope),
|
60
|
-
|
61
|
-
|
60
|
+
with_any_area: get_filter(:with_any_area),
|
61
|
+
with_any_type: filter_with_type ? get_filter(:with_any_type) : nil
|
62
62
|
},
|
63
|
-
current_user
|
63
|
+
current_user:,
|
64
64
|
organization: current_organization
|
65
65
|
).result
|
66
66
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
class ContentBlockCell < Decidim::Admin::ContentBlockCell
|
6
|
+
delegate :scoped_resource, to: :controller
|
7
|
+
|
8
|
+
def edit_content_block_path
|
9
|
+
decidim_participatory_processes.edit_participatory_process_landing_page_content_block_path(scoped_resource, model)
|
10
|
+
end
|
11
|
+
|
12
|
+
def content_block_path
|
13
|
+
decidim_participatory_processes.participatory_process_landing_page_content_block_path(scoped_resource, model)
|
14
|
+
end
|
15
|
+
|
16
|
+
def decidim_participatory_processes
|
17
|
+
Decidim::ParticipatoryProcesses::AdminEngine.routes.url_helpers
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<button data-dialog-open="process-steps-modal"><%= active_step_name %></button>
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class ExtraDataCell < Decidim::ContentBlocks::ParticipatorySpaceExtraDataCell
|
7
|
+
include ParticipatorySpaceContentBlocksHelper
|
8
|
+
|
9
|
+
delegate :steps, :active_step, :start_date, :end_date, :participatory_process_group, to: :resource
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def extra_data_items
|
14
|
+
[step_item, dates_item, group_item].compact
|
15
|
+
end
|
16
|
+
|
17
|
+
def active_step_name
|
18
|
+
translated_attribute active_step.title
|
19
|
+
end
|
20
|
+
|
21
|
+
def step_item
|
22
|
+
return if active_step.blank?
|
23
|
+
|
24
|
+
{
|
25
|
+
title: t("active_step", scope: "layouts.decidim.participatory_processes.participatory_process"),
|
26
|
+
icon: "direction-line",
|
27
|
+
partial: "active_step"
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
def dates_item
|
32
|
+
{
|
33
|
+
title: [
|
34
|
+
t("start_date", scope: "activemodel.attributes.participatory_process_step"),
|
35
|
+
t("end_date", scope: "activemodel.attributes.participatory_process_step")
|
36
|
+
].join(" / "),
|
37
|
+
icon: "calendar-todo-line",
|
38
|
+
text: [
|
39
|
+
start_date.present? ? l(start_date, format: :decidim_short_with_month_name_short) : "?",
|
40
|
+
end_date.present? ? l(end_date, format: :decidim_short_with_month_name_short) : "?"
|
41
|
+
].join(" / ")
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
def group_item
|
46
|
+
return if participatory_process_group.blank?
|
47
|
+
|
48
|
+
{
|
49
|
+
title: t("belongs_to_group", scope: "decidim.participatory_processes.show"),
|
50
|
+
icon: "archive-line",
|
51
|
+
text: link_to(
|
52
|
+
translated_attribute(participatory_process_group.title),
|
53
|
+
decidim_participatory_processes.participatory_process_group_path(participatory_process_group)
|
54
|
+
)
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class HeroCell < Decidim::ContentBlocks::ParticipatorySpaceHeroCell
|
7
|
+
include Decidim::ApplicationHelper
|
8
|
+
|
9
|
+
delegate :active_step, to: :resource
|
10
|
+
|
11
|
+
def decidim_participatory_processes
|
12
|
+
Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
|
13
|
+
end
|
14
|
+
|
15
|
+
def cta_text
|
16
|
+
return if active_step.blank?
|
17
|
+
|
18
|
+
@cta_text ||= translated_attribute(active_step.cta_text).presence
|
19
|
+
end
|
20
|
+
|
21
|
+
def cta_path
|
22
|
+
return if active_step.blank?
|
23
|
+
|
24
|
+
@cta_path ||= active_step.cta_path.presence && step_cta_url(resource)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -3,46 +3,33 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
module ContentBlocks
|
6
|
-
class HighlightedProcessesCell < Decidim::
|
7
|
-
include Decidim::ApplicationHelper
|
8
|
-
include Decidim::SanitizeHelper
|
9
|
-
include Decidim::CardHelper
|
10
|
-
include Cell::ViewModel::Partial
|
11
|
-
include ParticipatoryProcessHelper
|
12
|
-
include Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
|
13
|
-
|
6
|
+
class HighlightedProcessesCell < Decidim::ContentBlocks::HighlightedParticipatorySpacesCell
|
14
7
|
delegate :current_user, to: :controller
|
15
8
|
|
16
|
-
def
|
17
|
-
|
18
|
-
render "single_process"
|
19
|
-
elsif highlighted_items.any?
|
20
|
-
render
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def single_item?
|
25
|
-
highlighted_items.length == 1
|
26
|
-
end
|
27
|
-
|
28
|
-
def max_results
|
29
|
-
model.settings.max_results
|
9
|
+
def highlighted_spaces
|
10
|
+
@highlighted_spaces ||= promoted_groups + highlighted_processes
|
30
11
|
end
|
31
12
|
|
32
|
-
|
33
|
-
@highlighted_items ||= promoted_groups + highlighted_processes
|
34
|
-
end
|
13
|
+
alias limited_highlighted_spaces highlighted_spaces
|
35
14
|
|
36
15
|
def i18n_scope
|
37
16
|
"decidim.participatory_processes.pages.home.highlighted_processes"
|
38
17
|
end
|
39
18
|
|
40
|
-
def
|
41
|
-
Decidim::ParticipatoryProcesses::Engine.routes.url_helpers
|
19
|
+
def all_path
|
20
|
+
Decidim::ParticipatoryProcesses::Engine.routes.url_helpers.participatory_processes_path
|
21
|
+
end
|
22
|
+
|
23
|
+
def max_results
|
24
|
+
model.settings.max_results
|
42
25
|
end
|
43
26
|
|
44
27
|
private
|
45
28
|
|
29
|
+
def block_id
|
30
|
+
"highlighted-processes"
|
31
|
+
end
|
32
|
+
|
46
33
|
def highlighted_processes
|
47
34
|
@highlighted_processes ||= if highlighted_processes_max_results.zero?
|
48
35
|
[]
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class MainDataCell < Decidim::ContentBlocks::ParticipatorySpaceMainDataCell
|
7
|
+
include ParticipatorySpaceContentBlocksHelper
|
8
|
+
include ParticipatoryProcessHelper
|
9
|
+
include Decidim::ComponentPathHelper
|
10
|
+
include ActiveLinkTo
|
11
|
+
|
12
|
+
delegate :short_description, :description, to: :resource
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def title_text
|
17
|
+
t("title", scope: "decidim.participatory_processes.participatory_processes.show")
|
18
|
+
end
|
19
|
+
|
20
|
+
def short_description_text
|
21
|
+
decidim_sanitize_editor_admin translated_attribute(short_description)
|
22
|
+
end
|
23
|
+
|
24
|
+
def description_text
|
25
|
+
decidim_sanitize_editor_admin translated_attribute(description)
|
26
|
+
end
|
27
|
+
|
28
|
+
def nav_items
|
29
|
+
process_nav_items(resource)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class MetadataCell < Decidim::ContentBlocks::ParticipatorySpaceMetadataCell
|
7
|
+
private
|
8
|
+
|
9
|
+
def metadata_items
|
10
|
+
%w(participatory_scope target participatory_structure area_name meta_scope local_area developer_group)
|
11
|
+
end
|
12
|
+
|
13
|
+
def space_presenter
|
14
|
+
ParticipatoryProcessPresenter
|
15
|
+
end
|
16
|
+
|
17
|
+
def translations_scope
|
18
|
+
"decidim.participatory_processes.participatory_processes.description"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class MetricsCell < Decidim::ContentBlocks::ParticipatorySpaceMetricsCell
|
7
|
+
include ParticipatorySpaceContentBlocksHelper
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def metrics
|
12
|
+
@metrics ||= ParticipatoryProcessMetricChartsPresenter.new(participatory_process: resource)
|
13
|
+
end
|
14
|
+
|
15
|
+
def scope
|
16
|
+
"participatory_process"
|
17
|
+
end
|
18
|
+
|
19
|
+
def show_all_path
|
20
|
+
decidim_participatory_processes.all_metrics_participatory_process_path(resource)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class ProcessesSettingsFormCell < Decidim::ViewModel
|
7
|
+
alias form model
|
8
|
+
|
9
|
+
def content_block
|
10
|
+
options[:content_block]
|
11
|
+
end
|
12
|
+
|
13
|
+
def include_default_filter_setting?
|
14
|
+
form.object.settings.attribute_names.include? "default_filter"
|
15
|
+
end
|
16
|
+
|
17
|
+
def default_filter_label
|
18
|
+
I18n.t("decidim.participatory_processes.admin.content_blocks.highlighted_processes.selection_criteria")
|
19
|
+
end
|
20
|
+
|
21
|
+
def default_filter_options
|
22
|
+
[[I18n.t("decidim.participatory_processes.admin.content_blocks.highlighted_processes.active"), "active"],
|
23
|
+
[I18n.t("decidim.participatory_processes.admin.content_blocks.highlighted_processes.all"), "all"]]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= cell "decidim/participatory_processes/processes", filtered_processes, total_count:, title: %>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module ContentBlocks
|
6
|
+
class RelatedProcessesCell < Decidim::ContentBlocks::BaseCell
|
7
|
+
def show
|
8
|
+
render if total_count.positive?
|
9
|
+
end
|
10
|
+
|
11
|
+
def related_processes
|
12
|
+
@related_processes ||=
|
13
|
+
resource
|
14
|
+
.linked_participatory_space_resources(:participatory_processes, link_name)
|
15
|
+
.published
|
16
|
+
.all
|
17
|
+
end
|
18
|
+
|
19
|
+
def filtered_processes
|
20
|
+
return related_processes unless limit?
|
21
|
+
|
22
|
+
related_processes.limit(limit)
|
23
|
+
end
|
24
|
+
|
25
|
+
def total_count
|
26
|
+
related_processes.size
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def link_name
|
32
|
+
resource.is_a?(Decidim::ParticipatoryProcess) ? "related_processes" : "included_participatory_processes"
|
33
|
+
end
|
34
|
+
|
35
|
+
def resource
|
36
|
+
options[:resource] || super
|
37
|
+
end
|
38
|
+
|
39
|
+
def limit
|
40
|
+
@limit ||= model.settings.try(:max_results)
|
41
|
+
end
|
42
|
+
|
43
|
+
def limit?
|
44
|
+
limit.to_i.positive?
|
45
|
+
end
|
46
|
+
|
47
|
+
def title
|
48
|
+
t("related_processes", scope: "decidim.participatory_processes.show")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|