decidim-decidim_awesome 0.11.1 → 0.11.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/app/cells/concerns/decidim/decidim_awesome/proposal_l_cell_override.rb +4 -24
- data/app/commands/concerns/decidim/decidim_awesome/proposals/update_proposal_override.rb +2 -2
- data/app/controllers/concerns/decidim/decidim_awesome/admin_accountability/admin/filterable_helper.rb +3 -2
- data/app/controllers/concerns/decidim/decidim_awesome/proposals/orderable_override.rb +9 -22
- data/app/controllers/decidim/decidim_awesome/admin/admin_accountability_controller.rb +7 -7
- data/app/controllers/decidim/decidim_awesome/admin/maintenance_controller.rb +1 -1
- data/app/models/decidim/decidim_awesome/paper_trail_version.rb +5 -1
- data/config/locales/ca.yml +82 -6
- data/config/locales/cs.yml +83 -6
- data/config/locales/de.yml +36 -5
- data/config/locales/es.yml +85 -8
- data/config/locales/eu.yml +15 -2
- data/config/locales/fr.yml +84 -6
- data/config/locales/hu.yml +10 -4
- data/config/locales/it.yml +14 -5
- data/config/locales/ja.yml +81 -5
- data/config/locales/lt.yml +0 -4
- data/config/locales/nl.yml +7 -3
- data/config/locales/pt-BR.yml +14 -6
- data/config/locales/pt-PT.yml +0 -1
- data/config/locales/ro-RO.yml +11 -4
- data/config/locales/sv.yml +15 -4
- data/lib/decidim/decidim_awesome/awesome.rb +4 -4
- data/lib/decidim/decidim_awesome/checksums.yml +1 -0
- data/lib/decidim/decidim_awesome/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ab22e9b6e3f198f00701fe777b94bfb01acf39a7f88daa4a10e86907f1b30ec
|
4
|
+
data.tar.gz: f05e18e3bf8236948d901fd8a68c25a70ad2ed9f97afe3201c88914dfa2b773f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15f9481a81de5aa0374a6c56c673b4bb372cdb0ddd3169743ecf0b3abe931e1dd50f90e63c76c462ccdb756367f3dd02418436b831f85d8d3b4f74e87545e643
|
7
|
+
data.tar.gz: 1ae626439a52e64a6a84869781fafd6f1ca8c9a3a28a8b9d33a16086931abb0b71ea9eb53b6029a6692a800a638af3ae2b3fad640c098434f7db2a32e2b59890
|
data/CHANGELOG.md
CHANGED
@@ -8,36 +8,16 @@ module Decidim
|
|
8
8
|
included do
|
9
9
|
private
|
10
10
|
|
11
|
+
alias_method :decidim_original_cache_hash, :cache_hash
|
12
|
+
|
11
13
|
def metadata_cell
|
12
14
|
awesome_voting_manifest_for(resource&.component)&.proposal_metadata_cell.presence || "decidim/proposals/proposal_metadata"
|
13
15
|
end
|
14
16
|
|
15
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
16
|
-
# rubocop:disable Metrics/PerceivedComplexity
|
17
17
|
def cache_hash
|
18
|
-
|
19
|
-
|
20
|
-
hash << model.cache_key_with_version
|
21
|
-
hash << model.proposal_votes_count
|
22
|
-
hash << model.extra_fields&.reload&.vote_weight_totals
|
23
|
-
hash << model.endorsements_count
|
24
|
-
hash << model.comments_count
|
25
|
-
hash << Digest::MD5.hexdigest(model.component.cache_key_with_version)
|
26
|
-
hash << Digest::MD5.hexdigest(resource_image_path) if resource_image_path
|
27
|
-
hash << render_space? ? 1 : 0
|
28
|
-
if current_user
|
29
|
-
hash << current_user.cache_key_with_version
|
30
|
-
hash << current_user.follows?(model) ? 1 : 0
|
31
|
-
end
|
32
|
-
hash << model.follows_count
|
33
|
-
hash << Digest::MD5.hexdigest(model.authors.map(&:cache_key_with_version).to_s)
|
34
|
-
hash << (model.must_render_translation?(model.organization) ? 1 : 0) if model.respond_to?(:must_render_translation?)
|
35
|
-
hash << model.component.participatory_space.active_step.id if model.component.participatory_space.try(:active_step)
|
36
|
-
|
37
|
-
hash.join(Decidim.cache_key_separator)
|
18
|
+
extra_hash = model.extra_fields&.reload&.vote_weight_totals
|
19
|
+
"#{decidim_original_cache_hash}#{Decidim.cache_key_separator}#{extra_hash}"
|
38
20
|
end
|
39
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
40
|
-
# rubocop:enable Metrics/PerceivedComplexity
|
41
21
|
end
|
42
22
|
end
|
43
23
|
end
|
@@ -13,10 +13,11 @@ module Decidim
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def applied_filters_tags(i18n_ctx)
|
16
|
-
|
16
|
+
admin_role_type = PaperTrailVersion.safe_admin_role_type(params[:admin_role_type])
|
17
|
+
if global? && admin_role_type.present?
|
17
18
|
content_tag(:span, class: "label secondary") do
|
18
19
|
concat "#{i18n_filter_label(:admin_role_type, filterable_i18n_scope_from_ctx(i18n_ctx))}: "
|
19
|
-
concat t("decidim.decidim_awesome.admin.admin_accountability.admin_roles.#{
|
20
|
+
concat t("decidim.decidim_awesome.admin.admin_accountability.admin_roles.#{admin_role_type}", default: admin_role_type)
|
20
21
|
concat icon_link_to(
|
21
22
|
"close-circle-line",
|
22
23
|
url_for(export_params.except(:admin_role_type)),
|
@@ -14,6 +14,8 @@ module Decidim
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
+
alias_method :decidim_original_reorder, :reorder
|
18
|
+
|
17
19
|
# read order from session if available
|
18
20
|
def order
|
19
21
|
@order ||= detect_order(session[:order]) || default_order
|
@@ -31,38 +33,23 @@ module Decidim
|
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
34
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
35
36
|
def reorder(proposals)
|
37
|
+
title_by_locale = Arel.sql(proposals.sanitize_sql(["decidim_proposals_proposals.title->>? #{collation}", locale]))
|
38
|
+
title_by_machine_translation = Arel.sql(proposals.sanitize_sql(["decidim_proposals_proposals.title->'machine_translations'->>? #{collation}", locale]))
|
39
|
+
title_by_default_locale = Arel.sql(proposals.sanitize_sql(["decidim_proposals_proposals.title->>? #{collation}", default_locale]))
|
36
40
|
case order
|
37
41
|
when "az"
|
38
|
-
proposals.order(
|
39
|
-
decidim_proposals_proposals.title->'machine_translations'->>'#{locale}',
|
40
|
-
decidim_proposals_proposals.title->>'#{default_locale}') #{collation} ASC"))
|
42
|
+
proposals.order(title_by_locale => :asc, title_by_machine_translation => :asc, title_by_default_locale => :asc)
|
41
43
|
when "za"
|
42
|
-
proposals.order(
|
43
|
-
decidim_proposals_proposals.title->'machine_translations'->>'#{locale}',
|
44
|
-
decidim_proposals_proposals.title->>'#{default_locale}') #{collation} DESC"))
|
44
|
+
proposals.order(title_by_locale => :desc, title_by_machine_translation => :desc, title_by_default_locale => :desc)
|
45
45
|
when "supported_first"
|
46
46
|
proposals.joins(my_votes_join).group(:id).order(Arel.sql("COUNT(decidim_proposals_proposal_votes.id) DESC"))
|
47
47
|
when "supported_last"
|
48
48
|
proposals.joins(my_votes_join).group(:id).order(Arel.sql("COUNT(decidim_proposals_proposal_votes.id) ASC"))
|
49
|
-
|
50
|
-
proposals
|
51
|
-
when "most_endorsed"
|
52
|
-
proposals.order(endorsements_count: :desc)
|
53
|
-
when "most_followed"
|
54
|
-
proposals.left_joins(:follows).group(:id).order(Arel.sql("COUNT(decidim_follows.id) DESC"))
|
55
|
-
when "most_voted"
|
56
|
-
proposals.order(proposal_votes_count: :desc)
|
57
|
-
when "random"
|
58
|
-
proposals.order_randomly(random_seed)
|
59
|
-
when "recent"
|
60
|
-
proposals.order(published_at: :desc)
|
61
|
-
when "with_more_authors"
|
62
|
-
proposals.order(coauthorships_count: :desc)
|
49
|
+
else
|
50
|
+
decidim_original_reorder(proposals)
|
63
51
|
end
|
64
52
|
end
|
65
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
66
53
|
|
67
54
|
def collation
|
68
55
|
@collation ||= begin
|
@@ -5,7 +5,7 @@ module Decidim
|
|
5
5
|
module Admin
|
6
6
|
class AdminAccountabilityController < DecidimAwesome::Admin::ApplicationController
|
7
7
|
include NeedsAwesomeConfig
|
8
|
-
include
|
8
|
+
include AdminAccountability::Admin::Filterable
|
9
9
|
|
10
10
|
helper_method :admin_actions, :collection, :export_params, :global?, :global_users_missing_date
|
11
11
|
|
@@ -20,9 +20,9 @@ module Decidim
|
|
20
20
|
def export
|
21
21
|
filters = export_params[:q]
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
ExportAdminActionsJob.perform_later(current_user,
|
24
|
+
params[:format].to_s,
|
25
|
+
admin_actions.ransack(filters).result.ids)
|
26
26
|
|
27
27
|
redirect_back fallback_location: decidim_admin_decidim_awesome.admin_accountability_path,
|
28
28
|
notice: t("decidim.decidim_awesome.admin.admin_accountability.exports.notice")
|
@@ -39,11 +39,11 @@ module Decidim
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def space_role_actions
|
42
|
-
@space_role_actions ||=
|
42
|
+
@space_role_actions ||= PaperTrailVersion.space_role_actions(current_organization)
|
43
43
|
end
|
44
44
|
|
45
45
|
def admin_role_actions
|
46
|
-
@admin_role_actions ||=
|
46
|
+
@admin_role_actions ||= PaperTrailVersion.in_organization(current_organization).admin_role_actions(PaperTrailVersion.safe_admin_role_type(params[:admin_role_type]))
|
47
47
|
end
|
48
48
|
|
49
49
|
def export_params
|
@@ -61,7 +61,7 @@ module Decidim
|
|
61
61
|
return unless global?
|
62
62
|
|
63
63
|
@global_users_missing_date ||= begin
|
64
|
-
first_version =
|
64
|
+
first_version = PaperTrailVersion.where(item_type: "Decidim::UserBaseEntity").last
|
65
65
|
first_user = Decidim::User.first
|
66
66
|
first_version.created_at if first_user && first_version && (first_version.created_at > first_user.created_at + 1.second)
|
67
67
|
end
|
@@ -9,6 +9,10 @@ module Decidim
|
|
9
9
|
DecidimAwesome.participatory_space_roles.filter(&:safe_constantize)
|
10
10
|
end
|
11
11
|
|
12
|
+
def self.safe_admin_role_type(admin_role)
|
13
|
+
Decidim.user_roles.find { |role| role == admin_role }
|
14
|
+
end
|
15
|
+
|
12
16
|
scope :space_role_actions, lambda { |organization|
|
13
17
|
role_changes = where(item_type: PaperTrailVersion.safe_user_roles, event: "create")
|
14
18
|
user_ids_from_object_changes = role_changes.pluck(:object_changes).map { |change| change.match(/decidim_user_id:\n- ?\n- (\d+)/)[1].to_i }
|
@@ -33,7 +37,7 @@ module Decidim
|
|
33
37
|
when "admin"
|
34
38
|
base.where("object_changes LIKE '%\nadmin:\n- false\n- true%'")
|
35
39
|
else
|
36
|
-
base.where(
|
40
|
+
base.where("object_changes LIKE ?", "%\nroles:\n- []\n- - #{filter}\n%")
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
data/config/locales/ca.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
---
|
2
1
|
ca:
|
3
2
|
activemodel:
|
4
3
|
attributes:
|
@@ -19,6 +18,7 @@ ca:
|
|
19
18
|
intergram_title_open: Títol del xat quan està obert
|
20
19
|
intergram_use_floating_button: Si està marcat, el xat tancat és sempre un botó en lloc d'un text
|
21
20
|
proposal_custom_fields: 'Camps personalitzats #%{id}'
|
21
|
+
proposal_private_custom_fields: 'Camps personalitzats #%{id}'
|
22
22
|
scoped_admins: 'Grup d''administradores acotades #%{id}'
|
23
23
|
scoped_styles: 'Personalització d''estils #%{id}'
|
24
24
|
validate_body_max_caps_percent: Percentatge màxim de majúscules en el cos de la proposta
|
@@ -46,8 +46,6 @@ ca:
|
|
46
46
|
target: Obre a
|
47
47
|
url: URL
|
48
48
|
visibility: Visibilitat
|
49
|
-
proposal:
|
50
|
-
proposal_custom_fields: Camps personalitzats
|
51
49
|
decidim:
|
52
50
|
admin:
|
53
51
|
actions:
|
@@ -117,7 +115,7 @@ ca:
|
|
117
115
|
default_sort_order_options:
|
118
116
|
az: A-Z (Alfabètic)
|
119
117
|
supported_first: Votades per mi primer
|
120
|
-
supported_last: Votades
|
118
|
+
supported_last: Votades per mi últimes
|
121
119
|
za: Z-A (ordre alfabètic invers)
|
122
120
|
limit_pending_amendments: Permetre només una esmena pendent a cada proposta.
|
123
121
|
sort_orders_enabled: Opcions d'ordenació actives
|
@@ -135,6 +133,7 @@ ca:
|
|
135
133
|
za: Z-A (ordre alfabètic invers)
|
136
134
|
decidim_awesome:
|
137
135
|
admin:
|
136
|
+
actions: Accions
|
138
137
|
admin_accountability:
|
139
138
|
admin_roles:
|
140
139
|
admin: Administradora de plataforma
|
@@ -189,7 +188,6 @@ ca:
|
|
189
188
|
Sembla que aquesta instal·lació requereix migrar <strong>%{total}</strong> imatges al nou sistema.<br>
|
190
189
|
Pots iniciar el procés ara i es durà a terme en segon pla.
|
191
190
|
start_image_migrations: "\U0001F449 Iniciar el procés de migració ara"
|
192
|
-
title: Anàlisi de compatibilitat amb el sistema
|
193
191
|
config:
|
194
192
|
caution: 'NOTA: Aquesta funció modifica en gran mesura alguns comportaments predeterminats que podrien provocar resultats inesperats. Utilitzeu-lo amb precaució!'
|
195
193
|
constraints:
|
@@ -238,6 +236,12 @@ ca:
|
|
238
236
|
proposal_custom_fields: Crea camps personalitzats per a propostes que només s'apliquin a determinades parts de la web pública (per fer-ho, utilitza l'editor de restriccions)
|
239
237
|
proposal_custom_fields_example: Les dades son desades en un objecte XML fent servir atributs compatibles amb HTML (elements DL, DT, DD) que reemplacen el "cos" de la proposat normal.
|
240
238
|
proposal_custom_fields_translations: "Les etiquetes, el text d'ajuda, els \"placeholders\" i els valors predeterminats poden utilitzar les traduccions personalitzades de l'aplicació.\nPer això, en comptes d'utilitzar un text literal, utilitzeu la clau i18n (ha de contenir almenys un punt).\nPer exemple:\n- \"activemodel.attributes.proposal.title\" en lloc de \"Títol\"\n- \"activemodel.attributes.proposal.address\" en lloc de \"Address\"\nO utilitzeu les vostres pròpies claus en combinació amb altres eines per definir traduccions (p. ex.: utilitzant el mòdul Term Customizer):\n - \"myapp.custom_fields.bio\" en lloc de \"Biografia\""
|
239
|
+
proposal_private_custom_fields: Similar als camps públics, però aquesta informació no es revelarà públicament (només hi tindran accés els administradors).
|
240
|
+
proposal_private_custom_fields_translations: |
|
241
|
+
Els camps personalitzats privats es mostren en un quadre diferent amb aquest text d'informació:
|
242
|
+
%{warning}
|
243
|
+
Aquest text es pot personalitzar amb una traducció personalitzada utilitzant la clau:
|
244
|
+
%{key}
|
241
245
|
scoped_admins: Promou usuaries normals a administradores amb accés limitat a certes parts de la web pública (feu servir l'editor de restriccions per això). Noteu que afegir usuaries que ja tenen permisos d'administració no té cap efecte.
|
242
246
|
scoped_styles: Crea CSS personalitzats que només s'apliquin a determinades parts de la web pública (per fer-ho, utilitza l'editor de restriccions)
|
243
247
|
scoped_styles_variables: 'Pots fer servir les següents variables CSS pels colors personalitzats de l''organització:'
|
@@ -251,14 +255,22 @@ ca:
|
|
251
255
|
body: Validacions d'entrada per l'usuari en el camp cos de la proposta
|
252
256
|
title: Validacions d'entrada per l'usuari en el camp títol de la proposta
|
253
257
|
form_proposal_custom_fields:
|
258
|
+
delete: Esborra
|
254
259
|
new: Afegeix una nova caixa de "camps personalitzats"
|
255
260
|
remove: Elimina aquesta caixa de "camps personalitzats"
|
256
261
|
sure_to_remove: Estàs segura que vols eliminar aquesta caixa de camps personalitzats?
|
262
|
+
form_proposal_private_custom_fields:
|
263
|
+
delete: Esborra
|
264
|
+
new: Afegiu una nova caixa de "camps personalitzats privats"
|
265
|
+
remove: Elimina aquesta caixa de "camps personalitzats"
|
266
|
+
sure_to_remove: Segur que vols eliminar aquesta caixa de camps personalitzats?
|
257
267
|
form_scoped_admins:
|
268
|
+
delete: Esborra
|
258
269
|
new: Afegir un nou grup "d'Administradores acotades"
|
259
270
|
remove: Elimineu aquest grup "d'Administradores acotades"
|
260
271
|
sure_to_remove: Estàs segura que vols eliminar aquest grup "d'Administradores acotades"?
|
261
272
|
form_scoped_styles:
|
273
|
+
delete: Esborra
|
262
274
|
new: Afegeix una nova caixa CSS
|
263
275
|
remove: Elimina aquesta caixa CSS
|
264
276
|
sure_to_remove: Estàs segura que vols eliminar aquesta caixa CSS?
|
@@ -268,6 +280,15 @@ ca:
|
|
268
280
|
title: Modificacions per %{setting}
|
269
281
|
update: Actualitza la configuració
|
270
282
|
system: A tot arreu excepte espais participatius
|
283
|
+
title:
|
284
|
+
admins: Administradores acotades
|
285
|
+
editors: Modificacions als editors
|
286
|
+
livechat: Xat en directe
|
287
|
+
proposal_custom_fields: 'Camps personalitzats per propostes: Camps públics'
|
288
|
+
proposal_private_custom_fields: 'Camps personalitzats per propostes: Camps privats'
|
289
|
+
proposals: Modificacions a propostes
|
290
|
+
styles: Estils personalitzats
|
291
|
+
surveys: Formularis i enquestes
|
271
292
|
update:
|
272
293
|
error: Error actualitzant la configuració! %{error}
|
273
294
|
success: Configuració actualitzada correctament
|
@@ -327,12 +348,46 @@ ca:
|
|
327
348
|
update:
|
328
349
|
error: 'Error en actualitzar la redirecció: %{error}'
|
329
350
|
success: Redirecció actualitzada correctament
|
351
|
+
maintenance:
|
352
|
+
private_data:
|
353
|
+
component: Espai / Component
|
354
|
+
confirm_delete: Segur que voleu suprimir totes les dades privades d'aquest recurs? Aquesta acció no es pot desfer.
|
355
|
+
delete: Esborrar-ho tot
|
356
|
+
destroying_private_data: Les dades privades de %{title} s'han programat per ser destruïdes. Si us plau, torneu a comprovar d'aquí a uns minuts.
|
357
|
+
done: Fet
|
358
|
+
help_html: |
|
359
|
+
Aquesta eina permet esborrar totes les dades privades d'un espai o component participatiu concret. Aquesta acció és irreversible i eliminarà totes les dades privades de la base de dades.
|
360
|
+
<br><br>
|
361
|
+
<strong>Què es consideren dades privades?</strong>
|
362
|
+
<br>
|
363
|
+
Les dades privades són qualsevol informació que no està disponible públicament i només és accessible per als administradors. Això, de moment, inclou la informació del camps personalitzats privats.
|
364
|
+
<br><br>
|
365
|
+
<strong>Què passa quan suprimeixo dades privades?</strong>
|
366
|
+
<br>
|
367
|
+
Quan suprimiu les dades privades, tota la informació privada de l'espai o component participatiu seleccionat s'eliminarà permanentment de la base de dades. Un registre d'aquesta acció s'emmagatzemarà al sistema amb finalitats d'auditoria (pero no les dades en si).
|
368
|
+
<br><br>
|
369
|
+
<strong>Què passa amb les dades públiques?</strong>
|
370
|
+
<br>
|
371
|
+
Les dades públiques no es veuran afectades per aquesta acció. Només s'eliminaran les dades privades.
|
372
|
+
<br><br>
|
373
|
+
<strong>Hi ha un temps mínim d'espera abans de suprimir les dades privades?</strong>
|
374
|
+
<br>
|
375
|
+
Sí, no podeu suprimir dades privades si l'última actualització va ser fa menys de %{time_ago}. Podeu canviar aquesta configuració al fitxer inicialitzador.
|
376
|
+
items_count: Total afectats
|
377
|
+
last_date: Última actualització
|
378
|
+
no_data: No s'han trobat dades privades més antigues que fa %{time_ago}
|
379
|
+
not_destroyable: Aquest recurs encara no es pot destruir
|
380
|
+
removing: Eliminant...
|
381
|
+
time_ago: "fa %{time}"
|
330
382
|
menu:
|
331
383
|
admins: Administradores acotades
|
332
|
-
checks: Compatibilitat de sistema
|
333
384
|
custom_redirects: Redireccions personalitzades
|
334
385
|
editors: Modificacions als editors
|
335
386
|
livechat: Xat en directe
|
387
|
+
maintenance:
|
388
|
+
checks: Compatibilitat de sistema
|
389
|
+
maintenance: Manteniment
|
390
|
+
private_data: Dades privades
|
336
391
|
menu_hacks: Retocs al menú
|
337
392
|
proposal_custom_fields: Camps personalitzats per propostes
|
338
393
|
proposals: Modificacions a propostes
|
@@ -376,6 +431,17 @@ ca:
|
|
376
431
|
error: 'Error en actualitzar l''ítem de menú: %{error}'
|
377
432
|
success: Ítem de menú actualitzat correctament
|
378
433
|
url_exists: Aquesta URL ha estat configurada en un altre ítem de menú, si us plau edita'l en comptes de crear-ne un de nou.
|
434
|
+
proposal_custom_fields:
|
435
|
+
menu:
|
436
|
+
title: Camps públics
|
437
|
+
private_body: Cos privat
|
438
|
+
private_data_last_remove: Aquestes dades es van destruir fa %{time_ago}.
|
439
|
+
private_data_last_update: Aquestes dades es van actualitzar per última vegada fa %{time_ago}.
|
440
|
+
proposal_private_custom_fields: Camps privats
|
441
|
+
remove_private_data: "👉 És possible que vulgueu eliminar-lo"
|
442
|
+
admin_log:
|
443
|
+
component:
|
444
|
+
destroy_private_data: "%{user_name} ha destruït %{count} elements de dades privades per a %{resource_name} a %{space_name}"
|
379
445
|
amendments:
|
380
446
|
modal:
|
381
447
|
amendment_exists: Una esmena ja existeix
|
@@ -439,6 +505,7 @@ ca:
|
|
439
505
|
show:
|
440
506
|
view_meeting: Veure trobada
|
441
507
|
view_proposal: Veure proposta
|
508
|
+
proposal_private_custom_fields_disclosure: Aquesta informació no es publicarà
|
442
509
|
validators:
|
443
510
|
too_much_caps: Fa servir massa lletres majúscules (més %{percent}% del text)
|
444
511
|
voting:
|
@@ -468,6 +535,9 @@ ca:
|
|
468
535
|
meetings_map:
|
469
536
|
view_meeting: Veure trobada
|
470
537
|
proposals:
|
538
|
+
admin:
|
539
|
+
exports:
|
540
|
+
awesome_private_proposals: Propostes amb dades privades
|
471
541
|
proposals:
|
472
542
|
orders:
|
473
543
|
az: A-Z (Alfabètic)
|
@@ -479,6 +549,12 @@ ca:
|
|
479
549
|
layouts:
|
480
550
|
decidim:
|
481
551
|
decidim_awesome:
|
552
|
+
admin:
|
553
|
+
maintenance:
|
554
|
+
title: 'Eines de manteniment: %{title}'
|
555
|
+
titles:
|
556
|
+
checks: Anàlisi de compatibilitat amb el sistema
|
557
|
+
private_data: Neteja de dades privades
|
482
558
|
awesome_config:
|
483
559
|
amendments: Esmenes
|
484
560
|
autosaved_error: L'emmagatzematge local no està disponible al teu navegador, el formulari no es podrà desar automàticament.
|
data/config/locales/cs.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
---
|
2
1
|
cs:
|
3
2
|
activemodel:
|
4
3
|
attributes:
|
@@ -19,6 +18,7 @@ cs:
|
|
19
18
|
intergram_title_open: Titulek otevřeného chatu
|
20
19
|
intergram_use_floating_button: Je-li zaškrtnuto, uzavřený chat je vždy tlačítko místo textu
|
21
20
|
proposal_custom_fields: 'Uživatelská pole #%{id}'
|
21
|
+
proposal_private_custom_fields: Soukromá vlastní pole %{id}
|
22
22
|
scoped_admins: 'Skupina Škálovaní administrátoři #%{id}'
|
23
23
|
scoped_styles: Vlastní styly číslo %{id}
|
24
24
|
validate_body_max_caps_percent: Maximální povolený procentní podíl velkých písmen pro tělo zprávy
|
@@ -46,8 +46,6 @@ cs:
|
|
46
46
|
target: Otevře se v
|
47
47
|
url: URL
|
48
48
|
visibility: Viditelnost
|
49
|
-
proposal:
|
50
|
-
proposal_custom_fields: Vlastní pole
|
51
49
|
decidim:
|
52
50
|
admin:
|
53
51
|
actions:
|
@@ -135,6 +133,7 @@ cs:
|
|
135
133
|
za: Z-A (obrácená abeceda)
|
136
134
|
decidim_awesome:
|
137
135
|
admin:
|
136
|
+
actions: Akce
|
138
137
|
admin_accountability:
|
139
138
|
admin_roles:
|
140
139
|
admin: Super správce
|
@@ -189,7 +188,6 @@ cs:
|
|
189
188
|
Zdá se, že tato instalace potřebuje přesunout <strong>%{total}</strong> starých obrázků do nového systému.<br>
|
190
189
|
Můžete zahájit proces nyní a bude probíhat na pozadí.
|
191
190
|
start_image_migrations: "\U0001F449 Zahájit proces migrace"
|
192
|
-
title: Kontroly kompatibility systému
|
193
191
|
config:
|
194
192
|
caution: 'POZNÁMKA: Tato funkce silně mění některé výchozí chování, které by mohlo vést k neočekávaným výsledkům. Používejte ji s opatrností!'
|
195
193
|
constraints:
|
@@ -238,6 +236,12 @@ cs:
|
|
238
236
|
proposal_custom_fields: Vytvoření vlastních polí návrhu, která se použijí pouze v určitých částech veřejného webu (použijte k tomu editor omezení)
|
239
237
|
proposal_custom_fields_example: Data jsou uložena v objektu XML pomocí kompatibilních atributů HTML (prvky dl,dt,dd), které v běžném návrhu nahrazují "tělo".
|
240
238
|
proposal_custom_fields_translations: "Štítky, nápověda, zástupné symboly a výchozí hodnoty mohou používat vlastní překlady aplikace. \nPro to použijte klíč i18n (musí obsahovat alespoň jednu tečku), místo použití textového literálu.\nNapříklad:\n- \"activemodel.attributes.proposal.title\" namísto \"Title\"\n- \"activemodel.attributes.proposal.address\" namísto \"Adresa\"\nNebo použijte vlastní klíče v kombinaci s jinými nástroji pro definování překladů (např. pomocí úpravy termínu modulu):\n - \"myapp.custom_fields.bio\" namísto „Životopis“"
|
239
|
+
proposal_private_custom_fields: Podobné jako veřejná pole, ale tyto informace nebudou zveřejněny (k nim budou mít přístup pouze administrátoři).
|
240
|
+
proposal_private_custom_fields_translations: |
|
241
|
+
Soukromá vlastní pole jsou zobrazena v jiném poli s tímto informačním textem:
|
242
|
+
%{warning}
|
243
|
+
Tento text lze přizpůsobit vlastním překladem pomocí klíče:
|
244
|
+
%{key}
|
241
245
|
scoped_admins: Povýšení běžného uživatele na administrátora, který může spravovat pouze určité části veřejného webu (k tomu použijte editor omezení). Všimněte si, že uživatelé, kteří již mají oprávnění běžného správce, budou ignorováni.
|
242
246
|
scoped_styles: Vytvořte vlastní CSS aplikovaný pouze na určitých částech veřejného webu (použijte pro to editor omezení)
|
243
247
|
scoped_styles_variables: 'Můžete použít následující CSS proměnné pro nastavené barvy organizace:'
|
@@ -251,14 +255,22 @@ cs:
|
|
251
255
|
body: Ověření vstupu uživatele pro pole "tělo"
|
252
256
|
title: Ověření uživatelem pro pole "Název"
|
253
257
|
form_proposal_custom_fields:
|
258
|
+
delete: Smazat
|
254
259
|
new: Přidat nové pole "vlastní pole"
|
255
260
|
remove: Odstranit toto "vlastní pole"
|
256
261
|
sure_to_remove: Opravdu chcete zničit toto pole?
|
262
|
+
form_proposal_private_custom_fields:
|
263
|
+
delete: Smazat
|
264
|
+
new: Přidat nové "soukromé vlastní pole"
|
265
|
+
remove: Odstranit toto "ssoukromé vlastní pole"
|
266
|
+
sure_to_remove: Opravdu chcete zničit toto soukromé pole?
|
257
267
|
form_scoped_admins:
|
268
|
+
delete: Smazat
|
258
269
|
new: Přidání nové skupiny "Škálovaní administrátoři"
|
259
270
|
remove: Odstranit tuto skupinu "Škálovaní administrátoři""
|
260
271
|
sure_to_remove: Opravdu chcete zničit tuto skupinu "Škálovaní administrátoři"?
|
261
272
|
form_scoped_styles:
|
273
|
+
delete: Smazat
|
262
274
|
new: Přidat nový CSS box
|
263
275
|
remove: Odstranit tento CSS box
|
264
276
|
sure_to_remove: Opravdu chcete zničit tento CSS box?
|
@@ -268,6 +280,15 @@ cs:
|
|
268
280
|
title: Vylepšení pro %{setting}
|
269
281
|
update: Aktualizace konfigurace
|
270
282
|
system: Všude kromě participačních prostor
|
283
|
+
title:
|
284
|
+
admins: Škálovaní administrátoři
|
285
|
+
editors: Hack editoru
|
286
|
+
livechat: Živý chat
|
287
|
+
proposal_custom_fields: 'Vlastní pole návrhů: veřejná pole'
|
288
|
+
proposal_private_custom_fields: 'Vlastní pole návrhů: Soukromá pole'
|
289
|
+
proposals: Návrhy hacků
|
290
|
+
styles: Vlastní styly
|
291
|
+
surveys: Průzkumy a formuláře
|
271
292
|
update:
|
272
293
|
error: Chyba při aktualizaci konfigurace! %{error}
|
273
294
|
success: Konfigurace byla úspěšně aktualizována
|
@@ -327,12 +348,46 @@ cs:
|
|
327
348
|
update:
|
328
349
|
error: Chyba aktualizace přesměrování! %{error}
|
329
350
|
success: Přesměrování úspěšně aktualizováno
|
351
|
+
maintenance:
|
352
|
+
private_data:
|
353
|
+
component: Prostor / komponenta
|
354
|
+
confirm_delete: Opravdu chcete odstranit všechna soukromá data tohoto zdroje? Tuto akci nelze vrátit zpět.
|
355
|
+
delete: Odstranit vše
|
356
|
+
destroying_private_data: Soukromá data pro %{title} jsou nastavena na zničení. Zkontrolujte prosím znovu za několik minut.
|
357
|
+
done: Hotovo
|
358
|
+
help_html: |
|
359
|
+
Tento nástroj umožňuje odstranit všechna soukromá data pro konkrétní participační prostor nebo komponentu. Tato akce je nevratná a odstraní všechna soukromá data z databáze.
|
360
|
+
<br><br>
|
361
|
+
<strong>Co je považováno za soukromá data?</strong>
|
362
|
+
<br>
|
363
|
+
Soukromá data jsou jakékoliv informace, které nejsou veřejně dostupné a jsou přístupné pouze správcům. To v současné době zahrnuje informace o soukromých vlastních polích.
|
364
|
+
<br><br>
|
365
|
+
<strong>Co se stane, když smažu soukromá data?</strong>
|
366
|
+
<br>
|
367
|
+
Když smažete soukromá data, všechny soukromé informace pro vybraný participační prostor nebo součást budou trvale odstraněny z databáze. Protokol této akce bude uložen v systému pro účely auditu.
|
368
|
+
<br><br>
|
369
|
+
<strong>Co se stane s veřejnými daty?</strong>
|
370
|
+
<br>
|
371
|
+
Veřejná data nebudou touto akcí dotčena. Budou odstraněna pouze soukromá data.
|
372
|
+
<br><br>
|
373
|
+
<strong>Je minimální čas počkat před odstraněním soukromých dat?</strong>
|
374
|
+
<br>
|
375
|
+
Ano, nemůžete smazat soukromá data, pokud byla poslední aktualizace menší než před %{time_ago}. Tuto konfiguraci můžete změnit v souboru inicializátoru.
|
376
|
+
items_count: Dotčené celkem
|
377
|
+
last_date: Poslední aktualizace
|
378
|
+
no_data: Nejsou nalezena žádná soukromá data starší než před %{time_ago}
|
379
|
+
not_destroyable: Tento zdroj zatím nelze zničit
|
380
|
+
removing: Odstraňování...
|
381
|
+
time_ago: "Před %{time}"
|
330
382
|
menu:
|
331
383
|
admins: Škálovaní administrátoři
|
332
|
-
checks: Systémová kompatibilita
|
333
384
|
custom_redirects: Vlastní přesměrování
|
334
385
|
editors: Hack editoru
|
335
386
|
livechat: Live Chat
|
387
|
+
maintenance:
|
388
|
+
checks: Systémová kompatibilita
|
389
|
+
maintenance: Údržba
|
390
|
+
private_data: Soukromá data
|
336
391
|
menu_hacks: Vylepšení menu
|
337
392
|
proposal_custom_fields: Vlastní pole pro návrhy
|
338
393
|
proposals: Návrhy hacků
|
@@ -376,8 +431,20 @@ cs:
|
|
376
431
|
error: Chyba při aktualizaci položky menu! %{error}
|
377
432
|
success: Položka menu byla úspěšne aktualizována
|
378
433
|
url_exists: Stejná adresa URL je již nakonfigurována, prosím upravte ji místo jejího vytvoření.
|
434
|
+
proposal_custom_fields:
|
435
|
+
menu:
|
436
|
+
title: Veřejná pole
|
437
|
+
private_body: Tělo soukroméhho pole
|
438
|
+
private_data_last_remove: Tato data byla zničena před %{time_ago}.
|
439
|
+
private_data_last_update: Tato data byla naposledy aktualizována před %{time_ago}.
|
440
|
+
proposal_private_custom_fields: Soukromá pole
|
441
|
+
remove_private_data: "👉 Možná jej chcete odstranit"
|
442
|
+
admin_log:
|
443
|
+
component:
|
444
|
+
destroy_private_data: "%{user_name} zničil %{count} položky soukromých dat pro %{resource_name} v %{space_name}"
|
379
445
|
amendments:
|
380
446
|
modal:
|
447
|
+
amendment_exists: Pozměňovací návrh již existuje
|
381
448
|
current_amendment_html: <p>Můžete <a href="%{amendment_link}">přistupovat k aktuálnímu pozměňovacímu návrhu zde</a>.</p>
|
382
449
|
dismiss: Ok, rozumím
|
383
450
|
explanation_html: |
|
@@ -438,6 +505,7 @@ cs:
|
|
438
505
|
show:
|
439
506
|
view_meeting: Zobrazit schůzku
|
440
507
|
view_proposal: Zobrazit návrh
|
508
|
+
proposal_private_custom_fields_disclosure: Tyto informace nebudou publikovány
|
441
509
|
validators:
|
442
510
|
too_much_caps: Používá příliš mnoho velkých písmen (více než %{percent}% textu)
|
443
511
|
voting:
|
@@ -445,7 +513,7 @@ cs:
|
|
445
513
|
abstained: "✔️ Zdržel se hlasování"
|
446
514
|
change_vote: Změnit můj hlas
|
447
515
|
default_box_title: Hlasovat o tomto návrhu
|
448
|
-
default_instructions_html: "<p>Přečtěte si pečlivě pravidla voleb, abyste pochopili, jak bude vaše hlasování použito v %{organization}</p>"
|
516
|
+
default_instructions_html: "<p>Přečtěte si pečlivě pravidla voleb, abyste pochopili, jak bude vaše hlasování použito v %{organization}\"</p>"
|
449
517
|
modal:
|
450
518
|
cancel: Zrušit
|
451
519
|
message: Váš hlas bude považován za konečný v %{date}. Do té doby jej můžete změnit,
|
@@ -467,6 +535,9 @@ cs:
|
|
467
535
|
meetings_map:
|
468
536
|
view_meeting: Zobrazit schůzku
|
469
537
|
proposals:
|
538
|
+
admin:
|
539
|
+
exports:
|
540
|
+
awesome_private_proposals: Návrhy se soukromými údaji
|
470
541
|
proposals:
|
471
542
|
orders:
|
472
543
|
az: A-Z (abecední)
|
@@ -478,6 +549,12 @@ cs:
|
|
478
549
|
layouts:
|
479
550
|
decidim:
|
480
551
|
decidim_awesome:
|
552
|
+
admin:
|
553
|
+
maintenance:
|
554
|
+
title: 'Nástroj údržby: %{title}'
|
555
|
+
titles:
|
556
|
+
checks: Kontroly kompatibility systému
|
557
|
+
private_data: Vymazání soukromých údajů
|
481
558
|
awesome_config:
|
482
559
|
amendments: Pozměňovací návrhy
|
483
560
|
autosaved_error: Místní úložiště není ve vašem prohlížeči podporováno, formulář nelze uložit automaticky.
|