decidim-admin 0.3.2 → 0.4.0
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/app/assets/stylesheets/decidim/admin/extra/_label-required.scss +3 -0
- data/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +57 -1
- data/app/commands/decidim/admin/create_participatory_process_admin.rb +28 -7
- data/app/commands/decidim/admin/create_participatory_process_step.rb +2 -1
- data/app/commands/decidim/admin/destroy_participatory_process_step.rb +5 -2
- data/app/commands/decidim/admin/update_feature.rb +1 -0
- data/app/commands/decidim/admin/update_organization.rb +10 -5
- data/app/commands/decidim/admin/update_participatory_process.rb +4 -2
- data/app/controllers/decidim/admin/application_controller.rb +2 -0
- data/app/controllers/decidim/admin/concerns/has_attachments.rb +10 -1
- data/app/controllers/decidim/admin/concerns/participatory_process_admin.rb +0 -5
- data/app/controllers/decidim/admin/features/base_controller.rb +0 -1
- data/app/controllers/decidim/admin/moderations_controller.rb +7 -4
- data/app/controllers/decidim/admin/organization_controller.rb +9 -3
- data/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +17 -0
- data/app/controllers/decidim/admin/participatory_processes_controller.rb +11 -3
- data/app/forms/decidim/admin/feature_form.rb +6 -0
- data/app/forms/decidim/admin/organization_form.rb +5 -0
- data/app/forms/decidim/admin/participatory_process_copy_form.rb +2 -3
- data/app/forms/decidim/admin/participatory_process_form.rb +2 -0
- data/app/forms/decidim/admin/static_page_form.rb +6 -0
- data/app/helpers/decidim/admin/menu_helper.rb +1 -1
- data/app/jobs/decidim/admin/newsletter_job.rb +9 -5
- data/app/views/decidim/admin/attachments/_form.html.erb +1 -12
- data/app/views/decidim/admin/features/_feature.html.erb +2 -2
- data/app/views/decidim/admin/features/_form.html.erb +18 -0
- data/app/views/decidim/admin/moderations/_report.html.erb +2 -2
- data/app/views/decidim/admin/organization/_form.html.erb +5 -35
- data/app/views/decidim/admin/participatory_process_groups/_form.html.erb +1 -1
- data/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +16 -0
- data/app/views/decidim/admin/participatory_processes/_form.html.erb +2 -14
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +26 -19
- data/app/views/layouts/decidim/admin/participatory_process.html.erb +2 -2
- data/config/i18n-tasks.yml +2 -0
- data/config/locales/ca.yml +9 -5
- data/config/locales/en.yml +9 -5
- data/config/locales/es.yml +11 -5
- data/config/locales/eu.yml +0 -5
- data/config/locales/fr.yml +18 -23
- data/config/locales/it.yml +0 -5
- data/config/routes.rb +5 -3
- data/lib/decidim/admin/test/manage_attachments_examples.rb +1 -2
- metadata +7 -7
- data/app/assets/stylesheets/decidim/admin/extra/_language-chooser.scss +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47c26318821b198a5abef8cc9514114d9be1a543
|
4
|
+
data.tar.gz: b78c4f9d445ee587ffc20fad6cdd935884f8ae2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbb45517bed3f266030d3ac5ece8adc8cd387040bf34def83bc72bebde4eb6457d989ac6d591a7d42fc08264251b40a2d626a0f03c868ab6ef3af0f7b9680c20
|
7
|
+
data.tar.gz: 0e26714cb55d3f073cf0dbeb58584d2413016b2fbb9edd49fcf861bd9e0d2737f73a252334c2b1f853fb8c4c2b1457d9f6fe49824d05958eabc6b8b5b1d98b0c
|
@@ -2,4 +2,60 @@
|
|
2
2
|
a.logo {
|
3
3
|
color: #fff;
|
4
4
|
}
|
5
|
-
|
5
|
+
@include breakpoint(smallmedium down){
|
6
|
+
border-top: 2.125rem solid darken($dark-gray, 15%);
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
.tool-bar{
|
11
|
+
text-align: right;
|
12
|
+
position: absolute;
|
13
|
+
right: 2rem;
|
14
|
+
vertical-align: middle;
|
15
|
+
@include breakpoint(smallmedium down){
|
16
|
+
position: initial;
|
17
|
+
}
|
18
|
+
.user-login{
|
19
|
+
vertical-align: middle;
|
20
|
+
position: initial;
|
21
|
+
text-align: left;
|
22
|
+
display: inline-block;
|
23
|
+
margin-top: 0px;
|
24
|
+
@include breakpoint(smallmedium down){
|
25
|
+
position: absolute;
|
26
|
+
right: 2rem;
|
27
|
+
margin-top: -1.2rem;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
.language-choose{
|
31
|
+
position: initial;
|
32
|
+
vertical-align: middle;
|
33
|
+
text-align: left;
|
34
|
+
display: inline-block;
|
35
|
+
vertical-align: middle;
|
36
|
+
.is-dropdown-submenu-parent a{
|
37
|
+
color: #fff;
|
38
|
+
&:after{
|
39
|
+
border-color: #fff transparent transparent !important;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
.is-dropdown-submenu li > a {
|
43
|
+
color: $dark-gray;
|
44
|
+
&:hover{
|
45
|
+
background-color: lighten($medium-gray, 30%)
|
46
|
+
}
|
47
|
+
}
|
48
|
+
@include breakpoint(smallmedium down){
|
49
|
+
font-size: .8rem;
|
50
|
+
position: absolute;
|
51
|
+
top: -2.2rem;
|
52
|
+
left: .5rem;
|
53
|
+
margin-left: 0;
|
54
|
+
.dropdown.menu > li.is-dropdown-submenu-parent > a::after{
|
55
|
+
border-width: 3px;
|
56
|
+
right: 10px;
|
57
|
+
margin-top: 0;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
@@ -24,9 +24,12 @@ module Decidim
|
|
24
24
|
# Returns nothing.
|
25
25
|
def call
|
26
26
|
return broadcast(:invalid) if form.invalid?
|
27
|
-
return broadcast(:invalid) unless user
|
28
27
|
|
29
|
-
|
28
|
+
ActiveRecord::Base.transaction do
|
29
|
+
create_or_invite_user
|
30
|
+
create_role
|
31
|
+
end
|
32
|
+
|
30
33
|
broadcast(:ok)
|
31
34
|
rescue ActiveRecord::RecordInvalid
|
32
35
|
form.errors.add(:email, :taken)
|
@@ -35,21 +38,39 @@ module Decidim
|
|
35
38
|
|
36
39
|
private
|
37
40
|
|
38
|
-
attr_reader :form, :participatory_process, :current_user
|
41
|
+
attr_reader :form, :participatory_process, :current_user, :user
|
39
42
|
|
40
43
|
def create_role
|
41
|
-
ParticipatoryProcessUserRole.
|
44
|
+
ParticipatoryProcessUserRole.find_or_create_by!(
|
42
45
|
role: form.role.to_sym,
|
43
46
|
user: user,
|
44
47
|
participatory_process: @participatory_process
|
45
48
|
)
|
46
49
|
end
|
47
50
|
|
48
|
-
def
|
49
|
-
@user ||=
|
51
|
+
def create_or_invite_user
|
52
|
+
@user ||= existing_user || new_user
|
53
|
+
end
|
54
|
+
|
55
|
+
def existing_user
|
56
|
+
return @existing_user if defined?(@existing_user)
|
57
|
+
|
58
|
+
@existing_user = User.where(
|
50
59
|
email: form.email,
|
51
60
|
organization: participatory_process.organization
|
52
|
-
).first
|
61
|
+
).first
|
62
|
+
|
63
|
+
if @existing_user && !@existing_user.invitation_accepted?
|
64
|
+
InviteUserAgain.call(@existing_user, invitation_instructions)
|
65
|
+
end
|
66
|
+
|
67
|
+
@existing_user
|
68
|
+
end
|
69
|
+
|
70
|
+
def new_user
|
71
|
+
new_user_form = user_form.dup
|
72
|
+
new_user_form.roles = []
|
73
|
+
@new_user ||= InviteUser.call(new_user_form) do
|
53
74
|
on(:ok) do |user|
|
54
75
|
return user
|
55
76
|
end
|
@@ -38,7 +38,8 @@ module Decidim
|
|
38
38
|
description: form.description,
|
39
39
|
start_date: form.start_date,
|
40
40
|
end_date: form.end_date,
|
41
|
-
participatory_process: @participatory_process
|
41
|
+
participatory_process: @participatory_process,
|
42
|
+
active: @participatory_process.steps.empty?
|
42
43
|
)
|
43
44
|
end
|
44
45
|
end
|
@@ -19,8 +19,7 @@ module Decidim
|
|
19
19
|
#
|
20
20
|
# Returns nothing.
|
21
21
|
def call
|
22
|
-
return broadcast(:invalid, :
|
23
|
-
return broadcast(:invalid, :active_step) if @step.active?
|
22
|
+
return broadcast(:invalid, :active_step) if active_step?
|
24
23
|
|
25
24
|
@step.destroy!
|
26
25
|
reorder_steps
|
@@ -29,6 +28,10 @@ module Decidim
|
|
29
28
|
|
30
29
|
private
|
31
30
|
|
31
|
+
def active_step?
|
32
|
+
@participatory_process.steps.count > 1 && @step.active?
|
33
|
+
end
|
34
|
+
|
32
35
|
def reorder_steps
|
33
36
|
steps = @participatory_process.steps.reload
|
34
37
|
|
@@ -53,12 +53,17 @@ module Decidim
|
|
53
53
|
github_handler: form.github_handler,
|
54
54
|
description: form.description,
|
55
55
|
welcome_text: form.welcome_text,
|
56
|
-
homepage_image: form.homepage_image
|
57
|
-
|
58
|
-
|
56
|
+
homepage_image: form.homepage_image,
|
57
|
+
remove_homepage_image: form.remove_homepage_image,
|
58
|
+
logo: form.logo,
|
59
|
+
remove_logo: form.remove_logo,
|
60
|
+
favicon: form.favicon,
|
61
|
+
remove_favicon: form.remove_favicon,
|
59
62
|
default_locale: form.default_locale,
|
60
|
-
official_img_header: form.official_img_header
|
61
|
-
|
63
|
+
official_img_header: form.official_img_header,
|
64
|
+
remove_official_img_header: form.remove_official_img_header,
|
65
|
+
official_img_footer: form.official_img_footer,
|
66
|
+
remove_official_img_footer: form.remove_official_img_footer,
|
62
67
|
official_url: form.official_url,
|
63
68
|
show_statistics: form.show_statistics
|
64
69
|
}
|
@@ -48,8 +48,10 @@ module Decidim
|
|
48
48
|
subtitle: form.subtitle,
|
49
49
|
slug: form.slug,
|
50
50
|
hashtag: form.hashtag,
|
51
|
-
hero_image: form.hero_image
|
52
|
-
|
51
|
+
hero_image: form.hero_image,
|
52
|
+
remove_hero_image: form.remove_hero_image,
|
53
|
+
banner_image: form.banner_image,
|
54
|
+
remove_banner_image: form.remove_banner_image,
|
53
55
|
promoted: form.promoted,
|
54
56
|
description: form.description,
|
55
57
|
short_description: form.short_description,
|
@@ -9,6 +9,7 @@ module Decidim
|
|
9
9
|
include FormFactory
|
10
10
|
include LocaleSwitcher
|
11
11
|
include PayloadInfo
|
12
|
+
|
12
13
|
helper Decidim::Admin::ApplicationHelper
|
13
14
|
helper Decidim::Admin::AttributesDisplayHelper
|
14
15
|
helper Decidim::Admin::FeatureSettingsHelper
|
@@ -21,6 +22,7 @@ module Decidim
|
|
21
22
|
helper Decidim::OrganizationScopesHelper
|
22
23
|
helper Decidim::TranslationsHelper
|
23
24
|
helper Decidim::LanguageChooserHelper
|
25
|
+
helper Decidim::FeaturePathHelper
|
24
26
|
|
25
27
|
protect_from_forgery with: :exception, prepend: true
|
26
28
|
|
@@ -54,7 +54,7 @@ module Decidim
|
|
54
54
|
def update
|
55
55
|
@attachment = collection.find(params[:id])
|
56
56
|
authorize! :update, authorization_object
|
57
|
-
@form = form(AttachmentForm).from_params(
|
57
|
+
@form = form(AttachmentForm).from_params(attachment_params)
|
58
58
|
|
59
59
|
UpdateAttachment.call(@attachment, @form) do
|
60
60
|
on(:ok) do
|
@@ -110,6 +110,15 @@ module Decidim
|
|
110
110
|
def collection
|
111
111
|
@collection ||= attached_to.attachments
|
112
112
|
end
|
113
|
+
|
114
|
+
private
|
115
|
+
|
116
|
+
def attachment_params
|
117
|
+
{
|
118
|
+
id: params[:id],
|
119
|
+
file: @attachment.file
|
120
|
+
}.merge(params[:attachment].to_unsafe_h)
|
121
|
+
end
|
113
122
|
end
|
114
123
|
end
|
115
124
|
end
|
@@ -11,7 +11,6 @@ module Decidim
|
|
11
11
|
|
12
12
|
included do
|
13
13
|
helper_method :participatory_process
|
14
|
-
before_action :ensure_participatory_process
|
15
14
|
|
16
15
|
layout "decidim/admin/participatory_process"
|
17
16
|
end
|
@@ -22,10 +21,6 @@ module Decidim
|
|
22
21
|
@participatory_process ||=
|
23
22
|
current_organization.participatory_processes.find(params[:participatory_process_id])
|
24
23
|
end
|
25
|
-
|
26
|
-
def ensure_participatory_process
|
27
|
-
raise ActionController::RoutingError, "Not Found" unless participatory_process
|
28
|
-
end
|
29
24
|
end
|
30
25
|
end
|
31
26
|
end
|
@@ -48,17 +48,20 @@ module Decidim
|
|
48
48
|
|
49
49
|
def moderations
|
50
50
|
@moderations ||= begin
|
51
|
-
moderations = Decidim::Moderation.where(participatory_process: participatory_process)
|
52
51
|
if params[:hidden]
|
53
|
-
|
52
|
+
participatory_process_moderations.where.not(hidden_at: nil)
|
54
53
|
else
|
55
|
-
|
54
|
+
participatory_process_moderations.where(hidden_at: nil)
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|
59
58
|
|
60
59
|
def reportable
|
61
|
-
@reportable ||=
|
60
|
+
@reportable ||= participatory_process_moderations.find(params[:id]).reportable
|
61
|
+
end
|
62
|
+
|
63
|
+
def participatory_process_moderations
|
64
|
+
@participatory_process_moderations ||= Decidim::Moderation.where(participatory_process: participatory_process)
|
62
65
|
end
|
63
66
|
end
|
64
67
|
end
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
|
17
17
|
def update
|
18
18
|
authorize! :update, current_organization
|
19
|
-
@form = form(OrganizationForm).from_params(
|
19
|
+
@form = form(OrganizationForm).from_params(organization_params)
|
20
20
|
|
21
21
|
UpdateOrganization.call(current_organization, @form) do
|
22
22
|
on(:ok) do
|
@@ -33,10 +33,16 @@ module Decidim
|
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
|
-
def
|
36
|
+
def organization_params
|
37
37
|
params[:organization] ||= {}
|
38
38
|
params[:organization][:id] ||= current_organization.id
|
39
|
-
|
39
|
+
{
|
40
|
+
homepage_image: current_organization.homepage_image,
|
41
|
+
logo: current_organization.logo,
|
42
|
+
favicon: current_organization.favicon,
|
43
|
+
official_img_header: current_organization.official_img_header,
|
44
|
+
official_img_footer: current_organization.official_img_footer
|
45
|
+
}.merge(params[:organization].to_unsafe_h)
|
40
46
|
end
|
41
47
|
end
|
42
48
|
end
|
@@ -70,6 +70,23 @@ module Decidim
|
|
70
70
|
redirect_to participatory_process_user_roles_path(@participatory_process_user_role.participatory_process)
|
71
71
|
end
|
72
72
|
|
73
|
+
def resend_invitation
|
74
|
+
@user_role = collection.find(params[:id])
|
75
|
+
authorize! :invite, @user_role
|
76
|
+
|
77
|
+
InviteUserAgain.call(@user_role.user, "invite_admin") do
|
78
|
+
on(:ok) do
|
79
|
+
flash[:notice] = I18n.t("users.resend_invitation.success", scope: "decidim.admin")
|
80
|
+
end
|
81
|
+
|
82
|
+
on(:invalid) do
|
83
|
+
flash[:alert] = I18n.t("users.resend_invitation.error", scope: "decidim.admin")
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
redirect_to participatory_process_user_roles_path(participatory_process)
|
88
|
+
end
|
89
|
+
|
73
90
|
private
|
74
91
|
|
75
92
|
def collection
|
@@ -27,7 +27,7 @@ module Decidim
|
|
27
27
|
CreateParticipatoryProcess.call(@form) do
|
28
28
|
on(:ok) do |participatory_process|
|
29
29
|
flash[:notice] = I18n.t("participatory_processes.create.success", scope: "decidim.admin")
|
30
|
-
redirect_to
|
30
|
+
redirect_to participatory_process_steps_path(participatory_process)
|
31
31
|
end
|
32
32
|
|
33
33
|
on(:invalid) do
|
@@ -47,7 +47,7 @@ module Decidim
|
|
47
47
|
def update
|
48
48
|
@participatory_process = collection.find(params[:id])
|
49
49
|
authorize! :update, @participatory_process
|
50
|
-
@form = form(ParticipatoryProcessForm).from_params(
|
50
|
+
@form = form(ParticipatoryProcessForm).from_params(participatory_process_params)
|
51
51
|
|
52
52
|
UpdateParticipatoryProcess.call(@participatory_process, @form) do
|
53
53
|
on(:ok) do |participatory_process|
|
@@ -57,7 +57,7 @@ module Decidim
|
|
57
57
|
|
58
58
|
on(:invalid) do
|
59
59
|
flash.now[:alert] = I18n.t("participatory_processes.update.error", scope: "decidim.admin")
|
60
|
-
render :edit
|
60
|
+
render :edit, layout: "decidim/admin/participatory_process"
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -88,6 +88,14 @@ module Decidim
|
|
88
88
|
def collection
|
89
89
|
@collection ||= ManageableParticipatoryProcessesForUser.for(current_user)
|
90
90
|
end
|
91
|
+
|
92
|
+
def participatory_process_params
|
93
|
+
{
|
94
|
+
id: params[:id],
|
95
|
+
hero_image: @participatory_process.hero_image,
|
96
|
+
banner_image: @participatory_process.banner_image
|
97
|
+
}.merge(params[:participatory_process].to_unsafe_h)
|
98
|
+
end
|
91
99
|
end
|
92
100
|
end
|
93
101
|
end
|
@@ -14,6 +14,7 @@ module Decidim
|
|
14
14
|
validates :name, translatable_presence: true
|
15
15
|
|
16
16
|
attribute :settings, Object
|
17
|
+
attribute :default_step_settings, Object
|
17
18
|
attribute :manifest
|
18
19
|
attribute :weight, Integer, default: 0
|
19
20
|
|
@@ -23,12 +24,17 @@ module Decidim
|
|
23
24
|
def map_model(model)
|
24
25
|
self.attributes = model.attributes
|
25
26
|
self.settings = model.settings
|
27
|
+
self.default_step_settings = model.default_step_settings
|
26
28
|
end
|
27
29
|
|
28
30
|
def settings?
|
29
31
|
settings.manifest.attributes.any?
|
30
32
|
end
|
31
33
|
|
34
|
+
def default_step_settings?
|
35
|
+
default_step_settings.manifest.attributes.any?
|
36
|
+
end
|
37
|
+
|
32
38
|
def step_settings?
|
33
39
|
return false unless participatory_process.steps.any?
|
34
40
|
|
@@ -19,11 +19,16 @@ module Decidim
|
|
19
19
|
attribute :github_handler, String
|
20
20
|
attribute :default_locale, String
|
21
21
|
attribute :homepage_image
|
22
|
+
attribute :remove_homepage_image
|
22
23
|
attribute :logo
|
24
|
+
attribute :remove_logo
|
23
25
|
attribute :favicon
|
26
|
+
attribute :remove_favicon
|
24
27
|
attribute :official_url
|
25
28
|
attribute :official_img_header
|
29
|
+
attribute :remove_official_img_header
|
26
30
|
attribute :official_img_footer
|
31
|
+
attribute :remove_official_img_footer
|
27
32
|
attribute :show_statistics
|
28
33
|
|
29
34
|
translatable_attribute :description, String
|