decidim-admin 0.23.3 → 0.23.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/commands/decidim/admin/create_participatory_space_admin_user_actions.rb +98 -0
- data/app/views/decidim/admin/components/_form.html.erb +1 -1
- data/config/locales/cs.yml +1 -1
- data/config/locales/nl.yml +7 -0
- data/config/locales/pl.yml +16 -15
- data/config/locales/ro-RO.yml +2 -0
- data/lib/decidim/admin/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abf12fc3a720089a227c07935d89d9e34a39014127a3ea2f9ae46e56cc1a772d
|
4
|
+
data.tar.gz: ff04fdb252d1eac29e6c509b641097e2045a1a390ef73866e52cac446050aba3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2430ff7ba77632e0182c066b425ba7cf28b620e475646a8d8ecae9b56ee5a81170155675c452727a93bc5b521195bb45d67cb485a5702e1f1328e98f6f03aa4e
|
7
|
+
data.tar.gz: e12a8dc53037cee0628e487c60c9a29f2cb1ef436512deef95d7e097e7be9d4960ecf9f2dcc317d1dd4ff9bc1e1590ff5a8f6ff9e8b0e80f9e981fe4d9d64b43
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
# This is not a Command but an abstration of reusable methods by commands in participatory spaces that create space admins.
|
6
|
+
# Expects the command to have a `participatory_space` attribute.
|
7
|
+
module CreateParticipatorySpaceAdminUserActions
|
8
|
+
# Executes the command. Broadcasts these events:
|
9
|
+
#
|
10
|
+
# - :ok when everything is valid.
|
11
|
+
# - :invalid if the form wasn't valid and we couldn't proceed.
|
12
|
+
#
|
13
|
+
# Returns nothing.
|
14
|
+
def call
|
15
|
+
return broadcast(:invalid) if form.invalid?
|
16
|
+
|
17
|
+
ActiveRecord::Base.transaction do
|
18
|
+
@user ||= existing_user || new_user
|
19
|
+
existing_role || create_role
|
20
|
+
add_admin_as_follower
|
21
|
+
end
|
22
|
+
|
23
|
+
broadcast(:ok)
|
24
|
+
rescue ActiveRecord::RecordInvalid
|
25
|
+
form.errors.add(:email, :taken)
|
26
|
+
broadcast(:invalid)
|
27
|
+
end
|
28
|
+
|
29
|
+
# This is command specific
|
30
|
+
# It is expected to find if a UserRole for the same user, role and participatory_process already exist
|
31
|
+
# Return a boolean, or some object equally evaluable
|
32
|
+
def existing_role
|
33
|
+
raise NotImplementedError
|
34
|
+
end
|
35
|
+
|
36
|
+
# This is command specific
|
37
|
+
# It is expected to
|
38
|
+
# - create a XxxUserRole using `Decidim.traceability`
|
39
|
+
# - send a notification to the user telling she has been invited to manage the participatory space
|
40
|
+
def create_role
|
41
|
+
raise NotImplementedError
|
42
|
+
end
|
43
|
+
|
44
|
+
def existing_user
|
45
|
+
return @existing_user if defined?(@existing_user)
|
46
|
+
|
47
|
+
@existing_user = User.find_by(
|
48
|
+
email: form.email,
|
49
|
+
organization: @participatory_space.organization
|
50
|
+
)
|
51
|
+
|
52
|
+
InviteUserAgain.call(@existing_user, invitation_instructions) if @existing_user && invitation_pending?(@existing_user)
|
53
|
+
|
54
|
+
@existing_user
|
55
|
+
end
|
56
|
+
|
57
|
+
def invitation_pending?(user)
|
58
|
+
user.invited_to_sign_up? && !user.invitation_accepted?
|
59
|
+
end
|
60
|
+
|
61
|
+
def new_user
|
62
|
+
@new_user ||= InviteUser.call(user_form) do
|
63
|
+
on(:ok) do |user|
|
64
|
+
return user
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def user_form
|
70
|
+
OpenStruct.new(name: form.name,
|
71
|
+
email: form.email.downcase,
|
72
|
+
organization: @participatory_space.organization,
|
73
|
+
admin: false,
|
74
|
+
invited_by: current_user,
|
75
|
+
invitation_instructions: invitation_instructions)
|
76
|
+
end
|
77
|
+
|
78
|
+
def invitation_instructions
|
79
|
+
return "invite_admin" if form.role == "admin"
|
80
|
+
|
81
|
+
"invite_collaborator"
|
82
|
+
end
|
83
|
+
|
84
|
+
def add_admin_as_follower
|
85
|
+
return if user.follows?(@participatory_space)
|
86
|
+
|
87
|
+
form = Decidim::FollowForm
|
88
|
+
.from_params(followable_gid: @participatory_space.to_signed_global_id.to_s)
|
89
|
+
.with_context(
|
90
|
+
current_organization: @participatory_space.organization,
|
91
|
+
current_user: user
|
92
|
+
)
|
93
|
+
|
94
|
+
Decidim::CreateFollow.new(form, user).call
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -78,7 +78,7 @@
|
|
78
78
|
</fieldset>
|
79
79
|
<% end %>
|
80
80
|
|
81
|
-
<%
|
81
|
+
<% if component && component.persisted? && !component.published? %>
|
82
82
|
<%= render partial: "decidim/admin/share_tokens/share_tokens", locals: { share_tokens: form.object.share_tokens } %>
|
83
83
|
<% end %>
|
84
84
|
</div>
|
data/config/locales/cs.yml
CHANGED
@@ -255,7 +255,7 @@ cs:
|
|
255
255
|
error: Při vytváření této komponenty došlo k chybě.
|
256
256
|
success: Komponenta byla úspěšně vytvořena.
|
257
257
|
destroy:
|
258
|
-
error: Došlo k chybě při
|
258
|
+
error: Došlo k chybě při mazání této komponenty.
|
259
259
|
success: Komponenta byla úspěšně smazána.
|
260
260
|
edit:
|
261
261
|
title: Upravit komponentu
|
data/config/locales/nl.yml
CHANGED
@@ -658,6 +658,13 @@ nl:
|
|
658
658
|
update:
|
659
659
|
error: Er is een fout opgetreden bij het bijwerken van deze scope.
|
660
660
|
success: Scope is succesvol bijgewerkt
|
661
|
+
share_tokens:
|
662
|
+
actions:
|
663
|
+
confirm_destroy: Weet je zeker dat je deze token wil verwijderen?
|
664
|
+
destroy: Verwijderen
|
665
|
+
share: Deel
|
666
|
+
destroy:
|
667
|
+
error: Er is een fout opgetreden bij het vernietigen van de token.
|
661
668
|
shared:
|
662
669
|
gallery:
|
663
670
|
add_images: Afbeeldingen toevoegen
|
data/config/locales/pl.yml
CHANGED
@@ -24,7 +24,7 @@ pl:
|
|
24
24
|
component:
|
25
25
|
name: Nazwa
|
26
26
|
published_at: Opublikowano
|
27
|
-
weight:
|
27
|
+
weight: Kolejność na stronie
|
28
28
|
id: ID
|
29
29
|
newsletter:
|
30
30
|
body: Treść
|
@@ -44,8 +44,8 @@ pl:
|
|
44
44
|
from: Z adresu e-mail
|
45
45
|
github_handler: Handler GitHuba
|
46
46
|
header_snippets: Fragmenty nagłówków
|
47
|
-
highlight_alternative_color:
|
48
|
-
highlight_color:
|
47
|
+
highlight_alternative_color: Wyróżnij (alternatywny kolor)
|
48
|
+
highlight_color: Wyróżniony kolor
|
49
49
|
highlighted_content_banner_action_subtitle: Podtytuł przycisku akcji
|
50
50
|
highlighted_content_banner_action_title: Tytuł przycisku akcji
|
51
51
|
highlighted_content_banner_action_url: URL przycisku akcji
|
@@ -100,12 +100,12 @@ pl:
|
|
100
100
|
show_in_footer: Pokaż w stopce
|
101
101
|
slug: URL slug
|
102
102
|
title: Tytuł
|
103
|
-
weight:
|
103
|
+
weight: Kolejność na stronie
|
104
104
|
static_page_topic:
|
105
105
|
description: Opis
|
106
106
|
show_in_footer: Pokaż w stopce
|
107
107
|
title: Tytuł
|
108
|
-
weight:
|
108
|
+
weight: Kolejność na stronie
|
109
109
|
user_group_csv_verification:
|
110
110
|
file: Plik
|
111
111
|
errors:
|
@@ -339,7 +339,7 @@ pl:
|
|
339
339
|
name: Nazwa
|
340
340
|
needs_authorization_warning: Do tej organizacji potrzebna jest co najmniej jedna autoryzacja.
|
341
341
|
not_managed: Niezamknięte
|
342
|
-
promote:
|
342
|
+
promote: Awansuj
|
343
343
|
search: Szukaj
|
344
344
|
status: Status
|
345
345
|
view_logs: Wyświetl logi
|
@@ -370,7 +370,7 @@ pl:
|
|
370
370
|
new:
|
371
371
|
explanation: Zarządzani użytkownicy mogą być promowani do standardowych użytkowników. Oznacza to, że zostaną zaproszeni do udziału w aplikacji i nie będą mogli podszywać się pod inne osoby. Zaproszony użytkownik otrzyma wiadomość e-mail, aby zaakceptować zaproszenie.
|
372
372
|
new_managed_user_promotion: Nowa zarządzana promocja użytkowników
|
373
|
-
promote:
|
373
|
+
promote: Awansuj
|
374
374
|
menu:
|
375
375
|
admin_log: Logi aktywności administratora
|
376
376
|
admins: Administratorzy
|
@@ -485,7 +485,7 @@ pl:
|
|
485
485
|
title: Szablony newslettera
|
486
486
|
use_template: Użyj tego szablonu
|
487
487
|
show:
|
488
|
-
preview: 'Podgląd szablonu
|
488
|
+
preview: 'Podgląd szablonu: %{template_name}'
|
489
489
|
use_template: Użyj tego szablonu
|
490
490
|
newsletters:
|
491
491
|
create:
|
@@ -566,7 +566,7 @@ pl:
|
|
566
566
|
officialize: Oficjalizuj
|
567
567
|
title: Oficjalizuj użytkownika "%{name}"
|
568
568
|
show_email_modal:
|
569
|
-
close_modal: Zamknij
|
569
|
+
close_modal: Zamknij okno
|
570
570
|
description: Jeśli chcesz się bezpośrednio skontaktować z użytkownikiem, możesz kliknąć przycisk Pokaż, aby wyświetlić adres e-mail. Ta akcja zostanie zarejestrowana.
|
571
571
|
email_address: Adres e-mail
|
572
572
|
full_name: Imię i nazwisko
|
@@ -596,7 +596,7 @@ pl:
|
|
596
596
|
colors:
|
597
597
|
colors_title: Kolory organizacji
|
598
598
|
header_snippets_help: Użyj tego pola, aby dodać elementy do nagłówka kodu HTML. Najczęstszym zastosowaniem jest zintegrowanie usług innych firm, które wymagają dodatkowego kodu JavaScript lub CSS. Można również użyć go do dodawania dodatkowych meta tagów do HTML. Zauważ, że będzie to widoczne tylko na stronach publicznych, a nie w sekcji administracyjnej.
|
599
|
-
cta_button_path_help: 'Możesz nadpisać adres do jakiego kieruje przycisk CTA na stronie głównej.
|
599
|
+
cta_button_path_help: 'Możesz nadpisać adres do jakiego kieruje przycisk CTA na stronie głównej. Należy wpisać tylko to, co ma znaleźć się na końcu po znaku „/”, a nie pełen adres. Można użyć liter, cyfr, myślników i ukośników. Musi zaczynać się od litery. Przycisk CTA zostanie wyświetlony na stronie głównej między tekstem powitalnym a opisem. Przykład: %{url}'
|
600
600
|
cta_button_text_help: Można nadpisać tekst przycisku CTA na stronie głównej dla każdego dostępnego języka organizacji. Jeśli to pole nie zostanie wypełnione, zostanie użyta wartość domyślna. Przycisk CTA zostanie wyświetlony na stronie głównej między tekstem powitalnym a opisem.
|
601
601
|
homepage_appearance_title: Edytuj wygląd strony głównej
|
602
602
|
homepage_highlighted_content_banner_title: Wyróżniony baner tekstowy
|
@@ -629,6 +629,7 @@ pl:
|
|
629
629
|
invalid: Wystąpił błąd podczas odczytu pliku CSV.
|
630
630
|
success: Plik CSV został pomyślnie wgrany, wysyłamy e-mail z zaproszeniem do uczestników. To może zająć chwilę.
|
631
631
|
new:
|
632
|
+
explanation: 'Prześlij swój plik CSV. Plik musi składać się z dwóch kolumn: w pierwszej kolumnie adresy e-mail, w drugiej kolumnie imiona (adres e-mail, imię) użytkowników, których chcesz dodać do przestrzeni partycypacyjnej; bez nagłówków. Unikaj używania niepoprawnych znaków takich jak `<>?%&^*#@()[]=+:;"{}\|` w imieniu użytkownika.'
|
632
633
|
title: Prześlij swój plik CSV
|
633
634
|
upload: Prześlij
|
634
635
|
resource_permissions:
|
@@ -718,7 +719,7 @@ pl:
|
|
718
719
|
update: Aktualizuj
|
719
720
|
form:
|
720
721
|
none: Żadna
|
721
|
-
slug_help: '
|
722
|
+
slug_help: 'Wpisz tutaj tylko to, co ma znaleźć się na końcu po znaku „/”, a nie pełny adres URL. Można użyć liter, cyfr i myślników. Musi zaczynać się od litery. Przykład: %{url}'
|
722
723
|
index:
|
723
724
|
last_notable_change: Ostatnia istotna zmiana
|
724
725
|
new:
|
@@ -740,7 +741,7 @@ pl:
|
|
740
741
|
dashboard: Panel
|
741
742
|
impersonatable_users: Zarządzaj użytkownikami
|
742
743
|
impersonations: Zarządzanie użytkownikami
|
743
|
-
metrics:
|
744
|
+
metrics: Partycypacja w liczbach
|
744
745
|
participants: Użytkownicy
|
745
746
|
scope_types: Typy zakresów
|
746
747
|
scopes: Zakresy
|
@@ -815,13 +816,13 @@ pl:
|
|
815
816
|
admin:
|
816
817
|
reportable:
|
817
818
|
hide:
|
818
|
-
invalid:
|
819
|
+
invalid: W trakcie ukrywania zasobu wystąpił błąd.
|
819
820
|
success: Zasób został ukryty.
|
820
821
|
unhide:
|
821
|
-
invalid:
|
822
|
+
invalid: W trakcie publikowania zasobu wystąpił błąd.
|
822
823
|
success: Zasoby zostały pomyślnie pokazane.
|
823
824
|
unreport:
|
824
|
-
invalid:
|
825
|
+
invalid: W trakcie usuwania zgłoszenia zasobu wystąpił błąd.
|
825
826
|
success: Zasób został pomyślnie nieudokumentowany.
|
826
827
|
models:
|
827
828
|
moderation:
|
data/config/locales/ro-RO.yml
CHANGED
@@ -55,6 +55,8 @@ ro:
|
|
55
55
|
highlighted_content_banner_title: Titlu
|
56
56
|
instagram_handler: Gestionar instagram
|
57
57
|
logo: Logo
|
58
|
+
machine_translation_display_priority_original: Mai întâi textul original
|
59
|
+
machine_translation_display_priority_translation: Mai întâi textul tradus
|
58
60
|
name: Nume
|
59
61
|
official_img_footer: Subsol cu logo oficial
|
60
62
|
official_img_header: Antet logo oficial
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.23.
|
4
|
+
version: 0.23.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-03-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: active_link_to
|
@@ -32,14 +32,14 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0.23.
|
35
|
+
version: 0.23.4
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.23.
|
42
|
+
version: 0.23.4
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: devise
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,28 +130,28 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - '='
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.23.
|
133
|
+
version: 0.23.4
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
138
|
- - '='
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version: 0.23.
|
140
|
+
version: 0.23.4
|
141
141
|
- !ruby/object:Gem::Dependency
|
142
142
|
name: decidim-participatory_processes
|
143
143
|
requirement: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
145
|
- - '='
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: 0.23.
|
147
|
+
version: 0.23.4
|
148
148
|
type: :development
|
149
149
|
prerelease: false
|
150
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
152
|
- - '='
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version: 0.23.
|
154
|
+
version: 0.23.4
|
155
155
|
description: Organization administration to manage a single organization.
|
156
156
|
email:
|
157
157
|
- josepjaume@gmail.com
|
@@ -281,6 +281,7 @@ files:
|
|
281
281
|
- app/commands/decidim/admin/create_category.rb
|
282
282
|
- app/commands/decidim/admin/create_component.rb
|
283
283
|
- app/commands/decidim/admin/create_newsletter.rb
|
284
|
+
- app/commands/decidim/admin/create_participatory_space_admin_user_actions.rb
|
284
285
|
- app/commands/decidim/admin/create_participatory_space_private_user.rb
|
285
286
|
- app/commands/decidim/admin/create_scope.rb
|
286
287
|
- app/commands/decidim/admin/create_scope_type.rb
|