decidim-admin 0.28.2 → 0.28.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -13
  3. data/app/commands/decidim/admin/destroy_component.rb +1 -0
  4. data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
  5. data/app/controllers/concerns/decidim/admin/verification_conflicts/filterable.rb +31 -0
  6. data/app/controllers/decidim/admin/application_controller.rb +1 -1
  7. data/app/controllers/decidim/admin/conflicts_controller.rb +13 -5
  8. data/app/helpers/decidim/admin/application_helper.rb +13 -0
  9. data/app/views/decidim/admin/block_user/new.html.erb +1 -1
  10. data/app/views/decidim/admin/components/index.html.erb +5 -1
  11. data/app/views/decidim/admin/conflicts/index.html.erb +29 -6
  12. data/app/views/decidim/admin/exports/_dropdown.html.erb +5 -5
  13. data/app/views/decidim/admin/imports/_dropdown.html.erb +6 -4
  14. data/app/views/decidim/admin/imports/new.html.erb +5 -4
  15. data/app/views/decidim/admin/organization_appearance/form/_minimap.html.erb +3 -3
  16. data/app/views/layouts/decidim/admin/_application.html.erb +1 -1
  17. data/config/locales/ca.yml +4 -2
  18. data/config/locales/cs.yml +7 -0
  19. data/config/locales/de.yml +2 -0
  20. data/config/locales/en.yml +2 -0
  21. data/config/locales/es-MX.yml +2 -0
  22. data/config/locales/es-PY.yml +2 -0
  23. data/config/locales/es.yml +4 -2
  24. data/config/locales/eu.yml +2 -0
  25. data/config/locales/fi-plain.yml +3 -1
  26. data/config/locales/fi.yml +7 -5
  27. data/config/locales/fr-CA.yml +2 -0
  28. data/config/locales/fr.yml +2 -0
  29. data/config/locales/ja.yml +2 -0
  30. data/config/locales/ro-RO.yml +9 -3
  31. data/config/locales/sv.yml +302 -162
  32. data/lib/decidim/admin/test/invite_participatory_space_users_shared_context.rb +1 -0
  33. data/lib/decidim/admin/test/manage_attachments_examples.rb +13 -1
  34. data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +4 -4
  35. data/lib/decidim/admin/version.rb +1 -1
  36. data/lib/decidim/admin.rb +0 -15
  37. metadata +9 -10
  38. data/app/controllers/concerns/decidim/admin/paginable.rb +0 -20
  39. data/app/helpers/decidim/admin/paginable/per_page_helper.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75ccdc4a2f091d223bff9fa56f75347e91c6d8752bfba25eaf0a758191d705c0
4
- data.tar.gz: f451da89da78adc0809dd9fee4af0f87761870f5cbb8eee8cc9c20868dc9b023
3
+ metadata.gz: 1b4c55445cbf1d61f5aabef092569d33d79906e1de58106cab2d0650cf4046b5
4
+ data.tar.gz: 508c3c95f08c68df503df0b9bd9bb752a9d8c999f048421133da80190a876add
5
5
  SHA512:
6
- metadata.gz: 11998db7b9f88af5bef0396a5adb179a9495a8acb21e80b55f9a2e3257557356a5c414039016cf826e06a16e1e6fb5adcbe4e36830000beff84ee9c1abd41852
7
- data.tar.gz: 5fbf7d4e81e2fd1a366310eb5dbfd1d6aad2473d3d54af70ef1e6a095739468c8c0cf6e17df1208d6829af345fe52b4aa713d5abb7443f8da15fb63ae44ba929
6
+ metadata.gz: 5cfe3db6149075c9308985f333d7f9cbd03e7f6878f34545c40c67c40378466e105ec82fe960c1a1625d75f1b8a31870aedc17647d7e7c72677c2cc424f1bd76
7
+ data.tar.gz: 4bd3495d6613ee0619dba4825ad378eba623983bb1f7074649039ab4a7381f07edc4bb6c641722779c8ac57d7057421145049c7a7574ce1b430a1b4f88c5606d
data/README.md CHANGED
@@ -42,19 +42,6 @@ There are some pages that exist by default and cannot be deleted since there
42
42
  are links to them inside the Decidim framework, see `Decidim::StaticPage` for
