decidim-admin 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/stylesheets/decidim/admin/_sidebar.scss +30 -1
- data/app/assets/stylesheets/decidim/admin/_tables.scss +3 -0
- data/app/assets/stylesheets/decidim/admin/application.scss +3 -0
- data/app/commands/decidim/admin/create_participatory_process.rb +4 -1
- data/app/commands/decidim/admin/create_participatory_process_admin.rb +26 -7
- data/app/commands/decidim/admin/create_participatory_process_group.rb +54 -0
- data/app/commands/decidim/admin/create_participatory_process_step.rb +0 -1
- data/app/commands/decidim/admin/destroy_participatory_process_step.rb +3 -1
- data/app/commands/decidim/admin/hide_resource.rb +37 -0
- data/app/commands/decidim/admin/reorder_participatory_process_steps.rb +1 -0
- data/app/commands/decidim/admin/unreport_resource.rb +33 -0
- data/app/commands/decidim/admin/update_participatory_process.rb +4 -2
- data/app/commands/decidim/admin/update_participatory_process_group.rb +57 -0
- data/app/commands/decidim/admin/update_participatory_process_step.rb +1 -2
- data/app/controllers/decidim/admin/application_controller.rb +4 -0
- data/app/controllers/decidim/admin/categories_controller.rb +1 -1
- data/app/controllers/decidim/admin/feature_permissions_controller.rb +2 -2
- data/{lib → app/controllers}/decidim/admin/features/base_controller.rb +0 -0
- data/app/controllers/decidim/admin/moderations_controller.rb +64 -0
- data/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
- data/app/controllers/decidim/admin/participatory_process_groups_controller.rb +86 -0
- data/app/controllers/decidim/admin/participatory_process_publications_controller.rb +1 -1
- data/app/controllers/decidim/admin/participatory_process_step_activations_controller.rb +1 -1
- data/app/controllers/decidim/admin/participatory_process_step_ordering_controller.rb +1 -1
- data/app/controllers/decidim/admin/participatory_process_steps_controller.rb +1 -1
- data/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +3 -3
- data/app/controllers/decidim/admin/participatory_processes_controller.rb +3 -2
- data/app/forms/decidim/admin/organization_form.rb +1 -0
- data/app/forms/decidim/admin/participatory_process_form.rb +12 -1
- data/app/forms/decidim/admin/participatory_process_group_form.rb +23 -0
- data/app/forms/decidim/admin/participatory_process_step_form.rb +0 -1
- data/app/forms/decidim/admin/participatory_process_user_role_form.rb +5 -1
- data/app/helpers/decidim/admin/application_helper.rb +1 -0
- data/app/helpers/decidim/admin/process_groups_for_select_helper.rb +20 -0
- data/app/helpers/decidim/admin/processes_for_select_helper.rb +22 -0
- data/app/models/decidim/admin/abilities/admin_user.rb +2 -0
- data/app/models/decidim/admin/abilities/participatory_process_admin.rb +4 -0
- data/app/models/decidim/admin/participatory_process_user_role.rb +1 -1
- data/app/queries/decidim/admin/process_admins.rb +43 -0
- data/app/views/decidim/admin/moderations/index.html.erb +65 -0
- data/app/views/decidim/admin/organization/_form.html.erb +4 -0
- data/app/views/decidim/admin/participatory_process_groups/_form.html.erb +17 -0
- data/app/views/decidim/admin/participatory_process_groups/edit.html.erb +13 -0
- data/app/views/decidim/admin/participatory_process_groups/index.html.erb +38 -0
- data/app/views/decidim/admin/participatory_process_groups/new.html.erb +11 -0
- data/app/views/decidim/admin/participatory_process_groups/show.html.erb +23 -0
- data/app/views/decidim/admin/participatory_process_steps/_form.html.erb +0 -4
- data/app/views/decidim/admin/participatory_process_steps/show.html.erb +4 -5
- data/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +27 -24
- data/app/views/decidim/admin/participatory_processes/_form.html.erb +10 -1
- data/app/views/decidim/admin/participatory_processes/show.html.erb +15 -1
- data/app/views/layouts/decidim/admin/_header.html.erb +1 -0
- data/app/views/layouts/decidim/admin/_language_chooser.html.erb +14 -0
- data/app/views/layouts/decidim/admin/_sidebar.html.erb +2 -0
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +5 -0
- data/config/i18n-tasks.yml +3 -1
- data/config/locales/ca.yml +83 -3
- data/config/locales/en.yml +81 -1
- data/config/locales/es.yml +81 -1
- data/config/locales/eu.yml +340 -1
- data/config/locales/fi.yml +464 -0
- data/config/routes.rb +8 -0
- data/db/seeds.rb +1 -1
- data/lib/decidim/admin/engine.rb +1 -0
- metadata +27 -15
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Decidim
|
3
|
+
module Admin
|
4
|
+
# This controller allows admins to manage moderations in a participatory process.
|
5
|
+
class ModerationsController < Admin::ApplicationController
|
6
|
+
include Concerns::ParticipatoryProcessAdmin
|
7
|
+
|
8
|
+
helper_method :moderations
|
9
|
+
|
10
|
+
def index
|
11
|
+
authorize! :read, Decidim::Moderation
|
12
|
+
end
|
13
|
+
|
14
|
+
def unreport
|
15
|
+
authorize! :unreport, reportable
|
16
|
+
|
17
|
+
Admin::UnreportResource.call(reportable) do
|
18
|
+
on(:ok) do
|
19
|
+
flash[:notice] = I18n.t("reportable.unreport.success", scope: "decidim.moderations.admin")
|
20
|
+
redirect_to decidim_admin.participatory_process_moderations_path
|
21
|
+
end
|
22
|
+
|
23
|
+
on(:invalid) do
|
24
|
+
flash.now[:alert] = I18n.t("reportable.unreport.invalid", scope: "decidim.moderations.admin")
|
25
|
+
redirect_to decidim_admin.participatory_process_moderations_path
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def hide
|
31
|
+
authorize! :hide, reportable
|
32
|
+
|
33
|
+
Admin::HideResource.call(reportable) do
|
34
|
+
on(:ok) do
|
35
|
+
flash[:notice] = I18n.t("reportable.hide.success", scope: "decidim.moderations.admin")
|
36
|
+
redirect_to decidim_admin.participatory_process_moderations_path
|
37
|
+
end
|
38
|
+
|
39
|
+
on(:invalid) do
|
40
|
+
flash.now[:alert] = I18n.t("reportable.hide.invalid", scope: "decidim.moderations.admin")
|
41
|
+
redirect_to decidim_admin.participatory_process_moderations_path
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def moderations
|
49
|
+
@moderations ||= begin
|
50
|
+
moderations = Decidim::Moderation.where(participatory_process: participatory_process)
|
51
|
+
moderations = if params[:hidden]
|
52
|
+
moderations.where.not(hidden_at: nil)
|
53
|
+
else
|
54
|
+
moderations.where(hidden_at: nil)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def reportable
|
60
|
+
@reportable ||= Decidim::Moderation.where(participatory_process: participatory_process).find(params[:id]).reportable
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_dependency "decidim/admin/application_controller"
|
3
|
+
|
4
|
+
module Decidim
|
5
|
+
module Admin
|
6
|
+
# Controller that allows managing participatory process groups.
|
7
|
+
#
|
8
|
+
class ParticipatoryProcessGroupsController < ApplicationController
|
9
|
+
helper_method :collection, :participatory_process_group
|
10
|
+
|
11
|
+
def index
|
12
|
+
authorize! :read, ParticipatoryProcessGroup
|
13
|
+
end
|
14
|
+
|
15
|
+
def show
|
16
|
+
authorize! :read, participatory_process_group
|
17
|
+
end
|
18
|
+
|
19
|
+
def new
|
20
|
+
authorize! :new, Decidim::ParticipatoryProcessGroup
|
21
|
+
@form = form(ParticipatoryProcessGroupForm).instance
|
22
|
+
end
|
23
|
+
|
24
|
+
def create
|
25
|
+
authorize! :new, Decidim::ParticipatoryProcessGroup
|
26
|
+
@form = form(ParticipatoryProcessGroupForm).from_params(params)
|
27
|
+
|
28
|
+
CreateParticipatoryProcessGroup.call(@form) do
|
29
|
+
on(:ok) do |participatory_process_group|
|
30
|
+
flash[:notice] = I18n.t("participatory_processes_group.create.success", scope: "decidim.admin")
|
31
|
+
redirect_to participatory_process_group_path(participatory_process_group)
|
32
|
+
end
|
33
|
+
|
34
|
+
on(:invalid) do
|
35
|
+
flash.now[:alert] = I18n.t("participatory_processes_group.create.error", scope: "decidim.admin")
|
36
|
+
render :new
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def edit
|
42
|
+
@participatory_process_group = collection.find(params[:id])
|
43
|
+
authorize! :update, @participatory_process_group
|
44
|
+
@form = form(ParticipatoryProcessGroupForm).from_model(@participatory_process_group)
|
45
|
+
end
|
46
|
+
|
47
|
+
def update
|
48
|
+
@participatory_process_group = collection.find(params[:id])
|
49
|
+
authorize! :update, @participatory_process_group
|
50
|
+
@form = form(ParticipatoryProcessGroupForm).from_params(params)
|
51
|
+
|
52
|
+
UpdateParticipatoryProcessGroup.call(@participatory_process_group, @form) do
|
53
|
+
on(:ok) do |participatory_process_group|
|
54
|
+
flash[:notice] = I18n.t("participatory_process_groups.update.success", scope: "decidim.admin")
|
55
|
+
redirect_to participatory_process_group_path(participatory_process_group)
|
56
|
+
end
|
57
|
+
|
58
|
+
on(:invalid) do
|
59
|
+
flash.now[:alert] = I18n.t("participatory_process_groups.update.error", scope: "decidim.admin")
|
60
|
+
render :edit
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def destroy
|
66
|
+
@participatory_process_group = collection.find(params[:id])
|
67
|
+
authorize! :destroy, @participatory_process_group
|
68
|
+
@participatory_process_group.destroy!
|
69
|
+
|
70
|
+
flash[:notice] = I18n.t("participatory_process_groups.destroy.success", scope: "decidim.admin")
|
71
|
+
|
72
|
+
redirect_to participatory_process_groups_path
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def participatory_process_group
|
78
|
+
@participatory_process_group ||= Decidim::ParticipatoryProcessGroup.find(params[:id])
|
79
|
+
end
|
80
|
+
|
81
|
+
def collection
|
82
|
+
@collection ||= current_user.organization.participatory_process_groups
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
|
|
3
3
|
|
4
4
|
module Decidim
|
5
5
|
module Admin
|
6
|
-
# Controller that allows managing
|
6
|
+
# Controller that allows managing participatory process publications.
|
7
7
|
#
|
8
8
|
class ParticipatoryProcessPublicationsController < ApplicationController
|
9
9
|
include Concerns::ParticipatoryProcessAdmin
|
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
|
|
3
3
|
|
4
4
|
module Decidim
|
5
5
|
module Admin
|
6
|
-
# Controller that allows managing
|
6
|
+
# Controller that allows managing participatory process step activations.
|
7
7
|
#
|
8
8
|
class ParticipatoryProcessStepActivationsController < ApplicationController
|
9
9
|
include Concerns::ParticipatoryProcessAdmin
|
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
|
|
3
3
|
|
4
4
|
module Decidim
|
5
5
|
module Admin
|
6
|
-
# Controller that allows managing
|
6
|
+
# Controller that allows managing participatory process step ordering.
|
7
7
|
#
|
8
8
|
class ParticipatoryProcessStepOrderingController < ApplicationController
|
9
9
|
include Concerns::ParticipatoryProcessAdmin
|
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
|
|
3
3
|
|
4
4
|
module Decidim
|
5
5
|
module Admin
|
6
|
-
# Controller that allows managing
|
6
|
+
# Controller that allows managing participatory process steps.
|
7
7
|
#
|
8
8
|
class ParticipatoryProcessStepsController < ApplicationController
|
9
9
|
include Concerns::ParticipatoryProcessAdmin
|
@@ -3,7 +3,7 @@ require_dependency "decidim/admin/application_controller"
|
|
3
3
|
|
4
4
|
module Decidim
|
5
5
|
module Admin
|
6
|
-
# Controller that allows managing
|
6
|
+
# Controller that allows managing participatory process user roles.
|
7
7
|
#
|
8
8
|
class ParticipatoryProcessUserRolesController < ApplicationController
|
9
9
|
include Concerns::ParticipatoryProcessAdmin
|
@@ -18,13 +18,13 @@ module Decidim
|
|
18
18
|
authorize! :create, Decidim::Admin::ParticipatoryProcessUserRole
|
19
19
|
@form = form(ParticipatoryProcessUserRoleForm).from_params(params)
|
20
20
|
|
21
|
-
CreateParticipatoryProcessAdmin.call(@form, participatory_process) do
|
21
|
+
CreateParticipatoryProcessAdmin.call(@form, current_user, participatory_process) do
|
22
22
|
on(:ok) do
|
23
23
|
flash[:notice] = I18n.t("participatory_process_user_roles.create.success", scope: "decidim.admin")
|
24
24
|
end
|
25
25
|
|
26
26
|
on(:invalid) do
|
27
|
-
flash
|
27
|
+
flash[:alert] = I18n.t("participatory_process_user_roles.create.error", scope: "decidim.admin")
|
28
28
|
end
|
29
29
|
redirect_to participatory_process_user_roles_path(participatory_process)
|
30
30
|
end
|
@@ -3,11 +3,12 @@ require_dependency "decidim/admin/application_controller"
|
|
3
3
|
|
4
4
|
module Decidim
|
5
5
|
module Admin
|
6
|
-
# Controller that allows managing
|
6
|
+
# Controller that allows managing participatory processes.
|
7
7
|
#
|
8
8
|
class ParticipatoryProcessesController < ApplicationController
|
9
9
|
helper_method :participatory_process
|
10
|
-
|
10
|
+
helper Decidim::OrganizationScopesHelper
|
11
|
+
layout "decidim/admin/participatory_process", only: [:show, :edit, :update]
|
11
12
|
|
12
13
|
def index
|
13
14
|
authorize! :index, Decidim::ParticipatoryProcess
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
translatable_attribute :subtitle, String
|
12
12
|
translatable_attribute :description, String
|
13
13
|
translatable_attribute :short_description, String
|
14
|
-
translatable_attribute :
|
14
|
+
translatable_attribute :meta_scope, String
|
15
15
|
translatable_attribute :developer_group, String
|
16
16
|
translatable_attribute :local_area, String
|
17
17
|
translatable_attribute :target, String
|
@@ -24,17 +24,28 @@ module Decidim
|
|
24
24
|
attribute :slug, String
|
25
25
|
attribute :hashtag, String
|
26
26
|
attribute :promoted, Boolean
|
27
|
+
attribute :scope_id, Integer
|
27
28
|
attribute :hero_image
|
28
29
|
attribute :banner_image
|
30
|
+
attribute :participatory_process_group_id, Integer
|
29
31
|
|
30
32
|
validates :slug, presence: true
|
31
33
|
validates :title, :subtitle, :description, :short_description, translatable_presence: true
|
34
|
+
validates :scope, presence: true, if: proc { |object| object.scope_id.present? }
|
32
35
|
|
33
36
|
validate :slug, :slug_uniqueness
|
34
37
|
|
35
38
|
validates :hero_image, file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } }, file_content_type: { allow: ["image/jpeg", "image/png"] }
|
36
39
|
validates :banner_image, file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } }, file_content_type: { allow: ["image/jpeg", "image/png"] }
|
37
40
|
|
41
|
+
def scope
|
42
|
+
@scope ||= current_organization.scopes.where(id: scope_id).first
|
43
|
+
end
|
44
|
+
|
45
|
+
def participatory_process_group
|
46
|
+
Decidim::ParticipatoryProcessGroup.where(id: participatory_process_group_id).first
|
47
|
+
end
|
48
|
+
|
38
49
|
private
|
39
50
|
|
40
51
|
def slug_uniqueness
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Decidim
|
3
|
+
module Admin
|
4
|
+
# A form object used to create participatory process groups from the admin
|
5
|
+
# dashboard.
|
6
|
+
#
|
7
|
+
class ParticipatoryProcessGroupForm < Form
|
8
|
+
include TranslatableAttributes
|
9
|
+
|
10
|
+
translatable_attribute :name, String
|
11
|
+
translatable_attribute :description, String
|
12
|
+
attribute :participatory_process_ids, Array[Integer]
|
13
|
+
|
14
|
+
mimic :participatory_process_group
|
15
|
+
|
16
|
+
attribute :hero_image
|
17
|
+
|
18
|
+
validates :name, :description, translatable_presence: true
|
19
|
+
|
20
|
+
validates :hero_image, file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } }, file_content_type: { allow: ["image/jpeg", "image/png"] }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -7,9 +7,13 @@ module Decidim
|
|
7
7
|
class ParticipatoryProcessUserRoleForm < Form
|
8
8
|
mimic :participatory_process_user_role
|
9
9
|
|
10
|
+
attribute :name, String
|
10
11
|
attribute :email, String
|
12
|
+
attribute :role, String
|
11
13
|
|
12
|
-
validates :email, presence: true
|
14
|
+
validates :email, :role, presence: true
|
15
|
+
validates :name, presence: true
|
16
|
+
validates :role, inclusion: { in: ParticipatoryProcessUserRole::ROLES }
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Decidim
|
3
|
+
module Admin
|
4
|
+
# This class contains helpers needed to format ParticipatoryProcessGroups
|
5
|
+
# in order to use them in select forms.
|
6
|
+
#
|
7
|
+
module ProcessGroupsForSelectHelper
|
8
|
+
# Public: A formatted collection of ParticipatoryProcessGroups to be used
|
9
|
+
# in forms.
|
10
|
+
#
|
11
|
+
# Returns an Array.
|
12
|
+
def process_groups_for_select
|
13
|
+
@process_groups_for_select ||=
|
14
|
+
current_organization.participatory_process_groups.map do |group|
|
15
|
+
[translated_attribute(group.name), group.id]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Decidim
|
3
|
+
module Admin
|
4
|
+
# This class contains helpers needed to format ParticipatoryProcesses
|
5
|
+
# in order to use them in select forms.
|
6
|
+
#
|
7
|
+
module ProcessesForSelectHelper
|
8
|
+
# Public: A formatted collection of ParticipatoryProcesses to be used
|
9
|
+
# in forms.
|
10
|
+
#
|
11
|
+
# Returns an Array.
|
12
|
+
def processes_for_select
|
13
|
+
@processes_for_select ||= current_organization.participatory_processes.map do |process|
|
14
|
+
[
|
15
|
+
translated_attribute(process.title),
|
16
|
+
process.id
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -11,6 +11,7 @@ module Decidim
|
|
11
11
|
return unless user && user.role?(:admin)
|
12
12
|
|
13
13
|
can :manage, ParticipatoryProcess
|
14
|
+
can :manage, ParticipatoryProcessGroup
|
14
15
|
can :manage, ParticipatoryProcessStep
|
15
16
|
can :manage, Category
|
16
17
|
can :manage, ParticipatoryProcessUserRole
|
@@ -27,6 +28,7 @@ module Decidim
|
|
27
28
|
can :manage, Feature
|
28
29
|
can :read, :admin_dashboard
|
29
30
|
can :manage, :admin_users
|
31
|
+
can :manage, Moderation
|
30
32
|
can :manage, Attachment
|
31
33
|
can :manage, Scope
|
32
34
|
can :manage, Newsletter
|
@@ -33,6 +33,10 @@ module Decidim
|
|
33
33
|
role.user != user
|
34
34
|
end
|
35
35
|
|
36
|
+
can :manage, Moderation do |moderation|
|
37
|
+
participatory_processes.include?(moderation.participatory_process)
|
38
|
+
end
|
39
|
+
|
36
40
|
can :manage, Attachment do |attachment|
|
37
41
|
participatory_processes.include?(attachment.attached_to)
|
38
42
|
end
|
@@ -7,7 +7,7 @@ module Decidim
|
|
7
7
|
belongs_to :user, foreign_key: "decidim_user_id", class_name: Decidim::User
|
8
8
|
belongs_to :participatory_process, foreign_key: "decidim_participatory_process_id", class_name: Decidim::ParticipatoryProcess
|
9
9
|
|
10
|
-
ROLES = %w(admin).freeze
|
10
|
+
ROLES = %w(admin collaborator).freeze
|
11
11
|
validates :role, inclusion: { in: ROLES }, uniqueness: { scope: [:user, :participatory_process] }
|
12
12
|
end
|
13
13
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Decidim
|
3
|
+
module Admin
|
4
|
+
# A class used to find the admins for a participatory process including
|
5
|
+
# organization admins.
|
6
|
+
class ProcessAdmins < Rectify::Query
|
7
|
+
# Syntactic sugar to initialize the class and return the queried objects.
|
8
|
+
#
|
9
|
+
# process - a process that needs to find its process admins
|
10
|
+
def self.for(process)
|
11
|
+
new(process).query
|
12
|
+
end
|
13
|
+
|
14
|
+
# Initializes the class.
|
15
|
+
#
|
16
|
+
# process - a process that needs to find its process admins
|
17
|
+
def initialize(process)
|
18
|
+
@process = process
|
19
|
+
end
|
20
|
+
|
21
|
+
# Finds organization admins and the users with role admin for the given process.
|
22
|
+
#
|
23
|
+
# Returns an ActiveRecord::Relation.
|
24
|
+
def query
|
25
|
+
Decidim::User.where(id: organization_admins).or(Decidim::User.where(id: process_admins))
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
attr_reader :process
|
31
|
+
|
32
|
+
def organization_admins
|
33
|
+
process.organization.admins
|
34
|
+
end
|
35
|
+
|
36
|
+
def process_admins
|
37
|
+
Decidim::Admin::ParticipatoryProcessUserRole
|
38
|
+
.where(participatory_process: process, role: :admin)
|
39
|
+
.pluck(:decidim_user_id)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|