decidim-assemblies 0.30.5 → 0.30.7
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/assemblies/admin/import_assembly.rb +4 -2
- data/app/controllers/decidim/assemblies/admin/assembly_imports_controller.rb +2 -1
- data/app/forms/decidim/assemblies/admin/assembly_import_form.rb +11 -0
- data/app/helpers/decidim/assemblies/assemblies_helper.rb +4 -1
- data/app/serializers/decidim/assemblies/assembly_importer.rb +75 -12
- data/app/views/decidim/assemblies/admin/assembly_imports/_form.html.erb +20 -16
- data/app/views/decidim/assemblies/admin/assembly_imports/new.html.erb +1 -0
- data/app/views/decidim/assemblies/assemblies/show.html.erb +1 -1
- data/config/locales/ar.yml +3 -1
- data/config/locales/bg.yml +2 -3
- data/config/locales/ca-IT.yml +9 -1
- data/config/locales/ca.yml +9 -1
- data/config/locales/cs.yml +10 -0
- data/config/locales/de.yml +2 -7
- data/config/locales/el.yml +3 -1
- data/config/locales/en.yml +8 -0
- data/config/locales/es-MX.yml +10 -2
- data/config/locales/es-PY.yml +10 -2
- data/config/locales/es.yml +9 -1
- data/config/locales/eu.yml +9 -1
- data/config/locales/fi-plain.yml +8 -6
- data/config/locales/fi.yml +8 -6
- data/config/locales/fr-CA.yml +25 -2
- data/config/locales/fr.yml +25 -2
- data/config/locales/gl.yml +3 -1
- data/config/locales/he-IL.yml +0 -6
- data/config/locales/hu.yml +3 -2
- data/config/locales/is-IS.yml +1 -9
- data/config/locales/it.yml +1 -5
- data/config/locales/ja.yml +11 -3
- data/config/locales/ko.yml +3 -0
- data/config/locales/lb.yml +5 -1
- data/config/locales/lt.yml +3 -1
- data/config/locales/nl.yml +4 -2
- data/config/locales/no.yml +3 -1
- data/config/locales/pl.yml +1 -2
- data/config/locales/pt-BR.yml +3 -6
- data/config/locales/pt.yml +3 -7
- data/config/locales/ro-RO.yml +13 -10
- data/config/locales/ru.yml +1 -8
- data/config/locales/sk.yml +0 -1
- data/config/locales/sl.yml +6 -5
- data/config/locales/sq-AL.yml +2 -11
- data/config/locales/sv.yml +15 -13
- data/config/locales/tr-TR.yml +5 -2
- data/config/locales/uk.yml +1 -8
- data/config/locales/zh-CN.yml +3 -1
- data/config/locales/zh-TW.yml +4 -2
- data/lib/decidim/assemblies/participatory_space.rb +2 -2
- data/lib/decidim/assemblies/version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1a2c5a5468b2300e4a33afe69e509dbe9e59c27f5e41fd6e55159e45f11950d8
|
|
4
|
+
data.tar.gz: aab89010bddbd48777231134b105acf7a142ab605922167c6b454a5d847a3e43
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f829ad65c0ca0f39fe99a99926fa13b6b2a29a4c7d7cdfda2d4d8b2474b6db8c9bb4ff68c2bbaadb23b52ffad504c3c987399d11b644f54a41ccdcd4b4e0cfcc
|
|
7
|
+
data.tar.gz: 885f90af61d77ad149fa9fdbeef5520c1b8616470339bc4c197d184061441f840a5d2d161a57c27202673caf184d4cd5af349ed76bf60c1e84d5ff974e1efcda
|
|
@@ -29,7 +29,7 @@ module Decidim
|
|
|
29
29
|
add_admins_as_followers(@imported_assembly)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
broadcast(:ok, @imported_assembly)
|
|
32
|
+
broadcast(:ok, @imported_assembly, @warnings)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
private
|
|
@@ -37,12 +37,14 @@ module Decidim
|
|
|
37
37
|
attr_reader :form
|
|
38
38
|
|
|
39
39
|
def import_assembly
|
|
40
|
-
|
|
40
|
+
@warnings = []
|
|
41
41
|
assemblies.each do |original_assembly|
|
|
42
|
+
importer = Decidim::Assemblies::AssemblyImporter.new(form.current_organization, form.current_user)
|
|
42
43
|
Decidim.traceability.perform_action!("import", Assembly, @user) do
|
|
43
44
|
@imported_assembly = importer.import(original_assembly, form.current_user, title: form.title, slug: form.slug)
|
|
44
45
|
importer.import_folders_and_attachments(original_assembly["attachments"]) if form.import_attachments?
|
|
45
46
|
importer.import_components(original_assembly["components"]) if form.import_components?
|
|
47
|
+
@warnings.concat(importer.warnings)
|
|
46
48
|
@imported_assembly
|
|
47
49
|
end
|
|
48
50
|
end
|
|
@@ -16,8 +16,9 @@ module Decidim
|
|
|
16
16
|
@form = form(AssemblyImportForm).from_params(params)
|
|
17
17
|
|
|
18
18
|
ImportAssembly.call(@form, current_user) do
|
|
19
|
-
on(:ok) do
|
|
19
|
+
on(:ok) do |_assembly, warnings|
|
|
20
20
|
flash[:notice] = I18n.t("assembly_imports.create.success", scope: "decidim.admin")
|
|
21
|
+
flash[:warning] = warnings.join("<br>") if warnings.any?
|
|
21
22
|
redirect_to assemblies_path
|
|
22
23
|
end
|
|
23
24
|
|
|
@@ -31,12 +31,14 @@ module Decidim
|
|
|
31
31
|
attribute :import_components, Boolean, default: true
|
|
32
32
|
attribute :document, Decidim::Attributes::Blob
|
|
33
33
|
|
|
34
|
+
validates :document, presence: true
|
|
34
35
|
validates :document, file_content_type: { allow: ACCEPTED_TYPES.values }
|
|
35
36
|
validates :slug, presence: true, format: { with: Decidim::Assembly.slug_format }
|
|
36
37
|
validates :title, translatable_presence: true
|
|
37
38
|
validate :slug_uniqueness
|
|
38
39
|
|
|
39
40
|
validate :document_type_must_be_valid, if: :document
|
|
41
|
+
validate :document_must_have_content, if: -> { document.present? && errors[:document].none? }
|
|
40
42
|
|
|
41
43
|
def document_text
|
|
42
44
|
@document_text ||= document&.download
|
|
@@ -76,6 +78,15 @@ module Decidim
|
|
|
76
78
|
|
|
77
79
|
errors.add(:slug, :taken)
|
|
78
80
|
end
|
|
81
|
+
|
|
82
|
+
def document_must_have_content
|
|
83
|
+
return if document_text.blank?
|
|
84
|
+
|
|
85
|
+
parsed = JSON.parse(document_text)
|
|
86
|
+
errors.add(:document, :empty) if parsed.is_a?(Array) && parsed.empty?
|
|
87
|
+
rescue JSON::ParserError
|
|
88
|
+
errors.add(:document, :invalid_json)
|
|
89
|
+
end
|
|
79
90
|
end
|
|
80
91
|
end
|
|
81
92
|
end
|
|
@@ -14,7 +14,10 @@ module Decidim
|
|
|
14
14
|
|
|
15
15
|
# Items to display in the navigation of an assembly
|
|
16
16
|
def assembly_nav_items(participatory_space)
|
|
17
|
-
components = participatory_space
|
|
17
|
+
components = participatory_space
|
|
18
|
+
.components
|
|
19
|
+
.published.or(Decidim::Component.where(id: try(:current_component)))
|
|
20
|
+
.where(visible: true)
|
|
18
21
|
|
|
19
22
|
[
|
|
20
23
|
*(if participatory_space.members_public_page?
|
|
@@ -4,9 +4,12 @@ module Decidim
|
|
|
4
4
|
module Assemblies
|
|
5
5
|
# A factory class to ensure we always create Assemblies the same way since it involves some logic.
|
|
6
6
|
class AssemblyImporter < Decidim::Importers::Importer
|
|
7
|
+
attr_reader :warnings
|
|
8
|
+
|
|
7
9
|
def initialize(organization, user)
|
|
8
10
|
@organization = organization
|
|
9
11
|
@user = user
|
|
12
|
+
@warnings = []
|
|
10
13
|
end
|
|
11
14
|
|
|
12
15
|
# Public: Creates a new Assembly.
|
|
@@ -58,8 +61,8 @@ module Decidim
|
|
|
58
61
|
meta_scope: attributes["meta_scope"],
|
|
59
62
|
announcement: attributes["announcement"]
|
|
60
63
|
)
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
import_hero_image(attributes["remote_hero_image_url"])
|
|
65
|
+
import_banner_image(attributes["remote_banner_image_url"])
|
|
63
66
|
|
|
64
67
|
@imported_assembly.save!
|
|
65
68
|
@imported_assembly
|
|
@@ -70,20 +73,37 @@ module Decidim
|
|
|
70
73
|
return if attachments["files"].nil?
|
|
71
74
|
|
|
72
75
|
attachments["files"].map do |file|
|
|
73
|
-
|
|
76
|
+
url = file["remote_file_url"]
|
|
77
|
+
next if url.blank?
|
|
74
78
|
|
|
75
|
-
|
|
79
|
+
error = remote_file_error(url)
|
|
80
|
+
if error.present?
|
|
81
|
+
@warnings << I18n.t(
|
|
82
|
+
"decidim.assemblies.admin.imports.attachment_error",
|
|
83
|
+
title: attachment_title(file),
|
|
84
|
+
error:
|
|
85
|
+
)
|
|
86
|
+
next
|
|
87
|
+
end
|
|
76
88
|
|
|
77
89
|
Decidim.traceability.perform_action!("create", Attachment, @user) do
|
|
78
90
|
attachment = Attachment.new(
|
|
79
91
|
title: file["title"],
|
|
80
92
|
description: file["description"],
|
|
81
|
-
content_type: file_tmp.content_type,
|
|
82
93
|
attached_to: @imported_assembly,
|
|
83
|
-
weight: file["weight"]
|
|
84
|
-
file: file_tmp, # Define attached_to before this
|
|
85
|
-
file_size: file_tmp.size
|
|
94
|
+
weight: file["weight"]
|
|
86
95
|
)
|
|
96
|
+
begin
|
|
97
|
+
attachment.attached_uploader(:file).remote_url = url
|
|
98
|
+
attachment.set_content_type_and_size
|
|
99
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
100
|
+
@warnings << I18n.t(
|
|
101
|
+
"decidim.assemblies.admin.imports.attachment_error",
|
|
102
|
+
title: attachment_title(file),
|
|
103
|
+
error: format_error(e)
|
|
104
|
+
)
|
|
105
|
+
next
|
|
106
|
+
end
|
|
87
107
|
attachment.create_attachment_collection(file["attachment_collection"])
|
|
88
108
|
attachment.save!
|
|
89
109
|
attachment
|
|
@@ -122,7 +142,7 @@ module Decidim
|
|
|
122
142
|
attachment_collection
|
|
123
143
|
end
|
|
124
144
|
|
|
125
|
-
def
|
|
145
|
+
def remote_file_error(url)
|
|
126
146
|
return if url.nil?
|
|
127
147
|
|
|
128
148
|
accepted = ["image", "application/pdf"]
|
|
@@ -130,10 +150,53 @@ module Decidim
|
|
|
130
150
|
http_connection = Net::HTTP.new(url.host, url.port)
|
|
131
151
|
http_connection.use_ssl = true if url.scheme == "https"
|
|
132
152
|
http_connection.start do |http|
|
|
133
|
-
|
|
153
|
+
response = http.head(url.request_uri)
|
|
154
|
+
content_type = response["Content-Type"]
|
|
155
|
+
next if response.is_a?(Net::HTTPSuccess) && content_type&.start_with?(*accepted)
|
|
156
|
+
|
|
157
|
+
message = response.message.presence || Rack::Utils::HTTP_STATUS_CODES[response.code.to_i]
|
|
158
|
+
message = message.presence || "Error"
|
|
159
|
+
next "#{response.code} #{message}"
|
|
134
160
|
end
|
|
135
|
-
rescue StandardError
|
|
136
|
-
|
|
161
|
+
rescue StandardError => e
|
|
162
|
+
format_error(e)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def attachment_title(file)
|
|
166
|
+
title = file["title"]
|
|
167
|
+
return "" if title.blank?
|
|
168
|
+
|
|
169
|
+
return title unless title.is_a?(Hash)
|
|
170
|
+
|
|
171
|
+
title.values.find(&:present?) || ""
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def import_hero_image(url)
|
|
175
|
+
return if url.blank?
|
|
176
|
+
|
|
177
|
+
@imported_assembly.attached_uploader(:hero_image).remote_url = url
|
|
178
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
179
|
+
@warnings << I18n.t("decidim.assemblies.admin.imports.hero_image_error", error: format_error(e))
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def import_banner_image(url)
|
|
183
|
+
return if url.blank?
|
|
184
|
+
|
|
185
|
+
@imported_assembly.attached_uploader(:banner_image).remote_url = url
|
|
186
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
187
|
+
@warnings << I18n.t("decidim.assemblies.admin.imports.banner_image_error", error: format_error(e))
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def format_error(error)
|
|
191
|
+
return error.message unless error.respond_to?(:io) && error.io.respond_to?(:status)
|
|
192
|
+
|
|
193
|
+
status = error.io.status
|
|
194
|
+
return error.message if status.blank? || status.first.blank?
|
|
195
|
+
|
|
196
|
+
code = status[0]
|
|
197
|
+
message = status[1].presence || Rack::Utils::HTTP_STATUS_CODES[code.to_i]
|
|
198
|
+
message = message.presence || error.message
|
|
199
|
+
"#{code} #{message}"
|
|
137
200
|
end
|
|
138
201
|
end
|
|
139
202
|
end
|
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
<%= append_javascript_pack_tag "decidim_assemblies_admin" %>
|
|
2
|
-
|
|
3
1
|
<div class="form__wrapper">
|
|
4
2
|
<div class="card pt-4" id="assemblies">
|
|
5
3
|
<div class="card-section">
|
|
4
|
+
<div class="row column mb-4">
|
|
5
|
+
<%= cell("decidim/announcement", { body: t("decidim.assemblies.admin.new_import.help_html") }, callout_class: "info") %>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
6
8
|
<div class="row column">
|
|
7
9
|
<%= form.translated :text_field, :title, autofocus: true, aria: { label: :title } %>
|
|
8
10
|
</div>
|
|
11
|
+
|
|
9
12
|
<div class="row column">
|
|
10
13
|
<%= form.text_field :slug, help_text: t(".slug_help_html", url: decidim_form_slug_url(:assemblies, form.object.slug)) %>
|
|
11
14
|
</div>
|
|
15
|
+
|
|
12
16
|
<div class="row column">
|
|
13
|
-
<%= form.upload :document, button_class: "button button__sm button__transparent-secondary" %>
|
|
17
|
+
<%= form.upload :document, label: t(".document_legend"), button_class: "button button__sm button__transparent-secondary", help_i18n_scope: "decidim.forms.file_help.import_file", help_i18n_messages: ["message_1"] %>
|
|
14
18
|
</div>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
|
|
20
|
+
<div class="card-divider">
|
|
21
|
+
<div class="card-title">
|
|
22
|
+
<%= t("assembly_imports.new.select", scope: "decidim.admin") %>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="card-section">
|
|
26
|
+
<div class="row">
|
|
27
|
+
<div class="columns">
|
|
28
|
+
<%= form.check_box :import_attachments %>
|
|
19
29
|
</div>
|
|
20
|
-
<div class="
|
|
21
|
-
|
|
22
|
-
<div class="columns">
|
|
23
|
-
<%= form.check_box :import_attachments %>
|
|
24
|
-
</div>
|
|
25
|
-
<div class="columns">
|
|
26
|
-
<%= form.check_box :import_components %>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
30
|
+
<div class="columns">
|
|
31
|
+
<%= form.check_box :import_components %>
|
|
29
32
|
</div>
|
|
30
33
|
</div>
|
|
31
34
|
</div>
|
|
35
|
+
|
|
32
36
|
</div>
|
|
33
37
|
</div>
|
|
34
38
|
</div>
|
data/config/locales/ar.yml
CHANGED
|
@@ -121,7 +121,6 @@ ar:
|
|
|
121
121
|
new:
|
|
122
122
|
import: استيراد
|
|
123
123
|
select: اختر البيانات التي ترغب في استيرادها
|
|
124
|
-
title: استيراد الجمعية
|
|
125
124
|
assembly_publications:
|
|
126
125
|
create:
|
|
127
126
|
error: حدثت مشكلة في نشر هذا التجميع.
|
|
@@ -225,6 +224,9 @@ ar:
|
|
|
225
224
|
select_parent_assembly: حدد الجمعية الأصلية
|
|
226
225
|
social_handlers: التواصل الاجتماعي
|
|
227
226
|
title: معلومات عامة
|
|
227
|
+
assembly_imports:
|
|
228
|
+
form:
|
|
229
|
+
document_legend: إضافة وثيقة
|
|
228
230
|
assembly_members:
|
|
229
231
|
form:
|
|
230
232
|
explanation: 'إرشادات للصورة:'
|
data/config/locales/bg.yml
CHANGED
|
@@ -98,7 +98,7 @@ bg:
|
|
|
98
98
|
update: Актуализация
|
|
99
99
|
index:
|
|
100
100
|
private: Частни
|
|
101
|
-
public:
|
|
101
|
+
public: Публично
|
|
102
102
|
published: Публикувано
|
|
103
103
|
unpublished: Непубликувано
|
|
104
104
|
new:
|
|
@@ -117,7 +117,6 @@ bg:
|
|
|
117
117
|
new:
|
|
118
118
|
import: Импортиране
|
|
119
119
|
select: Изберете кои данни искате да импортирате
|
|
120
|
-
title: Импортиране на събрание
|
|
121
120
|
assembly_publications:
|
|
122
121
|
create:
|
|
123
122
|
error: Възникна проблем при публикуването на това събрание.
|
|
@@ -132,7 +131,6 @@ bg:
|
|
|
132
131
|
destroy:
|
|
133
132
|
success: Администраторът беше премахнат успешно от това събрание.
|
|
134
133
|
edit:
|
|
135
|
-
title: Актуализиране на администратора на събранието
|
|
136
134
|
update: Актуализация
|
|
137
135
|
index:
|
|
138
136
|
assembly_admins_title: Администратори на събранието
|
|
@@ -241,6 +239,7 @@ bg:
|
|
|
241
239
|
slug_help_html: 'Използват се променливи полета в URL адреса, за да се генерират URL адреси, които водят към това събрание. Допуска се използването само на букви, цифри и тирета и адресът трябва да започва с буква. Пример: %{url}'
|
|
242
240
|
assembly_imports:
|
|
243
241
|
form:
|
|
242
|
+
document_legend: Добавяне на документ
|
|
244
243
|
slug_help_html: 'Използват се променливи полета в URL адреса, за да се генерират URL адреси, които водят към това събрание. Допуска се използването само на букви, цифри и тирета и адресът трябва да започва с буква. Пример: %{url}'
|
|
245
244
|
assembly_members:
|
|
246
245
|
form:
|
data/config/locales/ca-IT.yml
CHANGED
|
@@ -75,6 +75,8 @@ ca-IT:
|
|
|
75
75
|
attributes:
|
|
76
76
|
document:
|
|
77
77
|
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}.'
|
|
78
|
+
empty: El document està buit
|
|
79
|
+
invalid_json: El document no és un JSON vàlid
|
|
78
80
|
activerecord:
|
|
79
81
|
models:
|
|
80
82
|
decidim/assembly:
|
|
@@ -121,7 +123,7 @@ ca-IT:
|
|
|
121
123
|
new:
|
|
122
124
|
copy: Còpia
|
|
123
125
|
select: Selecciona quines dades vols duplicar
|
|
124
|
-
title:
|
|
126
|
+
title: Duplicar assemblea
|
|
125
127
|
assembly_imports:
|
|
126
128
|
create:
|
|
127
129
|
error: Hi ha hagut un problema important aquesta assemblea.
|
|
@@ -267,6 +269,7 @@ ca-IT:
|
|
|
267
269
|
slug_help_html: 'Els noms curts d''URL s''utilitzen per generar les URL que apunten a aquesta assemblea. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
|
|
268
270
|
assembly_imports:
|
|
269
271
|
form:
|
|
272
|
+
document_legend: Afegir un document
|
|
270
273
|
slug_help_html: 'Els noms curts d''URL s''utilitzen per generar les URL que apunten a aquesta assemblea. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
|
|
271
274
|
assembly_members:
|
|
272
275
|
form:
|
|
@@ -276,9 +279,14 @@ ca-IT:
|
|
|
276
279
|
content_blocks:
|
|
277
280
|
highlighted_assemblies:
|
|
278
281
|
max_results: Quantitat màxima d'elements que es mostraran
|
|
282
|
+
imports:
|
|
283
|
+
attachment_error: No s'ha pogut importar l'arxiu adjunt "%{title}" (%{error}).
|
|
284
|
+
banner_image_error: No s'ha pogut importar la imatge del bàner (%{error}).
|
|
285
|
+
hero_image_error: No s'ha pogut importar la imatge principal (%{error}).
|
|
279
286
|
new_import:
|
|
280
287
|
accepted_types:
|
|
281
288
|
json: JSON
|
|
289
|
+
help_html: Aquesta funció d'importació et permet crear una nova assemblea a partir d'un fitxer JSON exportat. Pots exportar una assemblea d'una altra organització o de la mateixa organització. L'assemblea importada inclourà la seva configuració, els components i els fitxers adjunts (si s'han seleccionat).
|
|
282
290
|
assemblies:
|
|
283
291
|
description:
|
|
284
292
|
area_name: Àrea
|
data/config/locales/ca.yml
CHANGED
|
@@ -75,6 +75,8 @@ ca:
|
|
|
75
75
|
attributes:
|
|
76
76
|
document:
|
|
77
77
|
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}.'
|
|
78
|
+
empty: El document està buit
|
|
79
|
+
invalid_json: El document no és un JSON vàlid
|
|
78
80
|
activerecord:
|
|
79
81
|
models:
|
|
80
82
|
decidim/assembly:
|
|
@@ -121,7 +123,7 @@ ca:
|
|
|
121
123
|
new:
|
|
122
124
|
copy: Còpia
|
|
123
125
|
select: Selecciona quines dades vols duplicar
|
|
124
|
-
title:
|
|
126
|
+
title: Duplicar assemblea
|
|
125
127
|
assembly_imports:
|
|
126
128
|
create:
|
|
127
129
|
error: Hi ha hagut un problema important aquesta assemblea.
|
|
@@ -267,6 +269,7 @@ ca:
|
|
|
267
269
|
slug_help_html: 'Els noms curts d''URL s''utilitzen per generar les URL que apunten a aquesta assemblea. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
|
|
268
270
|
assembly_imports:
|
|
269
271
|
form:
|
|
272
|
+
document_legend: Afegir un document
|
|
270
273
|
slug_help_html: 'Els noms curts d''URL s''utilitzen per generar les URL que apunten a aquesta assemblea. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
|
|
271
274
|
assembly_members:
|
|
272
275
|
form:
|
|
@@ -276,9 +279,14 @@ ca:
|
|
|
276
279
|
content_blocks:
|
|
277
280
|
highlighted_assemblies:
|
|
278
281
|
max_results: Quantitat màxima d'elements que es mostraran
|
|
282
|
+
imports:
|
|
283
|
+
attachment_error: No s'ha pogut importar l'arxiu adjunt "%{title}" (%{error}).
|
|
284
|
+
banner_image_error: No s'ha pogut importar la imatge del bàner (%{error}).
|
|
285
|
+
hero_image_error: No s'ha pogut importar la imatge principal (%{error}).
|
|
279
286
|
new_import:
|
|
280
287
|
accepted_types:
|
|
281
288
|
json: JSON
|
|
289
|
+
help_html: Aquesta funció d'importació et permet crear una nova assemblea a partir d'un fitxer JSON exportat. Pots exportar una assemblea d'una altra organització o de la mateixa organització. L'assemblea importada inclourà la seva configuració, els components i els fitxers adjunts (si s'han seleccionat).
|
|
282
290
|
assemblies:
|
|
283
291
|
description:
|
|
284
292
|
area_name: Àrea
|
data/config/locales/cs.yml
CHANGED
|
@@ -75,6 +75,8 @@ cs:
|
|
|
75
75
|
attributes:
|
|
76
76
|
document:
|
|
77
77
|
allowed_file_content_types: 'Neplatný typ dokumentu. Jsou povoleny pouze soubory s následujícími příponami: %{types}.'
|
|
78
|
+
empty: Dokument je prázdný
|
|
79
|
+
invalid_json: Dokument není platný JSON
|
|
78
80
|
activerecord:
|
|
79
81
|
models:
|
|
80
82
|
decidim/assembly:
|
|
@@ -225,9 +227,11 @@ cs:
|
|
|
225
227
|
export: "%{user_name} exportoval shromáždění %{resource_name}"
|
|
226
228
|
import: "%{user_name} importoval shromáždění %{resource_name}"
|
|
227
229
|
publish: "%{user_name} publikoval %{resource_name} shromáždění"
|
|
230
|
+
publish_all_members: "%{user_name} zveřejnil všechny členy shromáždění %{resource_name}"
|
|
228
231
|
restore: "%{user_name} obnovil shromáždění %{resource_name}"
|
|
229
232
|
soft_delete: "%{user_name} přesunul do koše shromáždění %{resource_name}"
|
|
230
233
|
unpublish: "%{user_name} odebral %{resource_name} shromáždění"
|
|
234
|
+
unpublish_all_members: "%{user_name} zneveřejnil všechny členy shromáždění %{resource_name}"
|
|
231
235
|
update: "%{user_name} aktualizoval shromáždění %{resource_name}"
|
|
232
236
|
assembly_member:
|
|
233
237
|
create: "%{user_name} vytvořil %{resource_name} člena ve shromáždění %{space_name}"
|
|
@@ -271,6 +275,7 @@ cs:
|
|
|
271
275
|
slug_help_html: 'URL slugy se používají ke generování adres URL, které odkazují na toto shromáždění. Povolená jsou pouze písmena, číslice a pomlčky a musí začínat písmenem. Příklad: %{url}'
|
|
272
276
|
assembly_imports:
|
|
273
277
|
form:
|
|
278
|
+
document_legend: Přidat dokument
|
|
274
279
|
slug_help_html: 'URL slugy se používají ke generování adres URL, které odkazují na toto shromáždění. Povolená jsou pouze písmena, číslice a pomlčky a musí začínat písmenem. Příklad: %{url}'
|
|
275
280
|
assembly_members:
|
|
276
281
|
form:
|
|
@@ -280,9 +285,14 @@ cs:
|
|
|
280
285
|
content_blocks:
|
|
281
286
|
highlighted_assemblies:
|
|
282
287
|
max_results: Maximální množství prvků, které chcete zobrazit
|
|
288
|
+
imports:
|
|
289
|
+
attachment_error: Přílohu "%{title}" nelze importovat (%{error}).
|
|
290
|
+
banner_image_error: Obrázek banneru nelze importovat (%{error}).
|
|
291
|
+
hero_image_error: Obrázek hrdiny nelze importovat (%{error}).
|
|
283
292
|
new_import:
|
|
284
293
|
accepted_types:
|
|
285
294
|
json: JSON
|
|
295
|
+
help_html: Tato funkce importu umožňuje vytvořit novou sestavu z exportovaného JSON souboru. Můžete exportovat sestavení z jiné organizace nebo ze stejné organizace. Importovaná sestava bude obsahovat jeho nastavení, součásti a přílohy (je-li vybrána).
|
|
286
296
|
assemblies:
|
|
287
297
|
description:
|
|
288
298
|
area_name: Oblast
|
data/config/locales/de.yml
CHANGED
|
@@ -105,8 +105,6 @@ de:
|
|
|
105
105
|
public: Öffentlich
|
|
106
106
|
published: Veröffentlicht
|
|
107
107
|
unpublished: Nicht veröffentlicht
|
|
108
|
-
manage_trash:
|
|
109
|
-
title: Gelöschte Gremien
|
|
110
108
|
new:
|
|
111
109
|
create: Erstellen
|
|
112
110
|
title: Neues Gremium
|
|
@@ -121,7 +119,6 @@ de:
|
|
|
121
119
|
new:
|
|
122
120
|
copy: Kopieren
|
|
123
121
|
select: Wählen Sie, welche Daten Sie duplizieren möchten
|
|
124
|
-
title: Dupliziertes Gremium
|
|
125
122
|
assembly_imports:
|
|
126
123
|
create:
|
|
127
124
|
error: Beim Importieren dieses Gremiums ist ein Fehler aufgetreten.
|
|
@@ -129,7 +126,6 @@ de:
|
|
|
129
126
|
new:
|
|
130
127
|
import: Importieren
|
|
131
128
|
select: Wählen Sie aus, welche Daten Sie importieren möchten
|
|
132
|
-
title: Gremium importieren
|
|
133
129
|
assembly_publications:
|
|
134
130
|
create:
|
|
135
131
|
error: Beim Veröffentlichen dieses Gremiums ist ein Fehler aufgetreten.
|
|
@@ -144,13 +140,12 @@ de:
|
|
|
144
140
|
destroy:
|
|
145
141
|
success: Benutzer wurde erfolgreich von dieser Assembly entfernt.
|
|
146
142
|
edit:
|
|
147
|
-
title: Gremienadmin aktualisieren
|
|
148
143
|
update: Aktualisieren
|
|
149
144
|
index:
|
|
150
145
|
assembly_admins_title: Assembly Benutzer
|
|
151
146
|
new:
|
|
152
147
|
create: Erstellen
|
|
153
|
-
title: Neuer
|
|
148
|
+
title: Neuer Gremium-Admin
|
|
154
149
|
update:
|
|
155
150
|
error: Bei einem Fehler ist ein Benutzer für diese Assembly aktualisiert worden.
|
|
156
151
|
success: Der Benutzer wurde für diese Assembly erfolgreich aktualisiert.
|
|
@@ -208,7 +203,6 @@ de:
|
|
|
208
203
|
assemblies: Alle Gremien
|
|
209
204
|
titles:
|
|
210
205
|
assemblies: Gremien
|
|
211
|
-
assemblies_deleted: Gelöschte Gremien
|
|
212
206
|
assemblies_types: Versammlungstypen
|
|
213
207
|
tooltips:
|
|
214
208
|
deleted_assemblies_info: Ein Gremium kann nur gelöscht werden, wenn der Status "Nicht veröffentlicht" ist.
|
|
@@ -267,6 +261,7 @@ de:
|
|
|
267
261
|
slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf dieses Gremium verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und es muss mit einem Buchstaben beginnen. Beispiel: %{url}'
|
|
268
262
|
assembly_imports:
|
|
269
263
|
form:
|
|
264
|
+
document_legend: Dokument hinzufügen
|
|
270
265
|
slug_help_html: 'URL-Slugs werden zum Generieren der URLs verwendet, die auf dieses Gremium verweisen. Akzeptiert werden nur Buchstaben, Zahlen und Bindestriche und es muss mit einem Buchstaben beginnen. Beispiel: %{url}'
|
|
271
266
|
assembly_members:
|
|
272
267
|
form:
|
data/config/locales/el.yml
CHANGED
|
@@ -114,7 +114,6 @@ el:
|
|
|
114
114
|
new:
|
|
115
115
|
import: Εισαγωγή
|
|
116
116
|
select: Επιλέξετε ποιά δεδομένα θα θέλατε να εισάγετε
|
|
117
|
-
title: Εισαγωγή συνέλευσης
|
|
118
117
|
assembly_publications:
|
|
119
118
|
create:
|
|
120
119
|
error: Υπήρξε ένα πρόβλημα κατά τη δημοσίευση αυτής της συνέλευσης.
|
|
@@ -217,6 +216,9 @@ el:
|
|
|
217
216
|
select_parent_assembly: Επιλέξτε «Γονική συνέλευση»
|
|
218
217
|
social_handlers: Μέσα κοινωνικής δικτύωσης
|
|
219
218
|
title: Γενικές πληροφορίες
|
|
219
|
+
assembly_imports:
|
|
220
|
+
form:
|
|
221
|
+
document_legend: Προσθήκη εγγράφου
|
|
220
222
|
assembly_members:
|
|
221
223
|
form:
|
|
222
224
|
explanation: 'Οδηγίες για την εικόνα:'
|
data/config/locales/en.yml
CHANGED
|
@@ -75,6 +75,8 @@ en:
|
|
|
75
75
|
attributes:
|
|
76
76
|
document:
|
|
77
77
|
allowed_file_content_types: 'Invalid document type. Only files with the following extensions are allowed: %{types}.'
|
|
78
|
+
empty: The document is empty
|
|
79
|
+
invalid_json: The document is not valid JSON
|
|
78
80
|
activerecord:
|
|
79
81
|
models:
|
|
80
82
|
decidim/assembly:
|
|
@@ -267,6 +269,7 @@ en:
|
|
|
267
269
|
slug_help_html: 'URL slugs are used to generate the URLs that point to this assembly. Only accepts letters, numbers and dashes, and must start with a letter. Example: %{url}'
|
|
268
270
|
assembly_imports:
|
|
269
271
|
form:
|
|
272
|
+
document_legend: Add a document
|
|
270
273
|
slug_help_html: 'URL slugs are used to generate the URLs that point to this assembly. Only accepts letters, numbers and dashes, and must start with a letter. Example: %{url}'
|
|
271
274
|
assembly_members:
|
|
272
275
|
form:
|
|
@@ -276,9 +279,14 @@ en:
|
|
|
276
279
|
content_blocks:
|
|
277
280
|
highlighted_assemblies:
|
|
278
281
|
max_results: Maximum amount of elements to show
|
|
282
|
+
imports:
|
|
283
|
+
attachment_error: The attachment "%{title}" could not be imported (%{error}).
|
|
284
|
+
banner_image_error: The banner image could not be imported (%{error}).
|
|
285
|
+
hero_image_error: The hero image could not be imported (%{error}).
|
|
279
286
|
new_import:
|
|
280
287
|
accepted_types:
|
|
281
288
|
json: JSON
|
|
289
|
+
help_html: This import feature allows you to create a new assembly from an exported JSON file. You can export an assembly from another organization or from this same organization. The imported assembly will include its settings, components, and attachments (if selected).
|
|
282
290
|
assemblies:
|
|
283
291
|
description:
|
|
284
292
|
area_name: Area
|
data/config/locales/es-MX.yml
CHANGED
|
@@ -75,6 +75,8 @@ es-MX:
|
|
|
75
75
|
attributes:
|
|
76
76
|
document:
|
|
77
77
|
allowed_file_content_types: 'Tipo de documento no válido. Sólo se permiten archivos con las siguientes extensiones: %{types}.'
|
|
78
|
+
empty: El documento está vacío
|
|
79
|
+
invalid_json: El documento no es JSON válido
|
|
78
80
|
activerecord:
|
|
79
81
|
models:
|
|
80
82
|
decidim/assembly:
|
|
@@ -147,10 +149,10 @@ es-MX:
|
|
|
147
149
|
title: Actualizar administradora de la asamblea
|
|
148
150
|
update: Actualizar
|
|
149
151
|
index:
|
|
150
|
-
assembly_admins_title: Usuarios de la
|
|
152
|
+
assembly_admins_title: Usuarios de la asamblea
|
|
151
153
|
new:
|
|
152
154
|
create: Crear
|
|
153
|
-
title:
|
|
155
|
+
title: Añadir administradora
|
|
154
156
|
update:
|
|
155
157
|
error: Ha habido un error al actualizar un usuario para esta asamblea.
|
|
156
158
|
success: Usuario actualizado con éxito para esta asamblea.
|
|
@@ -267,6 +269,7 @@ es-MX:
|
|
|
267
269
|
slug_help_html: 'Los textos cortos de URL se utilizan para generar las URL que apuntan a esta asamblea. Sólo acepta letras, números y guiones, y debe comenzar con una letra. Ejemplo: %{url}'
|
|
268
270
|
assembly_imports:
|
|
269
271
|
form:
|
|
272
|
+
document_legend: Añadir un documento
|
|
270
273
|
slug_help_html: 'Los textos cortos de URL se utilizan para generar las URL que apuntan a esta asamblea. Sólo acepta letras, números y guiones, y debe comenzar con una letra. Ejemplo: %{url}'
|
|
271
274
|
assembly_members:
|
|
272
275
|
form:
|
|
@@ -276,9 +279,14 @@ es-MX:
|
|
|
276
279
|
content_blocks:
|
|
277
280
|
highlighted_assemblies:
|
|
278
281
|
max_results: Cantidad máxima de elementos para mostrar
|
|
282
|
+
imports:
|
|
283
|
+
attachment_error: No se ha podido importar el archivo adjunto "%{title}" (%{error}).
|
|
284
|
+
banner_image_error: No se ha podido importar la imagen del banner (%{error}).
|
|
285
|
+
hero_image_error: No se ha podrido importar la imagen principal (%{error}).
|
|
279
286
|
new_import:
|
|
280
287
|
accepted_types:
|
|
281
288
|
json: JSON
|
|
289
|
+
help_html: Esta función de importación te permite crear una nueva asamblea a partir de un archivo JSON exportado. Puedes exportar una asamblea desde otra organización o desde esta misma organización. La asamblea importada incluirá sus ajustes, componentes y archivos adjuntos (si se seleccionan).
|
|
282
290
|
assemblies:
|
|
283
291
|
description:
|
|
284
292
|
area_name: Área
|