43
43
  the default list.
44
44
 
45
- ### Pager Configuration
46
-
47
- The number of results shown per page and per page range can be configured in the app `decidim.rb` initializer as follows:
48
-
49
- ```ruby
50
- Decidim::Admin.configure do |config|
51
- config.per_page_range = [15, 50, 100]
52
- end
53
- ```
54
-
55
- * `Decidim::Admin.per_page_range.first` sets the `default_per_page` value for `Decidim::Admin` (in Kaminari)
56
- * `Decidim::Admin.per_page_range.last` sets the `max_per_page` value for `Decidim::Admin` (in Kaminari)
57
-
58
45
  ## Contributing
59
46
 
60
47
  See [Decidim](https://github.com/decidim/decidim).
@@ -44,6 +44,7 @@ module Decidim
44
44
  end
45
45
 
46
46
  def run_before_hooks
47
+ Decidim::Reminder.where(component: @component).destroy_all
47
48
  @component.manifest.run_hooks(:before_destroy, @component)
48
49
  end
49
50
 
@@ -9,7 +9,7 @@ module Decidim
9
9
  extend ActiveSupport::Concern
10
10
 
11
11
  included do
12
- include Decidim::Admin::Paginable
12
+ include Decidim::Paginable
13
13
  include Decidim::TranslatableAttributes
14
14
 
15
15
  helper Decidim::Admin::FilterableHelper
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/concern"
4
+
5
+ module Decidim
6
+ module Admin
7
+ module VerificationConflicts
8
+ module Filterable
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ include Decidim::Admin::Filterable
13
+
14
+ private
15
+
16
+ def base_query
17
+ collection
18
+ end
19
+
20
+ def search_field_predicate
21
+ :current_user_name_or_current_user_nickname_or_current_user_email_cont
22
+ end
23
+
24
+ def filters
25
+ []
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -17,6 +17,7 @@ module Decidim
17
17
  include Headers::ContentSecurityPolicy
18
18
  include DisableRedirectionToExternalHost
19
19
  include Decidim::Admin::Concerns::HasBreadcrumbItems
20
+ include ActiveStorage::SetCurrent
20
21
 
21
22
  helper Decidim::Admin::ApplicationHelper
22
23
  helper Decidim::Admin::AttributesDisplayHelper
@@ -25,7 +26,6 @@ module Decidim
25
26
  helper Decidim::Admin::IconWithTooltipHelper
26
27
  helper Decidim::Admin::MenuHelper
27
28
  helper Decidim::Admin::ScopesHelper
28
- helper Decidim::Admin::Paginable::PerPageHelper
29
29
  helper Decidim::DecidimFormHelper
30
30
  helper Decidim::ReplaceButtonsHelper
31
31
  helper Decidim::ScopesHelper
@@ -3,18 +3,16 @@
3
3
  module Decidim
4
4
  module Admin
5
5
  class ConflictsController < Decidim::Admin::ApplicationController
6
+ include Decidim::Admin::VerificationConflicts::Filterable
7
+
6
8
  layout "decidim/admin/users"
7
9
 
8
- helper_method :context_breadcrumb_items
10
+ helper_method :context_breadcrumb_items, :conflicts
9
11
 
10
12
  add_breadcrumb_item_from_menu :impersonate_menu
11
13
 
12
14
  def index
13
15
  enforce_permission_to :index, :impersonatable_user
14
-
15
- @conflicts = Decidim::Verifications::Conflict.joins(:current_user).where(
16
- decidim_users: { decidim_organization_id: current_organization.id }
17
- )
18
16
  end
19
17
 
20
18
  def edit
@@ -66,6 +64,16 @@ module Decidim
66
64
  url: decidim_admin.impersonatable_users_path
67
65
  }
68
66
  end
67
+
68
+ def collection
69
+ @collection ||= Decidim::Verifications::Conflict.joins(:current_user).where(
70
+ decidim_users: { decidim_organization_id: current_organization.id }
71
+ )
72
+ end
73
+
74
+ def conflicts
75
+ @conflicts ||= filtered_collection.order(created_at: :desc)
76
+ end
69
77
  end
