decidim-admin 0.27.3 → 0.27.4
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.
- checksums.yaml +4 -4
- data/app/commands/decidim/admin/block_user.rb +7 -2
- data/app/controllers/concerns/decidim/admin/needs_admin_tos_accepted.rb +42 -0
- data/app/controllers/decidim/admin/admin_terms_controller.rb +1 -1
- data/app/controllers/decidim/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/admin/space_publications_controller.rb +63 -0
- data/app/controllers/decidim/admin/static_page_topics_controller.rb +1 -3
- data/app/views/decidim/admin/area_types/edit.html.erb +1 -0
- data/app/views/decidim/admin/area_types/index.html.erb +1 -0
- data/app/views/decidim/admin/area_types/new.html.erb +1 -0
- data/app/views/decidim/admin/areas/edit.html.erb +1 -0
- data/app/views/decidim/admin/areas/index.html.erb +1 -0
- data/app/views/decidim/admin/areas/new.html.erb +1 -0
- data/app/views/decidim/admin/attachment_collections/edit.html.erb +1 -0
- data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -0
- data/app/views/decidim/admin/attachment_collections/new.html.erb +1 -0
- data/app/views/decidim/admin/attachments/edit.html.erb +1 -0
- data/app/views/decidim/admin/attachments/index.html.erb +1 -0
- data/app/views/decidim/admin/attachments/new.html.erb +1 -0
- data/app/views/decidim/admin/authorization_workflows/index.html.erb +1 -0
- data/app/views/decidim/admin/categories/edit.html.erb +1 -0
- data/app/views/decidim/admin/categories/index.html.erb +1 -0
- data/app/views/decidim/admin/categories/new.html.erb +1 -0
- data/app/views/decidim/admin/components/edit.html.erb +1 -0
- data/app/views/decidim/admin/components/index.html.erb +1 -0
- data/app/views/decidim/admin/components/new.html.erb +1 -1
- data/app/views/decidim/admin/conflicts/index.html.erb +1 -0
- data/app/views/decidim/admin/help_sections/show.erb +1 -0
- data/app/views/decidim/admin/impersonatable_users/index.html.erb +1 -0
- data/app/views/decidim/admin/impersonations/new.html.erb +1 -0
- data/app/views/decidim/admin/logs/index.html.erb +1 -0
- data/app/views/decidim/admin/moderated_users/index.html.erb +1 -0
- data/app/views/decidim/admin/moderations/index.html.erb +1 -0
- data/app/views/decidim/admin/newsletter_templates/index.html.erb +1 -0
- data/app/views/decidim/admin/newsletter_templates/show.html.erb +1 -0
- data/app/views/decidim/admin/newsletters/index.html.erb +1 -0
- data/app/views/decidim/admin/newsletters/new.html.erb +1 -0
- data/app/views/decidim/admin/newsletters/show.html.erb +1 -0
- data/app/views/decidim/admin/officializations/index.html.erb +1 -0
- data/app/views/decidim/admin/officializations/new.html.erb +1 -0
- data/app/views/decidim/admin/organization/edit.html.erb +1 -0
- data/app/views/decidim/admin/organization_appearance/edit.html.erb +1 -0
- data/app/views/decidim/admin/organization_external_domain_whitelist/edit.html.erb +1 -0
- data/app/views/decidim/admin/scope_types/edit.html.erb +1 -0
- data/app/views/decidim/admin/scope_types/index.html.erb +1 -0
- data/app/views/decidim/admin/scope_types/new.html.erb +1 -0
- data/app/views/decidim/admin/scopes/edit.html.erb +1 -0
- data/app/views/decidim/admin/scopes/index.html.erb +1 -0
- data/app/views/decidim/admin/scopes/new.html.erb +1 -0
- data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +1 -0
- data/app/views/decidim/admin/static_page_topics/edit.html.erb +1 -0
- data/app/views/decidim/admin/static_page_topics/new.html.erb +1 -0
- data/app/views/decidim/admin/static_pages/edit.html.erb +1 -0
- data/app/views/decidim/admin/static_pages/index.html.erb +1 -0
- data/app/views/decidim/admin/static_pages/new.html.erb +1 -0
- data/app/views/decidim/admin/user_groups/index.html.erb +1 -0
- data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +1 -0
- data/app/views/decidim/admin/users/index.html.erb +1 -0
- data/app/views/decidim/admin/users/new.html.erb +1 -0
- data/app/views/layouts/decidim/admin/global_moderations.html.erb +1 -0
- data/config/environment.rb +1 -0
- data/config/locales/ca.yml +3 -0
- data/config/locales/cs.yml +3 -0
- data/config/locales/de.yml +8 -1
- data/config/locales/el.yml +81 -0
- data/config/locales/en.yml +4 -1
- data/config/locales/es-MX.yml +3 -0
- data/config/locales/es-PY.yml +3 -0
- data/config/locales/es.yml +3 -0
- data/config/locales/eu.yml +8 -4
- data/config/locales/fi-plain.yml +3 -0
- data/config/locales/fi.yml +4 -1
- data/config/locales/fr-CA.yml +3 -0
- data/config/locales/fr.yml +4 -1
- data/config/locales/hu.yml +1 -0
- data/config/locales/ja.yml +4 -1
- data/config/locales/kaa.yml +202 -0
- data/config/locales/pt-BR.yml +92 -0
- data/config/locales/tr-TR.yml +3 -0
- data/lib/decidim/admin/form_builder.rb +1 -2
- data/lib/decidim/admin/test/needs_admin_tos_accepted_examples.rb +9 -0
- data/lib/decidim/admin/test.rb +1 -0
- data/lib/decidim/admin/version.rb +1 -1
- metadata +15 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2b6d361bf34645d19fff1ed2b9d2dfc9bd21d9d5f59205009c6a98aa768aa104
|
|
4
|
+
data.tar.gz: d6afb23b3c6d259f9c1ec1380746a90ab72c16451598e3bdba0d6e4f014d5c05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 13c4b9f5db82ec0b5575c185f2b18b1b3bf9b11066612167c03d5f91edf47a9c824e99b60bbe3fd19289401d668526befcd6b394893a8b8932c1d1cf012dbf61
|
|
7
|
+
data.tar.gz: 1a12690709937d82651c02a0cab87db70a8b8c62fa8b4cd8779261ff9729961517131007ff8300d131d375ff755195fa207b4a999d621c87722b4ef322c4beb5
|
|
@@ -20,8 +20,9 @@ module Decidim
|
|
|
20
20
|
return broadcast(:invalid) unless form.valid?
|
|
21
21
|
|
|
22
22
|
transaction do
|
|
23
|
-
|
|
23
|
+
find_or_create_moderation!
|
|
24
24
|
register_justification!
|
|
25
|
+
block!
|
|
25
26
|
notify_user!
|
|
26
27
|
end
|
|
27
28
|
|
|
@@ -32,6 +33,10 @@ module Decidim
|
|
|
32
33
|
|
|
33
34
|
attr_reader :form
|
|
34
35
|
|
|
36
|
+
def find_or_create_moderation!
|
|
37
|
+
Decidim::UserModeration.create_or_find_by!(user: form.user)
|
|
38
|
+
end
|
|
39
|
+
|
|
35
40
|
def register_justification!
|
|
36
41
|
@current_blocking = UserBlock.create!(
|
|
37
42
|
justification: form.justification,
|
|
@@ -65,7 +70,7 @@ module Decidim
|
|
|
65
70
|
) do
|
|
66
71
|
form.user.blocked = true
|
|
67
72
|
form.user.blocked_at = Time.current
|
|
68
|
-
form.user.
|
|
73
|
+
form.user.block_id = @current_blocking.id
|
|
69
74
|
form.user.extended_data["user_name"] = form.user.name
|
|
70
75
|
form.user.name = "Blocked user"
|
|
71
76
|
form.user.save!
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Admin
|
|
5
|
+
# Shared behaviour for signed_in admins that require the latest TOS accepted
|
|
6
|
+
module NeedsAdminTosAccepted
|
|
7
|
+
extend ActiveSupport::Concern
|
|
8
|
+
|
|
9
|
+
included do
|
|
10
|
+
before_action :tos_accepted_by_admin
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def tos_accepted_by_admin
|
|
16
|
+
return unless request.format.html?
|
|
17
|
+
return unless current_user
|
|
18
|
+
return if current_user.admin_terms_accepted?
|
|
19
|
+
return if permitted_paths?
|
|
20
|
+
|
|
21
|
+
store_location_for(
|
|
22
|
+
current_user,
|
|
23
|
+
request.path
|
|
24
|
+
)
|
|
25
|
+
redirect_to admin_tos_path
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def permitted_paths?
|
|
29
|
+
# ensure that path with or without query string pass
|
|
30
|
+
permitted_paths.find { |el| el.split("?").first == request.path }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def permitted_paths
|
|
34
|
+
[admin_tos_path, decidim_admin.admin_terms_accept_path]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def admin_tos_path
|
|
38
|
+
decidim_admin.admin_terms_show_path
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -9,7 +9,7 @@ module Decidim
|
|
|
9
9
|
current_user.admin_terms_accepted_at = Time.current
|
|
10
10
|
if current_user.save!
|
|
11
11
|
flash[:notice] = t("accept.success", scope: "decidim.admin.admin_terms_of_use")
|
|
12
|
-
redirect_to decidim_admin.root_path
|
|
12
|
+
redirect_to stored_location_for(current_user) || decidim_admin.root_path
|
|
13
13
|
else
|
|
14
14
|
flash[:alert] = t("accept.error", scope: "decidim.admin.admin_terms_of_use")
|
|
15
15
|
redirect_to decidim_admin.admin_terms_show_path
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Decidim
|
|
4
|
+
module Admin
|
|
5
|
+
# Base controller that can be inherited by other spaces to publish and unpublish the Space
|
|
6
|
+
#
|
|
7
|
+
class SpacePublicationsController < Decidim::Assemblies::Admin::ApplicationController
|
|
8
|
+
def create
|
|
9
|
+
enforce_permission_to_publish
|
|
10
|
+
|
|
11
|
+
publish_command.call(current_assembly, current_user) do
|
|
12
|
+
on(:ok) do
|
|
13
|
+
flash[:notice] = I18n.t("create.success", scope: i18n_scope)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
on(:invalid) do
|
|
17
|
+
flash.now[:alert] = I18n.t("create.error", scope: i18n_scope)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
redirect_back(fallback_location: assemblies_path)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def destroy
|
|
25
|
+
enforce_permission_to_publish
|
|
26
|
+
|
|
27
|
+
unpublish_command.call(current_assembly, current_user) do
|
|
28
|
+
on(:ok) do
|
|
29
|
+
flash[:notice] = I18n.t("destroy.success", scope: i18n_scope)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
on(:invalid) do
|
|
33
|
+
flash.now[:alert] = I18n.t("destroy.error", scope: i18n_scope)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
redirect_back(fallback_location: assemblies_path)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
42
|
+
def current_participatory_space
|
|
43
|
+
raise "Not implemented"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def enforce_permission_to_publish
|
|
47
|
+
raise "Not implemented"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def publish_command
|
|
51
|
+
raise "Not implemented"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def unpublish_command
|
|
55
|
+
raise "Not implemented"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def i18n_scope
|
|
59
|
+
raise "Not implemented"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t("attachment_collections.edit.title", scope: "decidim.admin")) %>
|
|
1
2
|
<%= decidim_form_for(@form, url: url_for([@attachment_collection.collection_for, @attachment_collection]), html: { class: "form edit_attachment_collection" }) do |f| %>
|
|
2
3
|
<%= render partial: "decidim/admin/attachment_collections/form", object: f, locals: { title: t("attachment_collections.edit.title", scope: "decidim.admin") } %>
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t("attachment_collections.new.title", scope: "decidim.admin")) %>
|
|
1
2
|
<%= decidim_form_for(@form, url: url_for([collection_for, @form]), html: { class: "form new_attachment_collection" }) do |f| %>
|
|
2
3
|
<%= render partial: "decidim/admin/attachment_collections/form", object: f, locals: { title: t("attachment_collections.new.title", scope: "decidim.admin") } %>
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t(".title")) %>
|
|
1
2
|
<%= decidim_form_for(@form, url: url_for([@attachment.attached_to, @attachment]), html: { class: "form edit_attachment" }) do |f| %>
|
|
2
3
|
<%= render partial: "decidim/admin/attachments/form", object: f, locals: { title: t(".title") } %>
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t("categories.new.title", scope: "decidim.admin")) %>
|
|
1
2
|
<%= decidim_form_for(@form, url: categories_path(current_participatory_space), html: { class: "form new_category" }) do |f| %>
|
|
2
3
|
<%= render partial: "form", object: f, locals: { title: t("categories.new.title", scope: "decidim.admin") } %>
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t(".title", name: t("#{@component.manifest.name}.name", scope: "decidim.components"))) %>
|
|
1
2
|
<%= decidim_form_for([current_participatory_space, @form], url: component_path(current_participatory_space, @component), method: "put", html: { class: "form edit_component" }) do |form| %>
|
|
2
3
|
<%= render partial: "form", object: form, locals: { component: @component, title: t(".title", name: t("#{@component.manifest.name}.name", scope: "decidim.components")) } %>
|
|
3
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
<% add_decidim_page_title(t(".title", name: t("#{manifest.name}.name", scope: "decidim.components"))) %>
|
|
2
2
|
<%= decidim_form_for([current_participatory_space, @form], url: components_path(type: params[:type]), method: "post", html: { class: "form new_component" }) do |form| %>
|
|
3
3
|
<%= render partial: "form", object: form, locals: { component: @component, title: t(".title", name: t("#{manifest.name}.name", scope: "decidim.components")) } %>
|
|
4
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t("edit_organization_appearance", scope: "decidim.admin.titles")) %>
|
|
1
2
|
<%= decidim_form_for(@form, html: { class: "form edit_organization_appearance" }, url: organization_appearance_path, method: :put) do |f| %>
|
|
2
3
|
<%= render partial: "form", object: f %>
|
|
3
4
|
<div class="button--double form-general-submit">
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<% add_decidim_page_title(t("edit_external_domains", scope: "decidim.admin.titles")) %>
|
|
1
2
|
<%= decidim_form_for(@form, html: { class: "form edit_organization_external_domain_whitelist" }, url: organization_external_domain_whitelist_path, method: :patch) do |f| %>
|
|
2
3
|
<%= render partial: "form", object: f %>
|
|
3
4
|
<div class="button--double form-general-submit">
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
data/config/locales/ca.yml
CHANGED
|
@@ -982,9 +982,12 @@ ca:
|
|
|
982
982
|
areas: Àrees
|
|
983
983
|
authorization_workflows: Mètodes de verificació
|
|
984
984
|
dashboard: Tauler de control
|
|
985
|
+
edit_external_domains: Llistat de dominis externs permesos
|
|
986
|
+
edit_organization_appearance: Edita l'aparença de la pàgina d'inici
|
|
985
987
|
impersonatable_users: Participants que es poden gestionar
|
|
986
988
|
impersonations: Gestió de participants
|
|
987
989
|
metrics: Mètriques
|
|
990
|
+
pages: Pàgines
|
|
988
991
|
panel: Administradora
|
|
989
992
|
participants: Participants
|
|
990
993
|
scope_types: Tipus d'àmbit
|
data/config/locales/cs.yml
CHANGED
|
@@ -992,9 +992,12 @@ cs:
|
|
|
992
992
|
areas: Oblasti
|
|
993
993
|
authorization_workflows: Metody ověření
|
|
994
994
|
dashboard: Ovládací panel
|
|
995
|
+
edit_external_domains: Seznam externích povolených domén
|
|
996
|
+
edit_organization_appearance: Upravit vzhled domovské stránky
|
|
995
997
|
impersonatable_users: Spravovatelní účastníci
|
|
996
998
|
impersonations: Správa účastníků
|
|
997
999
|
metrics: Metriky
|
|
1000
|
+
pages: Stránky
|
|
998
1001
|
panel: Admin
|
|
999
1002
|
participants: Uživatelé
|
|
1000
1003
|
scope_types: Typy oblastí působnosti
|
data/config/locales/de.yml
CHANGED
|
@@ -342,7 +342,7 @@ de:
|
|
|
342
342
|
success: Die Komponente wurde erfolgreich veröffentlicht.
|
|
343
343
|
title: Komponenten
|
|
344
344
|
unpublish:
|
|
345
|
-
success: Die Komponente wurde erfolgreich
|
|
345
|
+
success: Die Veröffentlichung der Komponente wurde erfolgreich zurückgezogen.
|
|
346
346
|
update:
|
|
347
347
|
error: Beim Aktualisieren dieser Komponente ist ein Fehler aufgetreten.
|
|
348
348
|
success: Die Komponente wurde erfolgreich aktualisiert.
|
|
@@ -654,6 +654,7 @@ de:
|
|
|
654
654
|
nickname: Spitzname
|
|
655
655
|
reason: Grund
|
|
656
656
|
reports: Anzahl Meldungen
|
|
657
|
+
title: Gemeldete Teilnehmende
|
|
657
658
|
report:
|
|
658
659
|
reasons:
|
|
659
660
|
does_not_belong: Gehört nicht zu
|
|
@@ -663,6 +664,8 @@ de:
|
|
|
663
664
|
blocked: Blockiert
|
|
664
665
|
unblocked: Nicht blockiert
|
|
665
666
|
moderations:
|
|
667
|
+
index:
|
|
668
|
+
title: Gemeldeter Inhalt
|
|
666
669
|
report:
|
|
667
670
|
reasons:
|
|
668
671
|
does_not_belong: Gehört nicht
|
|
@@ -979,9 +982,12 @@ de:
|
|
|
979
982
|
areas: Bereiche
|
|
980
983
|
authorization_workflows: Verifizierungsmethoden
|
|
981
984
|
dashboard: Instrumententafel
|
|
985
|
+
edit_external_domains: Externe Domain-Whitelist
|
|
986
|
+
edit_organization_appearance: Homepage-Erscheinungsbild bearbeiten
|
|
982
987
|
impersonatable_users: Überschaubare Benutzer
|
|
983
988
|
impersonations: Benutzerverwaltung
|
|
984
989
|
metrics: Kriterien
|
|
990
|
+
pages: Seiten
|
|
985
991
|
panel: Admin
|
|
986
992
|
participants: Benutzer
|
|
987
993
|
scope_types: Bereichstypen
|
|
@@ -1073,6 +1079,7 @@ de:
|
|
|
1073
1079
|
moderation:
|
|
1074
1080
|
fields:
|
|
1075
1081
|
created_at: Erstellungsdatum
|
|
1082
|
+
deleted_resource: Gelöschte Ressource
|
|
1076
1083
|
hidden_at: Versteckt bei
|
|
1077
1084
|
participatory_space: Beteiligungsbereich
|
|
1078
1085
|
report_count: Anzahl
|