decidim-department_admin 0.7.2 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/decorators/decidim/admin/newsletters_controller_decorator.rb +1 -1
- data/app/decorators/decidim/admin/users_controller_decorator.rb +1 -1
- data/app/decorators/decidim/area_decorator.rb +2 -2
- data/app/decorators/decidim/assemblies/admin/assemblies_controller_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies/admin/assemblies_helper_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies/create_assembly_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies/parent_assemblies_for_select_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies/permissions_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies/update_assembly_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies_decorator.rb +1 -1
- data/app/decorators/decidim/assemblies_with_user_role_decorator.rb +1 -1
- data/app/decorators/decidim/conference_form_decorator.rb +1 -1
- data/app/decorators/decidim/conferences/admin/conferences_controller_decorator.rb +1 -1
- data/app/decorators/decidim/conferences/create_conference_decorator.rb +2 -1
- data/app/decorators/decidim/conferences/permissions_decorator.rb +1 -1
- data/app/decorators/decidim/conferences/update_conference_decorator.rb +1 -1
- data/app/decorators/decidim/conferences_decorator.rb +1 -1
- data/app/decorators/decidim/conferences_with_user_role_decorator.rb +1 -1
- data/app/decorators/decidim/decidim_form_helper_decorator.rb +1 -1
- data/app/decorators/decidim/invite_user_decorator.rb +1 -1
- data/app/decorators/decidim/invite_user_form_decorator.rb +1 -1
- data/app/decorators/decidim/newsletter_decorator.rb +1 -1
- data/app/decorators/decidim/newsletters_helper_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_process_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_process_group_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_processes/admin/participatory_processes_controller_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_processes/create_participatory_process_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_processes/permissions_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_processes/update_participatory_process_decorator.rb +1 -1
- data/app/decorators/decidim/participatory_processes_with_user_role_decorator.rb +1 -1
- data/app/decorators/decidim/user_decorator.rb +8 -8
- data/app/decorators/lib/decidim/participatory_space_resourceable_decorator.rb +3 -3
- data/app/helpers/decidim/department_admin/application_helper.rb +1 -1
- data/app/packs/stylesheets/decidim/admin/department_admin.scss +2 -0
- data/app/views/decidim/admin/users/_filters.html.erb +30 -26
- data/app/views/decidim/admin/users/_form.html.erb +21 -15
- data/app/views/decidim/admin/users/index.html.erb +77 -79
- data/app/views/decidim/admin/users/show.html.erb +9 -10
- data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +130 -138
- data/app/views/decidim/conferences/admin/conferences/_form.html.erb +33 -26
- data/app/views/decidim/conferences/admin/conferences/index.html.erb +73 -80
- data/app/views/decidim/participatory_processes/admin/participatory_processes/index.html.erb +108 -151
- data/lib/decidim/department_admin/version.rb +1 -1
- metadata +15 -55
- data/spec/commands/decidim/admin/deliver_newsletter_spec.rb +0 -175
- data/spec/commands/decidim/invite_user_spec.rb +0 -42
- data/spec/controllers/decidim/admin/users_controller_spec.rb +0 -119
- data/spec/factories.rb +0 -4
- data/spec/features/check_overrides_spec.rb +0 -11
- data/spec/i18n_spec.rb +0 -29
- data/spec/models/decidim/area_spec.rb +0 -23
- data/spec/permissions/decidim/department_admin/department_admin_permissions_spec.rb +0 -120
- data/spec/queries/parent_assemblies_for_select_spec.rb +0 -52
- data/spec/spec_helper.rb +0 -47
- data/spec/system/admin_explores_processes_spec.rb +0 -53
- data/spec/system/admin_invite_department_admin_spec.rb +0 -118
- data/spec/system/department_admin_manages_newsletters_spec.rb +0 -237
- data/spec/system/department_admin_should_be_able_to_access_admin_dashboard_spec.rb +0 -75
- data/spec/system/department_admin_should_be_able_to_manage_assemblies_spec.rb +0 -99
- data/spec/system/department_admin_should_be_able_to_manage_conferences_spec.rb +0 -74
- data/spec/system/department_admin_should_be_able_to_manage_processes_spec.rb +0 -117
- data/spec/system/department_admin_should_be_able_to_see_only_assemblies_from_her_area_spec.rb +0 -46
- data/spec/system/department_admin_should_be_able_to_see_only_newsletters_from_her_area_spec.rb +0 -53
- data/spec/system/department_admin_should_be_able_to_see_only_processes_from_her_area_spec.rb +0 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ecc31ae9e41149508bba0d66faec60a5f49874502d1a60440094a792acffcf1
|
4
|
+
data.tar.gz: 66805a1eb552135f18a6e60eb801755b2712ac769e9d4209bcbd20bb390456c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ac8a0f7d0d1d43f7a2e61044a676dc8c0ef005bb7749742d0e577e4895da8de449ca4d167174bf9ffc9ac26a44d05a36f5f16f3129b030b1d4ebd4a9a3d735e
|
7
|
+
data.tar.gz: 2d40480e18d898b50445dd540d2c90fa36a440413b7c6a772a8048af3149153d94acd555d5124d59caf7b3932159869cef54b2ea2b34ba92cdcce818e5aa0b56
|
@@ -29,7 +29,7 @@ module Decidim::AreaDecorator
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def has_department_admins?
|
32
|
-
Decidim::User.where(organization:
|
32
|
+
Decidim::User.where(organization:).any? do |u|
|
33
33
|
u.areas.exists?(id)
|
34
34
|
end
|
35
35
|
end
|
@@ -41,4 +41,4 @@ module Decidim::AreaDecorator
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
|
44
|
+
Decidim::AreaDecorator.decorate
|
@@ -26,6 +26,7 @@ module Decidim::Conferences::CreateConferenceDecorator
|
|
26
26
|
slogan: form.slogan,
|
27
27
|
slug: form.slug,
|
28
28
|
hashtag: form.hashtag,
|
29
|
+
weight: form.weight,
|
29
30
|
description: form.description,
|
30
31
|
short_description: form.short_description,
|
31
32
|
objectives: form.objectives,
|
@@ -48,4 +49,4 @@ module Decidim::Conferences::CreateConferenceDecorator
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
51
|
-
|
52
|
+
Decidim::Conferences::CreateConferenceDecorator.decorate
|
@@ -22,4 +22,4 @@ module Decidim::ParticipatoryProcesses::Admin::ParticipatoryProcessesControllerD
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
Decidim::ParticipatoryProcesses::Admin::ParticipatoryProcessesControllerDecorator.decorate
|
@@ -42,18 +42,18 @@ module Decidim::UserDecorator
|
|
42
42
|
|
43
43
|
def self.space_admins(organization)
|
44
44
|
if Decidim::DepartmentAdmin.conferences_defined?
|
45
|
-
Decidim::User.where(organization:
|
46
|
-
.where('"decidim_users"."id" in (select "decidim_participatory_process_user_roles"."decidim_user_id" from "decidim_participatory_process_user_roles")' \
|
47
|
-
'
|
48
|
-
'
|
45
|
+
Decidim::User.where(organization:)
|
46
|
+
.where('"decidim_users"."id" in (select "decidim_participatory_process_user_roles"."decidim_user_id" from "decidim_participatory_process_user_roles") ' \
|
47
|
+
'or "decidim_users"."id" in (select "decidim_assembly_user_roles"."decidim_user_id" from "decidim_assembly_user_roles") ' \
|
48
|
+
'or "decidim_users"."id" in (select "decidim_conference_user_roles"."decidim_user_id" from "decidim_conference_user_roles")')
|
49
49
|
else
|
50
|
-
Decidim::User.where(organization:
|
51
|
-
.where('"decidim_users"."id" in (select "decidim_participatory_process_user_roles"."decidim_user_id" from "decidim_participatory_process_user_roles")' \
|
52
|
-
'
|
50
|
+
Decidim::User.where(organization:)
|
51
|
+
.where('"decidim_users"."id" in (select "decidim_participatory_process_user_roles"."decidim_user_id" from "decidim_participatory_process_user_roles") ' \
|
52
|
+
'or "decidim_users"."id" in (select "decidim_assembly_user_roles"."decidim_user_id" from "decidim_assembly_user_roles")')
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
|
59
|
+
Decidim::UserDecorator.decorate
|
@@ -27,10 +27,10 @@ module Lib::Decidim::ParticipatorySpaceResourceableDecorator
|
|
27
27
|
end
|
28
28
|
|
29
29
|
require "decidim/assembly"
|
30
|
-
Decidim::Assembly.prepend(
|
30
|
+
Decidim::Assembly.prepend(Lib::Decidim::ParticipatorySpaceResourceableDecorator)
|
31
31
|
require "decidim/participatory_process"
|
32
|
-
Decidim::ParticipatoryProcess.prepend(
|
32
|
+
Decidim::ParticipatoryProcess.prepend(Lib::Decidim::ParticipatorySpaceResourceableDecorator)
|
33
33
|
if Decidim::DepartmentAdmin.conferences_defined?
|
34
34
|
require "decidim/conference"
|
35
|
-
Decidim::Conference.prepend(
|
35
|
+
Decidim::Conference.prepend(Lib::Decidim::ParticipatorySpaceResourceableDecorator)
|
36
36
|
end
|
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
# rubocop: disable Rails/HelperInstanceVariable
|
11
11
|
def roles_with_title(user)
|
12
12
|
roles_with_title = user.roles.collect { |role| [role, ""] }
|
13
|
-
# if user had
|
13
|
+
# if user had participatory processes then add role of process admin
|
14
14
|
user_participatory_processes_filtered(user, current_locale, @search_text).each do |participatory_process|
|
15
15
|
roles_with_title << ["process_admin", translated_attribute(participatory_process.title)]
|
16
16
|
end
|
@@ -1,28 +1,32 @@
|
|
1
|
-
|
2
|
-
<div class='
|
3
|
-
|
4
|
-
|
5
|
-
<
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
</a>
|
13
|
-
<ul class='menu is-dropdown-submenu'>
|
14
|
-
<% Decidim::User::Roles.all.map do |role| %>
|
15
|
-
<li><%= link_to t("models.user.fields.roles.#{role}", scope: 'decidim.admin'), url_for(role: role, q: ransack_params) %></li>
|
1
|
+
<% if controller_name == "users" %>
|
2
|
+
<div class='department-admin-filter filter row'>
|
3
|
+
<div>
|
4
|
+
<span class='dropdown-menu-inverted_label'><%= t('.filter_by') %> :</span>
|
5
|
+
<ul class="dropdown menu" data-dropdown-menu data-close-on-click-inside="false">
|
6
|
+
<li class='is-dropdown-submenu-parent'>
|
7
|
+
<a href='#'>
|
8
|
+
<% if @role.present? %>
|
9
|
+
<%= t("models.user.fields.roles.#{@role}", scope: 'decidim.admin') %>
|
10
|
+
<% else %>
|
11
|
+
<%= t('.filter.all') %>
|
16
12
|
<% end %>
|
17
|
-
|
18
|
-
<
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
13
|
+
</a>
|
14
|
+
<ul class='menu is-dropdown-submenu'>
|
15
|
+
<% Decidim::User::Roles.all.map do |role| %>
|
16
|
+
<li><%= link_to t("models.user.fields.roles.#{role}", scope: 'decidim.admin'), url_for(role: role, q: ransack_params) %></li>
|
17
|
+
<% end %>
|
18
|
+
<li><%= link_to t('models.user.fields.roles.space_admin', scope: 'decidim.admin'), url_for(role: 'space_admin', q: ransack_params) %></li>
|
19
|
+
<li><%= link_to t('.filter.all'), url_for(q: ransack_params) %></li>
|
20
|
+
</ul>
|
21
|
+
</li>
|
22
|
+
</ul>
|
23
|
+
<div class="process-or-admins">
|
24
|
+
<%= t('models.user.fields.search_question', scope: 'decidim.admin') %>
|
25
|
+
<input type='radio' id='processes_filter' name='filter_search' value='by_process_name' <%= @by_process_name ? "checked" : "" %> style='margin-left: 20px'>
|
26
|
+
<label for='processes_filter'><%= t('models.user.fields.search_field_processes', scope: 'decidim.admin') %></label>
|
27
|
+
<input type='radio' id='query_filter' name='filter_search' value='query' <%= params[:filter_search].blank? || params[:filter_search] == "query" ? "checked" : "" %> >
|
28
|
+
<label for='query_filter'><%= t('models.user.fields.search_field_admins', scope: 'decidim.admin') %></label>
|
29
|
+
</div>
|
30
|
+
</div>
|
27
31
|
</div>
|
28
|
-
|
32
|
+
<% end %>
|
@@ -1,21 +1,27 @@
|
|
1
|
-
<div class="
|
2
|
-
|
3
|
-
|
1
|
+
<div class="form__wrapper">
|
2
|
+
<div class="card pt-4">
|
3
|
+
<div class="card-section">
|
4
|
+
<div class="row column">
|
5
|
+
<%= form.text_field :name, label: t(".name") %>
|
6
|
+
</div>
|
4
7
|
|
5
|
-
<div class="row column">
|
6
|
-
|
7
|
-
</div>
|
8
|
+
<div class="row column">
|
9
|
+
<%= form.email_field :email, label: t(".email") %>
|
10
|
+
</div>
|
8
11
|
|
9
|
-
<div class="row column">
|
10
|
-
|
11
|
-
</div>
|
12
|
+
<div class="row column">
|
13
|
+
<%= form.select :role, @form.available_roles_for_select, label: t(".role") %>
|
14
|
+
</div>
|
12
15
|
|
13
|
-
<div id="area-block" class="row column">
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
<div id="area-block" class="row column">
|
17
|
+
<%= form.select :area_id,
|
18
|
+
@form.available_areas_for_select,
|
19
|
+
{ label: t(".area") },
|
20
|
+
{ disabled: current_user.roles.include?('department_admin') }
|
21
|
+
%>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
19
25
|
</div>
|
20
26
|
|
21
27
|
<%= javascript_tag do %>
|
@@ -1,93 +1,91 @@
|
|
1
1
|
<% add_decidim_page_title(t("decidim.admin.titles.users")) %>
|
2
2
|
<div class="card">
|
3
|
-
<div class="
|
4
|
-
<
|
3
|
+
<div class="item_show__header">
|
4
|
+
<h1 class="item_show__header-title">
|
5
5
|
<%= t "decidim.admin.titles.users" %>
|
6
6
|
<% if allowed_to? :create, :admin_user %>
|
7
|
-
<%= link_to t("actions.user.new", scope: "decidim.admin"), [:new, :user], class: "button
|
7
|
+
<%= link_to t("actions.user.new", scope: "decidim.admin"), [:new, :user], class: "button button__sm button__secondary" %>
|
8
8
|
<% end %>
|
9
|
-
</
|
9
|
+
</h1>
|
10
10
|
</div>
|
11
11
|
<%= admin_filter_selector %>
|
12
|
-
<div class="
|
13
|
-
<
|
14
|
-
<
|
15
|
-
<
|
16
|
-
<
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
<%
|
31
|
-
<%
|
32
|
-
|
33
|
-
<
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
<% if user
|
71
|
-
|
72
|
-
<%= icon_link_to "eye", user_path(user.id), t("actions.preview", scope: "decidim.admin"), class: "action-icon--preview" %>
|
73
|
-
<% end %>
|
12
|
+
<div class="table-scroll">
|
13
|
+
<table class="table-list">
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
<th><%= sort_link(query, :role, t("models.user.fields.role", scope: "decidim.admin"), default_order: :desc) %></th>
|
17
|
+
<th><%= sort_link(query, :name, t("models.user.fields.name", scope: "decidim.admin"), default_order: :desc) %></th>
|
18
|
+
<th><%= sort_link(query, :email, t("models.user.fields.email", scope: "decidim.admin"), default_order: :desc) %></th>
|
19
|
+
<th><%= sort_link(query, :department, t("models.user.fields.department", scope: "decidim.admin"), default_order: :desc) %></th>
|
20
|
+
<th><%= sort_link(query, :spaces, t("models.user.fields.spaces", scope: "decidim.admin"), default_order: :desc) %></th>
|
21
|
+
<th><%= sort_link(query, :invitation_sent_at, t("models.user.fields.invitation_sent_at", scope: "decidim.admin"), default_order: :desc) %></th>
|
22
|
+
<th><%= sort_link(query, :invitation_accepted_at, t("models.user.fields.invitation_accepted_at", scope: "decidim.admin"), default_order: :desc) %></th>
|
23
|
+
<th><%= sort_link(query, :last_sign_in_at, t("models.user.fields.last_sign_in_at", scope: "decidim.admin"), default_order: :desc) %></th>
|
24
|
+
<th><%= sort_link(query, :created_at, t("models.user.fields.created_at", scope: "decidim.admin"), default_order: :desc) %></th>
|
25
|
+
<th></th>
|
26
|
+
</tr>
|
27
|
+
</thead>
|
28
|
+
<tbody>
|
29
|
+
<% @users.each do |user| %>
|
30
|
+
<% roles_with_title(user).each do |role_and_title| %>
|
31
|
+
<% if @role.blank? || (@role == role_and_title[0] || @role == 'space_admin' && (role_and_title[0] == 'process_admin' || role_and_title[0] == 'assembly_admin' || role_and_title[0] == 'conference_admin')) %>
|
32
|
+
<tr data-user-id="<%= user.id %>">
|
33
|
+
<td>
|
34
|
+
<% if role_and_title.nil? || role_and_title[0].empty? %>
|
35
|
+
<%= t("models.user.fields.roles.#{user.active_role}", scope: "decidim.admin") %>
|
36
|
+
<% else %>
|
37
|
+
<%= t("models.user.fields.roles.#{role_and_title[0] }", scope: "decidim.admin") %>
|
38
|
+
<% end %>
|
39
|
+
</td>
|
40
|
+
<td><%= user.name %></td>
|
41
|
+
<td><%= user.email %></td>
|
42
|
+
<td>
|
43
|
+
<% if user.department_admin? %>
|
44
|
+
<%= translated_attribute(user.areas.first&.name) %>
|
45
|
+
<% end %>
|
46
|
+
</td>
|
47
|
+
<td>
|
48
|
+
<% if !role_and_title.nil? && !role_and_title[1].empty? %>
|
49
|
+
<%= role_and_title[1] %>
|
50
|
+
<% end %>
|
51
|
+
</td>
|
52
|
+
<td>
|
53
|
+
<% if user.invitation_sent_at %>
|
54
|
+
<%= l user.invitation_sent_at, format: :short %>
|
55
|
+
<% end %>
|
56
|
+
</td>
|
57
|
+
<td>
|
58
|
+
<% if user.invitation_accepted_at %>
|
59
|
+
<%= l user.invitation_accepted_at, format: :short %>
|
60
|
+
<% end %>
|
61
|
+
</td>
|
62
|
+
<td>
|
63
|
+
<% if user.last_sign_in_at %>
|
64
|
+
<%= l user.last_sign_in_at, format: :short %>
|
65
|
+
<% end %>
|
66
|
+
</td>
|
67
|
+
<td><%= l user.created_at, format: :short %></td>
|
68
|
+
<td class="table-list__actions">
|
69
|
+
<% if user.participatory_processes.size > 0 || user.assemblies.size > 0 || (Decidim::DepartmentAdmin.conferences_defined? && user.conferences.size > 0) %>
|
70
|
+
<% if allowed_to?(:preview, :user, user: user) %>
|
71
|
+
<%= icon_link_to "eye-line", user_path(user.id), t("actions.preview", scope: "decidim.admin"), class: "action-icon--preview" %>
|
74
72
|
<% end %>
|
73
|
+
<% end %>
|
75
74
|
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
<% if allowed_to?(:invite, :admin_user, user: user) && user.invited_to_sign_up? %>
|
76
|
+
<%= icon_link_to "refresh-line", [:resend_invitation, user], t("actions.resend_invitation", scope: "decidim.admin"), class: "resend-invitation", method: :post %>
|
77
|
+
<% end %>
|
79
78
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
<% end %>
|
79
|
+
<% if allowed_to? :destroy, :admin_user, user: user %>
|
80
|
+
<%= icon_link_to "delete-bin-line", user, t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
|
81
|
+
<% end %>
|
82
|
+
</td>
|
83
|
+
</tr>
|
86
84
|
<% end %>
|
87
85
|
<% end %>
|
88
|
-
|
89
|
-
</
|
90
|
-
|
91
|
-
|
86
|
+
<% end %>
|
87
|
+
</tbody>
|
88
|
+
</table>
|
89
|
+
<%= paginate @users, theme: "decidim" %>
|
92
90
|
</div>
|
93
91
|
</div>
|