70
78
  end
71
79
  end
@@ -16,6 +16,19 @@ module Decidim
16
16
  include Decidim::Admin::ResourceScopeHelper
17
17
  include Decidim::Admin::SearchFormHelper
18
18
 
19
+ # Public: Overwrites the `cell` helper method to automatically set some
20
+ # common context.
21
+ #
22
+ # name - the name of the cell to render
23
+ # model - the cell model
24
+ # options - a Hash with options
25
+ #
26
+ # Renders the cell contents.
27
+ def cell(name, model, options = {}, &)
28
+ options = { context: { view_context: self, current_user: } }.deep_merge(options)
29
+ super
30
+ end
31
+
19
32
  def participatory_space_active_link?(component)
20
33
  endpoints = component.manifest.admin_engine.try(:participatory_space_endpoints)
21
34
  endpoints && is_active_link?(decidim_admin_participatory_processes.components_path(current_participatory_space), %r{/\d+/manage/(#{endpoints.join("|")})\b})
@@ -19,7 +19,7 @@
19
19
  <%= cell("decidim/announcement", t(".already_reported_html"), callout_class: "alert" ) %>
20
20
  <% end %>
21
21
 
22
- <% if defined?(Decidim::Templates) %>
22
+ <% if Decidim.module_installed?(:templates) %>
23
23
  <%= render "decidim/templates/admin/block_user_templates/template_chooser", form: f %>
24
24
  <% end %>
25
25
 
@@ -14,8 +14,12 @@
14
14
  <div class="dropdown-pane" id="add-component-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
15
15
  <ul class="vertical menu add-components font-normal">
16
16
  <% @manifests.each do |manifest| %>
17
- <li><%= link_to t("#{manifest.name}.name", scope: "decidim.components"), new_component_path(type: manifest.name), class: manifest.name %></li>
17
+ <%= link_to new_component_path(type: manifest.name), class: manifest.name do %>
18
+ <li>
19
+ <%= t("#{manifest.name}.name", scope: "decidim.components") %>
20
+ </li>
18
21
  <% end %>
22
+ <% end %>
19
23
  </ul>
20
24
  </div>
21
25
  </div>
@@ -1,10 +1,32 @@
1
1
  <% add_decidim_page_title(t("title", scope: "decidim.admin.conflicts")) %>
2
- <div class="card">
3
- <div class="item_show__header">
4
- <h1 class="item_show__header-title">
5
- <%= t("title", scope: "decidim.admin.conflicts") %>
6
- </h1>
2
+ <div class="item_show__header">
3
+ <h1 class="item_show__header-title">
4
+ <%= t("title", scope: "decidim.admin.conflicts") %>
5
+ </h1>
6
+ </div>
7
+
8
+ <div class="filters__section">
9
+ <div class="fcell search">
10
+ <%= search_form_for(query, url: url_for) do |form| %>
11
+ <%= applied_filters_hidden_field_tags %>
12
+ <div class="input-group">
13
+ <%= form.search_field(
14
+ search_field_predicate,
15
+ class: "input-group-field",
16
+ label: false,
17
+ placeholder: t(".text")
18
+ ) %>
19
+ <div class="input-group-button">
20
+ <button type="submit" class="text-secondary" aria-label="<%= t("decidim.search.term_input_placeholder") %>">
21
+ <%= icon "search-line", class: "fill-secondary w-4 h-4" %>
22
+ </button>
23
+ </div>
24
+ </div>
25
+ <% end %>
7
26
  </div>
27
+ </div>
28
+
29
+ <div class="card">
8
30
  <div class="table-scroll">
9
31
  <table class="table-list">
10
32
  <thead>
@@ -17,7 +39,7 @@
17
39
  </tr>
18
40
  </thead>
19
41
  <tbody>
20
- <% @conflicts.each do |conflict| %>
42
+ <% conflicts.each do |conflict| %>
21
43
  <tr>
22
44
  <td><%= conflict.current_user.name %></td>
23
45
  <td><%= conflict.managed_user.name %></td>
@@ -30,3 +52,4 @@
30
52
  </table>
31
53
  </div>
32
54
  </div>
55
+ <%= decidim_paginate conflicts %>
@@ -10,11 +10,11 @@
10
10
  <ul class="vertical menu add-components">
11
11
  <% component.manifest.export_manifests.each do |manifest| %>
12
12
  <% manifest.formats.each do |format| %>
13
- <li class="exports--format--<%= format.downcase %> exports--<%= manifest.name %>">
14
- <%= link_to t("decidim.admin.exports.export_as", name: t("decidim.#{component.manifest.name}.admin.exports.#{manifest.name}"), export_format: t("decidim.admin.exports.formats.#{format}")),
15
- exports_path(component, id: manifest.name, format:, resource_id:, filters:),
16
- method: :post %>
17
- </li>
13
+ <%= link_to exports_path(component, id: manifest.name, format:, resource_id:, filters:), method: :post do %>
14
+ <li class="exports--format--<%= format.downcase %> exports--<%= manifest.name %>">
15
+ <%= t("decidim.admin.exports.export_as", name: t("decidim.#{component.manifest.name}.admin.exports.#{manifest.name}"), export_format: t("decidim.admin.exports.formats.#{format}")) %>
16
+ </li>
17
+ <% end %>
18
18
  <% end %>
19
19
  <% end %>
20
20
  </ul>
@@ -7,10 +7,12 @@
7
7
  <% if custom %>
8
8
  <%= yield %>
9
9
  <% else %>
10
- <% component.manifest.import_manifests.each do |import_manifest| %>
11
- <li class="imports--file imports--<%= import_manifest.name %>">
12
- <%= link_to import_manifest.message(:label, self), admin_imports_path(component, resource_id:, name: import_manifest.name) %>
13
- </li>
10
+ <% component.manifest.import_manifests.each do |import_manifest| %>
11
+ <%= link_to admin_imports_path(component, resource_id:, name: import_manifest.name) do %>
12
+ <li class="imports--file imports--<%= import_manifest.name %>">
13
+ <%= import_manifest.message(:label, self) %>
14
+ </li>
15
+ <% end %>
14
16
  <% end %>
15
17
  <% end %>
16
18
  </ul>
@@ -12,10 +12,11 @@
12
12
  <div class="dropdown-pane" id="example-dropdown" data-dropdown data-position=bottom data-alignment=right data-auto-focus="true" data-close-on-click="true">
13
13
  <ul class="vertical menu add-components">
14
14
  <% mime_types.each do |format, name| %>
15
- <li class="examples--format--<%= format.downcase %> examples--<%= import_manifest.name %>">
16
- <%= link_to t(".download_example_format", name:),
17
- admin_imports_example_path(@current_component, name: import_manifest.name, format:) %>
18
- </li>
15
+ <%= link_to admin_imports_example_path(@current_component, name: import_manifest.name, format:) do %>
16
+ <li class="examples--format--<%= format.downcase %> examples--<%= import_manifest.name %>">
17
+ <%= t(".download_example_format", name:) %>
18
+ </li>
19
+ <% end %>
19
20
  <% end %>
20
21
  </ul>
21
22
  </div>
@@ -3,7 +3,7 @@
3
3
  <div id="minimap" class="grid grid-cols-1 md:grid-cols-2">
4
4
  <div class="minimap-tab">
5
5
  <% if current_organization.favicon.attached? %>
6
- <%= image_tag current_organization.attached_uploader(:favicon).path, class: "minimap-favicon" %>
6
+ <%= image_tag current_organization.attached_uploader(:favicon).url, class: "minimap-favicon" %>
7
7
  <% else %>
8
8
  <%= content_tag :div, nil, { class: "minimap-favicon placeholder", style: "width: #{image_width(current_organization, :favicon) * size_factor}px; height: #{image_height(current_organization, :favicon) * size_factor}px;" } do %>
9
9
  <span><%= t("favicon", scope: "activemodel.attributes.organization") %></span>
@@ -13,7 +13,7 @@
13
13
 
14
14
  <div class="minimap-header">
15
15
  <% if current_organization.logo.present? %>
16
- <%= image_tag current_organization.attached_uploader(:logo).path, class: "minimap-logo" %>
16
+ <%= image_tag current_organization.attached_uploader(:logo).url, class: "minimap-logo" %>
17
17
  <% else %>
18
18
  <%= content_tag :div, nil, { class: "minimap-logo placeholder", style: "width: #{image_width(current_organization, :logo) * size_factor}px; height: #{image_height(current_organization, :logo) * size_factor}px;" } do %>
19
19
  <span><%= t("logo", scope: "activemodel.attributes.organization") %></span>
@@ -26,7 +26,7 @@
26
26
 
27
27
  <div class="minimap-footer">
28
28
  <% if current_organization.official_img_footer.attached? %>
29
- <%= image_tag current_organization.attached_uploader(:official_img_footer).path, class: "minimap-official_img_footer" %>
29
+ <%= image_tag current_organization.attached_uploader(:official_img_footer).url, class: "minimap-official_img_footer" %>
30
30
  <% else %>
31
31
  <%= content_tag :div, nil, { class: "minimap-official_img_footer placeholder", style: "width: #{image_width(current_organization, :official_img_footer) * size_factor}px; height: #{image_height(current_organization, :official_img_footer) * size_factor}px;" } do %>
32
32
  <span><%= t("official_img_footer", scope: "activemodel.attributes.organization") %></span>
@@ -23,7 +23,7 @@
23
23
  <div class="layout-nav">
24
24
  <%= link_to decidim_admin.root_path, class: "logo hidden md:block", data: { "external-link": false }, aria: { label: t("decidim.accessibility.logo", organization: current_organization.name) } do %>
25
25
  <% if current_organization.logo.present? %>
26
- <%= image_tag current_organization.attached_uploader(:logo).path, alt: current_organization.name %>
26
+ <%= image_tag current_organization.attached_uploader(:logo).url, alt: current_organization.name %>
27
27
  <% else %>
28
28
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 109">
29
29
  <g fill="#fff">
@@ -23,7 +23,7 @@ ca:
23
23
  category:
24
24
  description: Descripció
25
25
  name: Nom
26
- parent_id: Pare
26
+ parent_id: Categoria mare
27
27
  weight: Ordre de posició
28
28
  component:
29
29
  name: Nom
@@ -110,7 +110,7 @@ ca:
110
110
  code: Codi
111
111
  name: Nom
112
112
  organization: Organització
113
- parent_id: Pare
113
+ parent_id: Àmbit pare
114
114
  scope_type: Tipus d'àmbit
115
115
  scope_type_id: Tipus d'àmbit
116
116
  scope_type:
@@ -351,6 +351,8 @@ ca:
351
351
  conflicts:
352
352
  attempts: Intents
353
353
  'false': 'No'
354
+ index:
355
+ text: Cercar per correu electrònic, nom o àlies.
354
356
  managed_user_name: Usuari gestionat
355
357
  solved: Resolt
356
358
  title: Conflictes de verificació
@@ -351,6 +351,8 @@ cs:
351
351
  conflicts:
352
352
  attempts: Pokusy
353
353
  'false': 'Ne'
354
+ index:
355
+ text: Hledat podle aktuálního uživatelského e-mailu, jména nebo přezdívky.
354
356
  managed_user_name: Spravovaný uživatel
355
357
  solved: Vyřešeno
356
358
  title: Konflikty ověření
@@ -379,6 +381,11 @@ cs:
379
381
  update: Aktualizovat
380
382
  dashboard:
381
383
  pending_moderations:
384
+ anouncement:
385
+ one: Je zde %{count} čekající na moderování
386
+ few: Jsou zde %{count} čekající na moderování
387
+ many: Je zde %{count} čekajících na moderování
388
+ other: Je tu %{count} čekajících na moderování
382
389
  goto_moderation: Přejít na globální moderaci
383
390
  title: Čekající moderování
384
391
  show:
@@ -351,6 +351,8 @@ de:
351
351
  conflicts:
352
352
  attempts: Versuche
353
353
  'false': 'Nein'
354
+ index:
355
+ text: Suche nach bestehender E-Mail, Name oder Spitzname des Teilnehmenden.
354
356
  managed_user_name: Verwalteter Benutzer
355
357
  solved: Gelöst
356
358
  title: Überprüfungskonflikte
@@ -351,6 +351,8 @@ en:
351
351
  conflicts:
352
352
  attempts: Attempts
353
353
  'false': 'No'
354
+ index:
355
+ text: Search by current user email, name or nickname.
354
356
  managed_user_name: Managed User
355
357
  solved: Solved
356
358
  title: Verification conflicts
@@ -351,6 +351,8 @@ es-MX:
351
351
  conflicts:
352
352
  attempts: Intentos
353
353
  'false': 'No'
354
+ index:
355
+ text: Buscar por correo electrónico, nombre o alias.
354
356
  managed_user_name: Usuario gestionado
355
357
  solved: Resuelto
356
358
  title: Conflictos de verificación
@@ -351,6 +351,8 @@ es-PY:
351
351
  conflicts:
352
352
  attempts: Intentos
353
353
  'false': 'No'
354
+ index:
355
+ text: Buscar por correo electrónico, nombre o alias.
354
356
  managed_user_name: Usuario gestionado
355
357
  solved: Resuelto
356
358
  title: Conflictos de verificación
@@ -23,7 +23,7 @@ es:
23
23
  category:
24
24
  description: Descripción
25
25
  name: Nombre
26
- parent_id: Superior
26
+ parent_id: Categoría madre
27
27
  weight: Orden de posición
28
28
  component:
29
29
  name: Nombre
@@ -110,7 +110,7 @@ es:
110
110
  code: Código
111
111
  name: Nombre
112
112
  organization: Organización
113
- parent_id: Superior
113
+ parent_id: Ámbito padre
114
114
  scope_type: Tipo de ámbito
115
115
  scope_type_id: Tipo de ámbito
116
116
  scope_type:
@@ -351,6 +351,8 @@ es:
351
351
  conflicts:
352
352
  attempts: Intentos
353
353
  'false': 'No'
354
+ index:
355
+ text: Buscar por correo electrónico, nombre o alias.
354
356
  managed_user_name: Usuario gestionado
355
357
  solved: Resuelto
356
358
  title: Conflictos de verificación
@@ -351,6 +351,8 @@ eu:
351
351
  conflicts:
352
352
  attempts: Saiakerak
353
353
  'false': 'Ez'
354
+ index:
355
+ text: Bilatu gaur egungo erabiltzailearen posta elektronikoaren, izenaren edo ezizenaren bidez.
354
356
  managed_user_name: Erabiltzaile kudeatua
355
357
  solved: Ebatzita
356
358
  title: Egiaztapen-arazoak
@@ -319,7 +319,7 @@ fi-pl:
319
319
  create:
320
320
  error: Tämän komponentin luomisessa tapahtui virhe.
321
321
  success: Komponentti luotu onnistuneesti.
322
- success_landing_page: Komponentti luotu onnistuneesti. Voit lisätä sisältölohkon tälle komponentille osallistumistilan etusivulle. Siirry <a href="%{landing_page_path}">Laskeutumissivu-osioon</a> lisätäksesi komponentin osallistumistilan etusivulle.
322
+ success_landing_page: Komponentin luonti onnistui. Voit lisätä sisältölohkon tälle komponentille osallistumistilan etusivulle. Siirry <a href="%{landing_page_path}">Laskeutumissivu-osioon</a> lisätäksesi komponentin osallistumistilan etusivulle.
323
323
  destroy:
324
324
  error: Tämän komponentin tuhoamisessa tapahtui virhe.
325
325
  success: Komponentti poistettu onnistuneesti.
@@ -351,6 +351,8 @@ fi-pl:
351
351
  conflicts:
352
352
  attempts: Yritykset
353
353
  'false': 'Ei'
354
+ index:
355
+ text: Etsi nykyisen käyttäjän sähköpostin, nimen tai nimimerkin perusteella.
354
356
  managed_user_name: Hallittu käyttäjä
355
357
  solved: Ratkaistu
356
358
  title: Vahvistusten ristiriidat
@@ -298,7 +298,7 @@ fi:
298
298
  error: Aihepiirin luonti epäonnistui.
299
299
  success: Aihepiirin luonti onnistui.
300
300
  destroy:
301
- error: Tämän aihepiirin poistaminen epäonnistui. Poista ensin kaikki sen ala-aihepiirit ja varmista, että mikään muu kohde ei liity tähän aihepiiriin. Kokeile sen jälkeen uudestaan.
301
+ error: Tämän aihepiirin poistaminen epäonnistui. Poista ensin kaikki sen ala-aihepiirit ja varmista, että mikään muu kohde ei liity tähän aihepiiriin. Kokeile sen jälkeen uudelleen.
302
302
  success: Aihepiirin poistaminen onnistui.
303
303
  edit:
304
304
  title: Muokkaa aihepiiriä
@@ -319,7 +319,7 @@ fi:
319
319
  create:
320
320
  error: Komponentin luonti epäonnistui.
321
321
  success: Komponentin luonti onnistui.
322
- success_landing_page: Komponentti luotu onnistuneesti. Voit lisätä sisältölohkon tälle komponentille osallistumistilan etusivulle. Siirry <a href="%{landing_page_path}">Laskeutumissivu-osioon</a> lisätäksesi komponentin osallistumistilan etusivulle.
322
+ success_landing_page: Komponentin luonti onnistui. Voit lisätä sisältölohkon tälle komponentille osallistumistilan etusivulle. Siirry <a href="%{landing_page_path}">Laskeutumissivu-osioon</a> lisätäksesi komponentin osallistumistilan etusivulle.
323
323
  destroy:
324
324
  error: Komponentin tuhoaminen epäonnistui.
325
325
  success: Komponentin poisto onnistui.
@@ -351,6 +351,8 @@ fi:
351
351
  conflicts:
352
352
  attempts: Yritykset
353
353
  'false': 'Ei'
354
+ index:
355
+ text: Etsi nykyisen käyttäjän sähköpostin, nimen tai nimimerkin perusteella.
354
356
  managed_user_name: Hallittu käyttäjä
355
357
  solved: Ratkaistu
356
358
  title: Vahvistusten ristiriidat
@@ -729,7 +731,7 @@ fi:
729
731
  newsletters:
730
732
  create:
731
733
  error: Uutiskirjeen luonti epäonnistui.
732
- success: Uutiskirje luotu onnistuneesti. Tarkasta se ennen lähetystä.
734
+ success: Uutiskirjeen luonti onnistui. Tarkasta se ennen lähetystä.
733
735
  deliver:
734
736
  error: Uutiskirjeen toimitus epäonnistui.
735
737
  success: Uutiskirjeen toimitus onnistui.
@@ -887,7 +889,7 @@ fi:
887
889
  participatory_space_private_users_csv_imports:
888
890
  create:
889
891
  invalid: CSV-tiedoston lukeminen epäonnistui. Tarkasta, että olet seurannut esitettyjä ohjeita.
890
- success: CSV-tiedosto ladattu onnistuneesti. Lähetämme kutsusähköpostin osallistujille. Tämä voi kestää hetken.
892
+ success: CSV-tiedoston lataus onnistui. Lähetämme kutsusähköpostin osallistujille. Tämä voi kestää hetken.
891
893
  new:
892
894
  csv_upload:
893
895
  title: Lataa CSV-tiedosto
@@ -1037,7 +1039,7 @@ fi:
1037
1039
  user_group:
1038
1040
  csv_verify:
1039
1041
  invalid: CSV-tiedoston käsittely epäonnistui.
1040
- success: CSV-tiedosto on ladattu onnistuneesti. Vahvistamme kriteerien mukaiset käyttäjäryhmät. Tämä voi kestää hetken.
1042
+ success: CSV-tiedoston lataus onnistui. Vahvistamme kriteerien mukaiset käyttäjäryhmät. Tämä voi kestää hetken.
1041
1043
  reject:
1042
1044
  invalid: Käyttäjäryhmän hylkäys epäonnistui.
1043
1045
  success: Käyttäjäryhmän hylkäys onnistui.
@@ -351,6 +351,8 @@ fr-CA:
351
351
  conflicts:
352
352
  attempts: Tentatives
353
353
  'false': 'Non'
354
+ index:
355
+ text: Recherche par adresse e-mail, nom ou pseudonyme.
354
356
  managed_user_name: Utilisateur représenté
355
357
  solved: Résolu
356
358
  title: Conflits de vérification
@@ -351,6 +351,8 @@ fr:
351
351
  conflicts:
352
352
  attempts: Tentatives
353
353
  'false': 'Non'
354
+ index:
355
+ text: Recherche par adresse e-mail, nom ou pseudonyme.
354
356
  managed_user_name: Utilisateur représenté
355
357
  solved: Résolu
356
358
  title: Conflits de vérification
@@ -351,6 +351,8 @@ ja:
351
351
  conflicts:
352
352
  attempts: 試行回数
353
353
  'false': 'いいえ'
354
+ index:
355
+ text: 現在のユーザーのメールアドレス、名前、ニックネームで検索します。
354
356
  managed_user_name: 管理対象ユーザー
355
357
  solved: 解決済み
356
358
  title: 確認の競合
@@ -13,7 +13,7 @@ ro:
13
13
  attachment:
14
14
  attachment_collection_id: Dosar
15
15
  description: Descriere
16
- file: Fişier
16
+ file: Fișier
17
17
  title: Numele fișierului sau al imaginii atașate
18
18
  weight: Poziție
19
19
  attachment_collection:
@@ -38,6 +38,9 @@ ro:
38
38
  user_group_id: Creează importuri ca
39
39
  newsletter:
40
40
  body: Conținut
41
+ send_to_all_users: Trimiteți către toți utilizatorii
42
+ send_to_followers: Trimiteți către urmăritori
43
+ send_to_participants: Trimiteți către participanți
41
44
  subject: Titlu
42
45
  organization:
43
46
  admin_terms_of_service_body: Corp pentru condițiile de administrare a serviciului
@@ -126,11 +129,12 @@ ro:
126
129
  weight: Poziție
127
130
  static_page_topic:
128
131
  description: Descriere
132
+ name: Titlul subiectului
129
133
  show_in_footer: Afișează în subsol
130
134
  title: Titlu
131
135
  weight: Poziție
132
136
  user_group_csv_verification:
133
- file: Fişier
137
+ file: Fișier
134
138
  errors:
135
139
  models:
136
140
  newsletter:
@@ -190,6 +194,7 @@ ro:
190
194
  per_page: Pe pagină
191
195
  permissions: Drepturi
192
196
  reject: Respinge
197
+ send_me_a_test_email: Trimite-mi un e-mail de test
193
198
  share: Distribuie
194
199
  user:
195
200
  new: Administrator nou
@@ -202,7 +207,7 @@ ro:
202
207
  accept: Sunt de acord cu termenii
203
208
  are_you_sure: Sigur doriți să refuzați termenii de utilizare a serviciului?
204
209
  refuse: Refuz termenii
205
- title: Ești de acord cu Termenii de Utilizare?
210
+ title: Sunt de acord cu Termenii de Utilizare
206
211
  required_review:
207
212
  alert: 'Necesar: Revizuirea actualizărilor termenilor de utilizare a serviciului'
208
213
  callout: Vă rugăm să dedicați un moment pentru a revizui Termenii de utilizare pentru admin. În caz contrar, nu veți putea administra platforma.
@@ -282,6 +287,7 @@ ro:
282
287
  block_user:
283
288
  new:
284
289
  action: Blochează contul și trimite justificarea
290
+ already_reported_html: Continuând cu această acțiune veți ascunde de asemenea conținutul participanților.
285
291
  description: Blocarea unui utilizator va face contul său inutilizabil. Poți să furnizezi în justificarea ta orice instrucțiuni cu privire la modul în care vei lua în considerare deblocarea utilizatorului.
286
292
  justification: Justificare
287
293
  title: Blochează utilizatorul %{name}