decidim-participatory_processes 0.26.10 → 0.27.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -4
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/filters.erb +3 -3
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes/show.erb +1 -0
- data/app/cells/decidim/participatory_process_groups/content_blocks/highlighted_participatory_processes_cell.rb +6 -11
- data/app/cells/decidim/participatory_process_groups/content_blocks/title/show.erb +1 -1
- data/app/cells/decidim/participatory_process_groups/content_blocks/title_cell.rb +1 -8
- data/app/cells/decidim/participatory_process_groups/process_filters_cell.rb +15 -18
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/show.erb +1 -1
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes/single_process.erb +1 -1
- data/app/cells/decidim/participatory_processes/content_blocks/highlighted_processes_cell.rb +1 -1
- data/app/cells/decidim/participatory_processes/filtered_participatory_processes_cell.rb +11 -7
- data/app/cells/decidim/participatory_processes/process_filters/show.erb +13 -9
- data/app/cells/decidim/participatory_processes/process_filters/type_filter.erb +17 -0
- data/app/cells/decidim/participatory_processes/process_filters_cell.rb +49 -21
- data/app/cells/decidim/participatory_processes/process_group_s/image.erb +1 -1
- data/app/cells/decidim/participatory_processes/process_s/image.erb +1 -1
- 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 +11 -8
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb +2 -1
- data/app/commands/decidim/participatory_processes/admin/create_participatory_process_group.rb +1 -1
- 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 +47 -0
- data/app/commands/decidim/participatory_processes/admin/destroy_participatory_process_admin.rb +1 -6
- 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 +49 -0
- data/app/commands/decidim/participatory_processes/admin/import_participatory_process.rb +9 -6
- data/app/commands/decidim/participatory_processes/admin/notify_role_assigned_to_participatory_process.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/publish_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/unpublish_participatory_process.rb +1 -1
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process.rb +2 -1
- data/app/commands/decidim/participatory_processes/admin/update_participatory_process_group.rb +1 -1
- 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 +49 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_copies_controller.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_groups_controller.rb +3 -2
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_types_controller.rb +98 -0
- data/app/controllers/decidim/participatory_processes/admin/participatory_processes_controller.rb +1 -1
- data/app/controllers/decidim/participatory_processes/admin/reminders_controller.rb +14 -0
- data/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb +8 -7
- data/app/events/decidim/participatory_process_role_assigned_event.rb +1 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_form.rb +16 -0
- data/app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb +5 -7
- data/app/forms/decidim/participatory_processes/admin/participatory_process_type_form.rb +20 -0
- data/app/helpers/decidim/participatory_processes/participatory_process_helper.rb +2 -2
- data/app/models/decidim/participatory_process.rb +35 -6
- data/app/models/decidim/participatory_process_type.rb +27 -0
- data/app/permissions/decidim/participatory_processes/permissions.rb +14 -0
- data/app/presenters/decidim/log/value_types/participatory_process_type_presenter.rb +27 -0
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_presenter.rb +3 -2
- data/app/presenters/decidim/participatory_processes/admin_log/participatory_process_type_presenter.rb +38 -0
- data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb +4 -1
- data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb +5 -1
- data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb +4 -1
- 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/queries/decidim/participatory_processes/filtered_participatory_process_groups.rb +3 -5
- data/app/queries/decidim/participatory_processes/filtered_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/group_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/group_published_participatory_processes.rb +2 -2
- data/app/queries/decidim/participatory_processes/highlighted_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/organization_participatory_process_groups.rb +1 -1
- data/app/queries/decidim/participatory_processes/organization_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_process_groups.rb +2 -2
- data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_processes.rb +2 -2
- data/app/queries/decidim/participatory_processes/organization_promoted_participatory_process_groups.rb +1 -1
- data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb +2 -2
- data/app/queries/decidim/participatory_processes/participatory_processes_by_group.rb +1 -1
- data/app/queries/decidim/participatory_processes/prioritized_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/promoted_participatory_process_groups.rb +1 -1
- data/app/queries/decidim/participatory_processes/promoted_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/published_participatory_processes.rb +1 -1
- data/app/queries/decidim/participatory_processes/stats_followers_count.rb +2 -2
- data/app/queries/decidim/participatory_processes/stats_participants_count.rb +2 -14
- data/app/queries/decidim/participatory_processes/visible_participatory_process_groups.rb +1 -1
- data/app/queries/decidim/participatory_processes/visible_participatory_processes.rb +1 -1
- data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +4 -15
- data/app/views/decidim/participatory_process_steps/_participatory_process_step.html.erb +1 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb +2 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/_form.html.erb +1 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb +0 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/index.html.erb +0 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb +0 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/_form.html.erb +1 -1
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/_form.html.erb +11 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/edit.html.erb +9 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/index.html.erb +60 -0
- data/app/views/decidim/participatory_processes/admin/participatory_process_types/new.html.erb +9 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/_form.html.erb +11 -1
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +1 -0
- data/app/views/decidim/participatory_processes/admin/participatory_processes/new.html.erb +1 -0
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.html.erb +3 -1
- data/app/views/decidim/participatory_processes/participatory_process_groups/show.js.erb +9 -6
- data/app/views/decidim/participatory_processes/participatory_process_steps/index.html.erb +1 -0
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process.html.erb +1 -1
- data/app/views/decidim/participatory_processes/participatory_processes/_promoted_process_group.html.erb +1 -1
- data/app/views/decidim/participatory_processes/participatory_processes/index.html.erb +3 -1
- data/app/views/decidim/participatory_processes/participatory_processes/index.js.erb +3 -1
- data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +2 -2
- data/app/views/layouts/decidim/_process_header.html.erb +1 -1
- data/app/views/layouts/decidim/admin/participatory_process_type.html.erb +15 -0
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +10 -13
- data/config/locales/bg.yml +1 -6
- data/config/locales/ca.yml +51 -16
- data/config/locales/cs.yml +62 -27
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +20 -32
- data/config/locales/el.yml +9 -69
- data/config/locales/en.yml +42 -8
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +46 -11
- data/config/locales/es-PY.yml +46 -11
- data/config/locales/es.yml +47 -12
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +121 -136
- data/config/locales/fi-plain.yml +48 -13
- data/config/locales/fi.yml +49 -14
- data/config/locales/fr-CA.yml +49 -14
- data/config/locales/fr.yml +51 -16
- data/config/locales/ga-IE.yml +1 -2
- data/config/locales/gl.yml +14 -10
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +60 -136
- data/config/locales/id-ID.yml +10 -13
- data/config/locales/is-IS.yml +16 -6
- data/config/locales/it.yml +20 -15
- data/config/locales/ja.yml +53 -18
- data/config/locales/ko.yml +1 -0
- data/config/locales/lb.yml +8 -10
- data/config/locales/lt.yml +1 -505
- data/config/locales/lv.yml +10 -19
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +16 -11
- data/config/locales/no.yml +36 -15
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +19 -8
- data/config/locales/pt-BR.yml +14 -11
- data/config/locales/pt.yml +15 -10
- data/config/locales/ro-RO.yml +11 -15
- data/config/locales/ru.yml +10 -10
- data/config/locales/si-LK.yml +1 -0
- data/config/locales/sk.yml +11 -19
- data/config/locales/sl.yml +1 -3
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +1 -0
- data/config/locales/sv.yml +29 -13
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +15 -10
- data/config/locales/uk.yml +10 -10
- data/config/locales/val-ES.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +10 -18
- data/config/locales/zh-TW.yml +1 -477
- data/db/migrate/20211125202008_create_decidim_participatory_process_types.rb +22 -0
- data/lib/decidim/api/participatory_process_type_type.rb +17 -0
- data/lib/decidim/participatory_processes/admin_engine.rb +12 -1
- data/lib/decidim/participatory_processes/api.rb +1 -0
- data/lib/decidim/participatory_processes/participatory_space.rb +17 -8
- data/lib/decidim/participatory_processes/query_extensions.rb +22 -0
- data/lib/decidim/participatory_processes/test/factories.rb +17 -4
- data/lib/decidim/participatory_processes/version.rb +1 -1
- metadata +31 -24
- data/app/services/decidim/participatory_processes/participatory_process_search.rb +0 -27
- data/config/environment.rb +0 -3
- data/config/locales/fa-IR.yml +0 -1
- data/config/locales/gn-PY.yml +0 -1
- data/config/locales/ka-GE.yml +0 -1
- data/config/locales/kaa.yml +0 -6
- data/config/locales/lo-LA.yml +0 -1
- data/config/locales/oc-FR.yml +0 -1
- data/config/locales/sq-AL.yml +0 -1
- data/config/locales/th-TH.yml +0 -1
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ParticipatoryProcesses
|
5
|
+
module AdminLog
|
6
|
+
# This class holds the logic to present a
|
7
|
+
# `Decidim::ParticipatoryProcessType`
|
8
|
+
# for the `AdminLog` log.
|
9
|
+
#
|
10
|
+
# Usage should be automatic and you shouldn't need to call this class
|
11
|
+
# directly, but here's an example:
|
12
|
+
#
|
13
|
+
# action_log = Decidim::ActionLog.last
|
14
|
+
# view_helpers # => this comes from the views
|
15
|
+
# ParticipatoryProcessTypePresenter.new(action_log, view_helpers).present
|
16
|
+
class ParticipatoryProcessTypePresenter < Decidim::Log::BasePresenter
|
17
|
+
private
|
18
|
+
|
19
|
+
def diff_fields_mapping
|
20
|
+
{ title: :i18n }
|
21
|
+
end
|
22
|
+
|
23
|
+
def action_string
|
24
|
+
case action
|
25
|
+
when "create", "update"
|
26
|
+
"decidim.admin_log.participatory_process_type.#{action}"
|
27
|
+
else
|
28
|
+
super
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def i18n_labels_scope
|
33
|
+
"activemodel.attributes.participatory_process_type"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/app/presenters/decidim/participatory_processes/participatory_process_group_stats_presenter.rb
CHANGED
@@ -4,9 +4,12 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# A presenter to render statistics in the homepage.
|
6
6
|
class ParticipatoryProcessGroupStatsPresenter < Decidim::StatsPresenter
|
7
|
-
attribute :participatory_process_group, Decidim::ParticipatoryProcessGroup
|
8
7
|
include Decidim::IconHelper
|
9
8
|
|
9
|
+
def participatory_process_group
|
10
|
+
__getobj__.fetch(:participatory_process_group)
|
11
|
+
end
|
12
|
+
|
10
13
|
# Public: returns a collection of stats (Hash) for the participatory
|
11
14
|
# process group landing page.
|
12
15
|
def collection
|
data/app/presenters/decidim/participatory_processes/participatory_process_metric_charts_presenter.rb
CHANGED
@@ -4,7 +4,11 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# A presenter to render metrics in ParticipatoryProcesses statistics page
|
6
6
|
class ParticipatoryProcessMetricChartsPresenter < Decidim::MetricChartsPresenter
|
7
|
-
|
7
|
+
delegate :hidden_field_tag, :link_to, :capture, to: :view_context
|
8
|
+
|
9
|
+
def participatory_process
|
10
|
+
__getobj__.fetch(:participatory_process)
|
11
|
+
end
|
8
12
|
|
9
13
|
def params
|
10
14
|
capture do
|
data/app/presenters/decidim/participatory_processes/participatory_process_stats_presenter.rb
CHANGED
@@ -4,9 +4,12 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# A presenter to render statistics in the homepage.
|
6
6
|
class ParticipatoryProcessStatsPresenter < Decidim::StatsPresenter
|
7
|
-
attribute :participatory_process, Decidim::ParticipatoryProcess
|
8
7
|
include Decidim::IconHelper
|
9
8
|
|
9
|
+
def participatory_process
|
10
|
+
__getobj__.fetch(:participatory_process)
|
11
|
+
end
|
12
|
+
|
10
13
|
# Public: returns a collection of stats (Hash) for the Process Home.
|
11
14
|
def collection
|
12
15
|
highlighted_stats = process_participants_stats
|
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
module Admin
|
6
6
|
# A class used to find the admins for a participatory process including
|
7
7
|
# organization admins.
|
8
|
-
class AdminUsers <
|
8
|
+
class AdminUsers < Decidim::Query
|
9
9
|
# Syntactic sugar to initialize the class and return the queried objects.
|
10
10
|
#
|
11
11
|
# process - a process that needs to find its process admins
|
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
module Admin
|
6
6
|
# A class used to find the users that can moderate the participatory
|
7
7
|
# process.
|
8
|
-
class Moderators <
|
8
|
+
class Moderators < Decidim::Query
|
9
9
|
# Syntactic sugar to initialize the class and return the queried objects.
|
10
10
|
#
|
11
11
|
# process - a process that needs to find its moderators
|
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
# This query class filters participatory processes groups given a filter name.
|
6
6
|
# The filter is applied checking the start and end dates of the processes in
|
7
7
|
# the group.
|
8
|
-
class FilteredParticipatoryProcessGroups <
|
8
|
+
class FilteredParticipatoryProcessGroups < Decidim::Query
|
9
9
|
def initialize(filter = "active")
|
10
10
|
@filter = filter
|
11
11
|
end
|
@@ -15,11 +15,9 @@ module Decidim
|
|
15
15
|
|
16
16
|
processes = case @filter
|
17
17
|
when "past"
|
18
|
-
processes.
|
18
|
+
processes.where("decidim_participatory_processes.end_date <= ?", Date.current)
|
19
19
|
when "upcoming"
|
20
|
-
processes.
|
21
|
-
when "active"
|
22
|
-
processes.active
|
20
|
+
processes.where("decidim_participatory_processes.start_date > ?", Date.current)
|
23
21
|
else
|
24
22
|
processes
|
25
23
|
end
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters participatory processes given a filter name.
|
6
6
|
# It uses the start and end dates to select the correct processes.
|
7
|
-
class FilteredParticipatoryProcesses <
|
7
|
+
class FilteredParticipatoryProcesses < Decidim::Query
|
8
8
|
def initialize(filter = "active")
|
9
9
|
@filter = filter
|
10
10
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters all processes of a participatory process group
|
6
|
-
class GroupParticipatoryProcesses <
|
6
|
+
class GroupParticipatoryProcesses < Decidim::Query
|
7
7
|
def initialize(group)
|
8
8
|
@group = group
|
9
9
|
end
|
@@ -3,14 +3,14 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters published processes of a participatory process group
|
6
|
-
class GroupPublishedParticipatoryProcesses <
|
6
|
+
class GroupPublishedParticipatoryProcesses < Decidim::Query
|
7
7
|
def initialize(group, user = nil)
|
8
8
|
@group = group
|
9
9
|
@user = user
|
10
10
|
end
|
11
11
|
|
12
12
|
def query
|
13
|
-
|
13
|
+
Decidim::Query.merge(
|
14
14
|
GroupParticipatoryProcesses.new(@group),
|
15
15
|
VisibleParticipatoryProcesses.new(@user),
|
16
16
|
PublishedParticipatoryProcesses.new
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query selects some prioritized processes.
|
6
|
-
class HighlightedParticipatoryProcesses <
|
6
|
+
class HighlightedParticipatoryProcesses < Decidim::Query
|
7
7
|
def query
|
8
8
|
PrioritizedParticipatoryProcesses.new.query.limit(8)
|
9
9
|
end
|
data/app/queries/decidim/participatory_processes/organization_participatory_process_groups.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters participatory process groups given an organization.
|
6
|
-
class OrganizationParticipatoryProcessGroups <
|
6
|
+
class OrganizationParticipatoryProcessGroups < Decidim::Query
|
7
7
|
def initialize(organization)
|
8
8
|
@organization = organization
|
9
9
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters all processes given an organization.
|
6
|
-
class OrganizationParticipatoryProcesses <
|
6
|
+
class OrganizationParticipatoryProcesses < Decidim::Query
|
7
7
|
def initialize(organization)
|
8
8
|
@organization = organization
|
9
9
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters participatory process groups given an organization and a filter.
|
6
|
-
class OrganizationPrioritizedParticipatoryProcessGroups <
|
6
|
+
class OrganizationPrioritizedParticipatoryProcessGroups < Decidim::Query
|
7
7
|
def initialize(organization, filter = "active", user = nil)
|
8
8
|
@organization = organization
|
9
9
|
@filter = filter
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def query
|
14
|
-
|
14
|
+
Decidim::Query.merge(
|
15
15
|
OrganizationParticipatoryProcessGroups.new(@organization),
|
16
16
|
FilteredParticipatoryProcessGroups.new(@filter),
|
17
17
|
VisibleParticipatoryProcessGroups.new(@user)
|
data/app/queries/decidim/participatory_processes/organization_prioritized_participatory_processes.rb
CHANGED
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters public processes given an organization and a
|
6
6
|
# filter in a meaningful prioritized order.
|
7
|
-
class OrganizationPrioritizedParticipatoryProcesses <
|
7
|
+
class OrganizationPrioritizedParticipatoryProcesses < Decidim::Query
|
8
8
|
def initialize(organization, filter = "active", user = nil)
|
9
9
|
@organization = organization
|
10
10
|
@filter = filter
|
@@ -12,7 +12,7 @@ module Decidim
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def query
|
15
|
-
|
15
|
+
Decidim::Query.merge(
|
16
16
|
OrganizationPublishedParticipatoryProcesses.new(@organization, @user),
|
17
17
|
PrioritizedParticipatoryProcesses.new,
|
18
18
|
FilteredParticipatoryProcesses.new(@filter)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters participatory process groups given an organization.
|
6
|
-
class OrganizationPromotedParticipatoryProcessGroups <
|
6
|
+
class OrganizationPromotedParticipatoryProcessGroups < Decidim::Query
|
7
7
|
def initialize(organization)
|
8
8
|
@organization = organization
|
9
9
|
end
|
data/app/queries/decidim/participatory_processes/organization_published_participatory_processes.rb
CHANGED
@@ -3,14 +3,14 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters published processes given an organization.
|
6
|
-
class OrganizationPublishedParticipatoryProcesses <
|
6
|
+
class OrganizationPublishedParticipatoryProcesses < Decidim::Query
|
7
7
|
def initialize(organization, user = nil)
|
8
8
|
@organization = organization
|
9
9
|
@user = user
|
10
10
|
end
|
11
11
|
|
12
12
|
def query
|
13
|
-
|
13
|
+
Decidim::Query.merge(
|
14
14
|
OrganizationParticipatoryProcesses.new(@organization),
|
15
15
|
VisibleParticipatoryProcesses.new(@user),
|
16
16
|
PublishedParticipatoryProcesses.new
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# A class used to find the ParticipatoryProcesses from a ProcessGroup.
|
6
|
-
class ParticipatoryProcessesByGroup <
|
6
|
+
class ParticipatoryProcessesByGroup < Decidim::Query
|
7
7
|
# Syntactic sugar to initialize the class and return the queried objects.
|
8
8
|
def self.for(process_group)
|
9
9
|
new(process_group).query
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query orders processes by importance, prioritizing promoted processes
|
6
6
|
# first, and closest to finalization date second.
|
7
|
-
class PrioritizedParticipatoryProcesses <
|
7
|
+
class PrioritizedParticipatoryProcesses < Decidim::Query
|
8
8
|
def query
|
9
9
|
Decidim::ParticipatoryProcess.order(promoted: :desc).includes(:active_step).order("decidim_participatory_process_steps.end_date ASC")
|
10
10
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query filters participatory process groups so only promoted ones are returned.
|
6
|
-
class PromotedParticipatoryProcessGroups <
|
6
|
+
class PromotedParticipatoryProcessGroups < Decidim::Query
|
7
7
|
def query
|
8
8
|
Decidim::ParticipatoryProcessGroup.promoted
|
9
9
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query filters processes so only promoted ones are returned.
|
6
|
-
class PromotedParticipatoryProcesses <
|
6
|
+
class PromotedParticipatoryProcesses < Decidim::Query
|
7
7
|
def query
|
8
8
|
Decidim::ParticipatoryProcess.promoted
|
9
9
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query filters published processes only.
|
6
|
-
class PublishedParticipatoryProcesses <
|
6
|
+
class PublishedParticipatoryProcesses < Decidim::Query
|
7
7
|
def query
|
8
8
|
Decidim::ParticipatoryProcess.published
|
9
9
|
end
|
@@ -4,10 +4,10 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This class counts all Followers of a participatory process or
|
6
6
|
# participatory processes belonging to a participatory process group
|
7
|
-
class StatsFollowersCount <
|
7
|
+
class StatsFollowersCount < Decidim::Query
|
8
8
|
def self.for(participatory_space)
|
9
9
|
return 0 unless participatory_space.is_a?(Decidim::ParticipatoryProcess) ||
|
10
|
-
participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?
|
10
|
+
(participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?)
|
11
11
|
|
12
12
|
new(participatory_space).query
|
13
13
|
end
|
@@ -4,10 +4,10 @@ module Decidim
|
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This class counts unique Participants on a participatory process or
|
6
6
|
# participatory processes belonging to a participatory process group
|
7
|
-
class StatsParticipantsCount <
|
7
|
+
class StatsParticipantsCount < Decidim::Query
|
8
8
|
def self.for(participatory_space)
|
9
9
|
return 0 unless participatory_space.is_a?(Decidim::ParticipatoryProcess) ||
|
10
|
-
participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?
|
10
|
+
(participatory_space.is_a?(Decidim::ParticipatoryProcessGroup) && participatory_space.participatory_processes.exists?)
|
11
11
|
|
12
12
|
new(participatory_space).query
|
13
13
|
end
|
@@ -42,8 +42,6 @@ module Decidim
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def comments_query
|
45
|
-
return [] unless Decidim.module_installed?(:comments)
|
46
|
-
|
47
45
|
Decidim::Comments::Comment
|
48
46
|
.where(decidim_participatory_space_type: Decidim::ParticipatoryProcess.class.name)
|
49
47
|
.where(decidim_participatory_space_id: participatory_space_ids)
|
@@ -52,8 +50,6 @@ module Decidim
|
|
52
50
|
end
|
53
51
|
|
54
52
|
def debates_query
|
55
|
-
return [] unless Decidim.module_installed?(:debates)
|
56
|
-
|
57
53
|
Decidim::Debates::Debate
|
58
54
|
.where(
|
59
55
|
component: space_components,
|
@@ -65,8 +61,6 @@ module Decidim
|
|
65
61
|
end
|
66
62
|
|
67
63
|
def meetings_query
|
68
|
-
return [] unless Decidim.module_installed?(:meetings)
|
69
|
-
|
70
64
|
meetings = Decidim::Meetings::Meeting.where(component: space_components).not_hidden
|
71
65
|
registrations = Decidim::Meetings::Registration.where(decidim_meeting_id: meetings).distinct.pluck(:decidim_user_id)
|
72
66
|
organizers = meetings.where(decidim_author_type: Decidim::UserBaseEntity.name).distinct.pluck(:decidim_author_id)
|
@@ -82,8 +76,6 @@ module Decidim
|
|
82
76
|
end
|
83
77
|
|
84
78
|
def proposals_query
|
85
|
-
return [] unless Decidim.module_installed?(:proposals)
|
86
|
-
|
87
79
|
Decidim::Coauthorship
|
88
80
|
.where(
|
89
81
|
coauthorable: proposals_components,
|
@@ -94,8 +86,6 @@ module Decidim
|
|
94
86
|
end
|
95
87
|
|
96
88
|
def proposal_supports_query
|
97
|
-
return [] unless Decidim.module_installed?(:proposals)
|
98
|
-
|
99
89
|
Decidim::Proposals::ProposalVote
|
100
90
|
.where(
|
101
91
|
proposal: proposals_components
|
@@ -106,8 +96,6 @@ module Decidim
|
|
106
96
|
end
|
107
97
|
|
108
98
|
def project_supports_query
|
109
|
-
return [] unless Decidim.module_installed?(:budgets)
|
110
|
-
|
111
99
|
Decidim::Budgets::Order.joins(budget: [:component])
|
112
100
|
.where(budget: {
|
113
101
|
decidim_components: { id: space_components.pluck(:id) }
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters participatory processes given a current_user.
|
6
|
-
class VisibleParticipatoryProcessGroups <
|
6
|
+
class VisibleParticipatoryProcessGroups < Decidim::Query
|
7
7
|
def initialize(current_user)
|
8
8
|
@current_user = current_user
|
9
9
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module ParticipatoryProcesses
|
5
5
|
# This query class filters participatory processes given a current_user.
|
6
|
-
class VisibleParticipatoryProcesses <
|
6
|
+
class VisibleParticipatoryProcesses < Decidim::Query
|
7
7
|
def initialize(current_user)
|
8
8
|
@current_user = current_user
|
9
9
|
end
|
@@ -44,23 +44,17 @@ module Decidim
|
|
44
44
|
scopes_enabled: attributes["scopes_enabled"],
|
45
45
|
participatory_process_group: import_process_group(attributes["participatory_process_group"])
|
46
46
|
)
|
47
|
-
@imported_process.
|
48
|
-
@imported_process.
|
49
|
-
|
47
|
+
@imported_process.remote_hero_image_url = attributes["remote_hero_image_url"] if remote_file_exists?(attributes["remote_hero_image_url"])
|
48
|
+
@imported_process.remote_banner_image_url = attributes["remote_banner_image_url"] if remote_file_exists?(attributes["remote_banner_image_url"])
|
50
49
|
@imported_process.save!
|
51
50
|
@imported_process
|
52
51
|
end
|
53
52
|
end
|
54
53
|
|
55
54
|
def import_process_group(attributes)
|
56
|
-
title = compact_translation(attributes["title"] || attributes["name"])
|
57
|
-
description = compact_translation(attributes["description"])
|
58
|
-
|
59
|
-
return if title.blank? && description.blank?
|
60
|
-
|
61
55
|
Decidim.traceability.perform_action!("create", ParticipatoryProcessGroup, @user) do
|
62
56
|
group = ParticipatoryProcessGroup.find_or_initialize_by(
|
63
|
-
title: attributes["title"]
|
57
|
+
title: attributes["title"],
|
64
58
|
description: attributes["description"],
|
65
59
|
organization: @organization
|
66
60
|
)
|
@@ -122,7 +116,7 @@ module Decidim
|
|
122
116
|
attachments["files"].map do |file|
|
123
117
|
next unless remote_file_exists?(file["remote_file_url"])
|
124
118
|
|
125
|
-
file_tmp = URI.
|
119
|
+
file_tmp = URI.parse(file["remote_file_url"]).open
|
126
120
|
|
127
121
|
Decidim.traceability.perform_action!("create", Attachment, @user) do
|
128
122
|
attachment = Attachment.new(
|
@@ -157,11 +151,6 @@ module Decidim
|
|
157
151
|
|
158
152
|
private
|
159
153
|
|
160
|
-
def compact_translation(translation)
|
161
|
-
translation["machine_translations"] = translation["machine_translations"].reject { |_k, v| v.blank? } if translation["machine_translations"].present?
|
162
|
-
translation.reject { |_k, v| v.blank? }
|
163
|
-
end
|
164
|
-
|
165
154
|
def create_attachment_collection(attributes)
|
166
155
|
return unless attributes.compact.any?
|
167
156
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<h3 class="timeline__title heading4"><%= translated_attribute(participatory_process_step.title) %></h3>
|
11
11
|
</div>
|
12
12
|
<div class="timeline__content">
|
13
|
-
<%=
|
13
|
+
<%= translated_attribute(participatory_process_step.description).html_safe %>
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
</li>
|
data/app/views/decidim/participatory_processes/admin/participatory_process_copies/new.html.erb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
<% add_decidim_page_title(t("participatory_process_copies.new.
|
1
|
+
<% add_decidim_page_title(t("participatory_process_copies.new.select", scope: "decidim.admin")) %>
|
2
|
+
|
2
3
|
<%= decidim_form_for(@form, url: participatory_process_copies_path(current_participatory_process), method: :post, html: { class: "form copy_participatory_process" }) do |f| %>
|
3
4
|
<%= render partial: "form", object: f, locals: { title: t("participatory_process_copies.new.title", scope: "decidim.admin"), select: t("participatory_process_copies.new.select", scope: "decidim.admin") } %>
|
4
5
|
|
data/app/views/decidim/participatory_processes/admin/participatory_process_groups/edit.html.erb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
<% add_decidim_page_title t("participatory_process_groups.edit.title", scope: "decidim.admin") %>
|
2
1
|
<%= decidim_form_for(@form, html: { class: "form edit_participatory_process_group" }) do |f| %>
|
3
2
|
<h2 class="process-title-summary">
|
4
3
|
<%= t "participatory_process_groups.edit.title", scope: "decidim.admin" %>
|
data/app/views/decidim/participatory_processes/admin/participatory_process_groups/new.html.erb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
<% add_decidim_page_title(t("participatory_process_groups.new.title", scope: "decidim.admin")) %>
|
2
1
|
<%= decidim_form_for(@form, html: { class: "form new_participatory_process_group" }) do |f| %>
|
3
2
|
<h2 class="process-title-summary"><%= t "participatory_process_groups.new.title", scope: "decidim.admin" %></h2>
|
4
3
|
<%= render partial: "form", object: f %>
|
data/app/views/decidim/participatory_processes/admin/participatory_process_types/_form.html.erb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title"><%= t("participatory_process_types.form.title", scope: "decidim.admin") %></h2>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<div class="card-section">
|
7
|
+
<div class="row column">
|
8
|
+
<%= form.translated :text_field, :title, autofocus: true %>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
</div>
|
data/app/views/decidim/participatory_processes/admin/participatory_process_types/edit.html.erb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= decidim_form_for(@form, html: { class: "form edit_participatory_process_type" }) do |f| %>
|
2
|
+
<h2 class="process-title-summary">
|
3
|
+
<%= t("participatory_process_types.edit.title", scope: "decidim.admin") %>
|
4
|
+
</h2>
|
5
|
+
<%= render partial: "form", object: f %>
|
6
|
+
<div class="button--double form-general-submit">
|
7
|
+
<%= f.submit t("participatory_process_types.edit.update", scope: "decidim.admin"), class: "button" %>
|
8
|
+
</div>
|
9
|
+
<% end %>
|
data/app/views/decidim/participatory_processes/admin/participatory_process_types/index.html.erb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
<div class="card" id="participatory-process-types">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title">
|
4
|
+
<%= t("titles.participatory_process_types", scope: "decidim.admin") %>
|
5
|
+
<%= link_to(
|
6
|
+
t("actions.new_process_type", scope: "decidim.admin"),
|
7
|
+
[:new, :participatory_process_type],
|
8
|
+
class: "button tiny button--title"
|
9
|
+
) if allowed_to? :create, :participatory_process_type %>
|
10
|
+
</h2>
|
11
|
+
</div>
|
12
|
+
<div class="card-section">
|
13
|
+
<div class="table-scroll">
|
14
|
+
<table class="table-list">
|
15
|
+
<thead>
|
16
|
+
<tr>
|
17
|
+
<th><%= t("models.participatory_process_type.fields.title", scope: "decidim.admin") %></th>
|
18
|
+
<th><%= t("models.participatory_process_type.fields.created_at", scope: "decidim.admin") %></th>
|
19
|
+
<th></th>
|
20
|
+
</tr>
|
21
|
+
</thead>
|
22
|
+
<tbody>
|
23
|
+
<% collection.each do |participatory_process_type| %>
|
24
|
+
<tr>
|
25
|
+
<td>
|
26
|
+
<% if allowed_to?(:update, :participatory_process_type, participatory_process_type: participatory_process_type) %>
|
27
|
+
<%= link_to(
|
28
|
+
translated_attribute(participatory_process_type.title),
|
29
|
+
edit_participatory_process_type_path(participatory_process_type)
|
30
|
+
) %>
|
31
|
+
<% else %>
|
32
|
+
<%= translated_attribute(participatory_process_type.title) %></td>
|
33
|
+
<% end %>
|
34
|
+
<td><%= l(participatory_process_type.created_at, format: :short) %></td>
|
35
|
+
<td class="table-list__actions">
|
36
|
+
<% if allowed_to?(:update, :participatory_process_type, participatory_process_type: participatory_process_type) %>
|
37
|
+
<%= icon_link_to(
|
38
|
+
"pencil",
|
39
|
+
edit_participatory_process_type_path(participatory_process_type),
|
40
|
+
t("actions.edit", scope: "decidim.admin"),
|
41
|
+
class: "action-icon--new"
|
42
|
+
) %>
|
43
|
+
<% end %>
|
44
|
+
<% if allowed_to?(:destroy, :participatory_process_type, participatory_process_type: participatory_process_type) %>
|
45
|
+
<%= icon_link_to(
|
46
|
+
"circle-x",
|
47
|
+
participatory_process_type_path(participatory_process_type),
|
48
|
+
t("actions.destroy", scope: "decidim.admin"),
|
49
|
+
class: "action-icon--remove",
|
50
|
+
method: :delete,
|
51
|
+
data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }
|
52
|
+
) %>
|
53
|
+
<% end %>
|
54
|
+
</td>
|
55
|
+
<% end %>
|
56
|
+
</tbody>
|
57
|
+
</table>
|
58
|
+
</div>
|
59
|
+
</div>
|
60
|
+
</div>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= decidim_form_for(@form, html: { class: "form new_participatory_process_type" }) do |f| %>
|
2
|
+
<h2 class="process-title-summary">
|
3
|
+
<%= t("participatory_process_types.new.title", scope: "decidim.admin") %>
|
4
|
+
</h2>
|
5
|
+
<%= render partial: "form", object: f %>
|
6
|
+
<div class="button--double form-general-submit">
|
7
|
+
<%= f.submit t("participatory_process_types.new.create", scope: "decidim.admin"), class: "button" %>
|
8
|
+
</div>
|
9
|
+
<% end %>
|
@@ -34,7 +34,7 @@
|
|
34
34
|
</div>
|
35
35
|
|
36
36
|
<div class="row column">
|
37
|
-
<%= form.translated :editor, :description %>
|
37
|
+
<%= form.translated :editor, :description, toolbar: :full, lines: 25 %>
|
38
38
|
</div>
|
39
39
|
|
40
40
|
<div class="row column">
|
@@ -188,6 +188,16 @@
|
|
188
188
|
<div class="row column">
|
189
189
|
<%= form.check_box :show_metrics %>
|
190
190
|
</div>
|
191
|
+
|
192
|
+
<% if @form.participatory_process_types_for_select.present? %>
|
193
|
+
<div class="row column">
|
194
|
+
<%= form.select(
|
195
|
+
:participatory_process_type_id,
|
196
|
+
@form.participatory_process_types_for_select,
|
197
|
+
include_blank: t(".select_participatory_process_type")
|
198
|
+
) %>
|
199
|
+
</div>
|
200
|
+
<% end %>
|
191
201
|
</div>
|
192
202
|
</div>
|
193
203
|
|