decidim-assemblies 0.31.1 → 0.31.3
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/packs/src/decidim/assemblies/controllers/assembly_admin/controller.js +0 -4
- data/app/serializers/decidim/assemblies/assembly_importer.rb +75 -12
- data/app/views/decidim/assemblies/admin/assemblies/index.js.erb +1 -1
- 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 +11 -3
- data/config/locales/es-PY.yml +11 -3
- data/config/locales/es.yml +10 -2
- 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 +14 -11
- 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 +17 -14
- data/config/locales/tr-TR.yml +7 -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: b390ecc1992cc0c80979a2dd3009efae463a452f3c051190409abb098ed060a9
|
|
4
|
+
data.tar.gz: 2f68bbb23efa90ea3bd940c7d8f28d4468703e699c406ddcb32eb2c3d64896ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ab090584ef6a4dc05849df9c88daff436857b44241f712bc319fcc7e8a4eb77f7c3003f1524fe9495a8a9607bdcdf6a1fdaf3f82c80da9d51d516527ca1a553c
|
|
7
|
+
data.tar.gz: 7836b2a30013e7e032f8271d6c3935b43732c65aecbca6e3ff8f01f7dd3376769c4feac7620389bbed10e44ac99109da03ab479bb0c3afd283d968fa2aa897a2
|
|
@@ -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?
|
|
@@ -50,10 +50,6 @@ export default class extends Controller {
|
|
|
50
50
|
|
|
51
51
|
if (isTransparentCheckbox) {
|
|
52
52
|
isTransparentCheckbox.disabled = (enabledPrivateSpace === false);
|
|
53
|
-
|
|
54
|
-
if (isTransparentCheckbox.checked) {
|
|
55
|
-
isTransparentCheckbox.checked = false;
|
|
56
|
-
}
|
|
57
53
|
}
|
|
58
54
|
|
|
59
55
|
if (specialFeatures) {
|
|
@@ -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.
|
|
@@ -57,8 +60,8 @@ module Decidim
|
|
|
57
60
|
meta_scope: attributes["meta_scope"],
|
|
58
61
|
announcement: attributes["announcement"]
|
|
59
62
|
)
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
import_hero_image(attributes["remote_hero_image_url"])
|
|
64
|
+
import_banner_image(attributes["remote_banner_image_url"])
|
|
62
65
|
|
|
63
66
|
@imported_assembly.save!
|
|
64
67
|
@imported_assembly
|
|
@@ -69,20 +72,37 @@ module Decidim
|
|
|
69
72
|
return if attachments["files"].nil?
|
|
70
73
|
|
|
71
74
|
attachments["files"].map do |file|
|
|
72
|
-
|
|
75
|
+
url = file["remote_file_url"]
|
|
76
|
+
next if url.blank?
|
|
73
77
|
|
|
74
|
-
|
|
78
|
+
error = remote_file_error(url)
|
|
79
|
+
if error.present?
|
|
80
|
+
@warnings << I18n.t(
|
|
81
|
+
"decidim.assemblies.admin.imports.attachment_error",
|
|
82
|
+
title: attachment_title(file),
|
|
83
|
+
error:
|
|
84
|
+
)
|
|
85
|
+
next
|
|
86
|
+
end
|
|
75
87
|
|
|
76
88
|
Decidim.traceability.perform_action!("create", Attachment, @user) do
|
|
77
89
|
attachment = Attachment.new(
|
|
78
90
|
title: file["title"],
|
|
79
91
|
description: file["description"],
|
|
80
|
-
content_type: file_tmp.content_type,
|
|
81
92
|
attached_to: @imported_assembly,
|
|
82
|
-
weight: file["weight"]
|
|
83
|
-
file: file_tmp, # Define attached_to before this
|
|
84
|
-
file_size: file_tmp.size
|
|
93
|
+
weight: file["weight"]
|
|
85
94
|
)
|
|
95
|
+
begin
|
|
96
|
+
attachment.attached_uploader(:file).remote_url = url
|
|
97
|
+
attachment.set_content_type_and_size
|
|
98
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
99
|
+
@warnings << I18n.t(
|
|
100
|
+
"decidim.assemblies.admin.imports.attachment_error",
|
|
101
|
+
title: attachment_title(file),
|
|
102
|
+
error: format_error(e)
|
|
103
|
+
)
|
|
104
|
+
next
|
|
105
|
+
end
|
|
86
106
|
attachment.create_attachment_collection(file["attachment_collection"])
|
|
87
107
|
attachment.save!
|
|
88
108
|
attachment
|
|
@@ -121,7 +141,7 @@ module Decidim
|
|
|
121
141
|
attachment_collection
|
|
122
142
|
end
|
|
123
143
|
|
|
124
|
-
def
|
|
144
|
+
def remote_file_error(url)
|
|
125
145
|
return if url.nil?
|
|
126
146
|
|
|
127
147
|
accepted = ["image", "application/pdf"]
|
|
@@ -129,10 +149,53 @@ module Decidim
|
|
|
129
149
|
http_connection = Net::HTTP.new(url.host, url.port)
|
|
130
150
|
http_connection.use_ssl = true if url.scheme == "https"
|
|
131
151
|
http_connection.start do |http|
|
|
132
|
-
|
|
152
|
+
response = http.head(url.request_uri)
|
|
153
|
+
content_type = response["Content-Type"]
|
|
154
|
+
next if response.is_a?(Net::HTTPSuccess) && content_type&.start_with?(*accepted)
|
|
155
|
+
|
|
156
|
+
message = response.message.presence || Rack::Utils::HTTP_STATUS_CODES[response.code.to_i]
|
|
157
|
+
message = message.presence || "Error"
|
|
158
|
+
next "#{response.code} #{message}"
|
|
133
159
|
end
|
|
134
|
-
rescue StandardError
|
|
135
|
-
|
|
160
|
+
rescue StandardError => e
|
|
161
|
+
format_error(e)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def attachment_title(file)
|
|
165
|
+
title = file["title"]
|
|
166
|
+
return "" if title.blank?
|
|
167
|
+
|
|
168
|
+
return title unless title.is_a?(Hash)
|
|
169
|
+
|
|
170
|
+
title.values.find(&:present?) || ""
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def import_hero_image(url)
|
|
174
|
+
return if url.blank?
|
|
175
|
+
|
|
176
|
+
@imported_assembly.attached_uploader(:hero_image).remote_url = url
|
|
177
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
178
|
+
@warnings << I18n.t("decidim.assemblies.admin.imports.hero_image_error", error: format_error(e))
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def import_banner_image(url)
|
|
182
|
+
return if url.blank?
|
|
183
|
+
|
|
184
|
+
@imported_assembly.attached_uploader(:banner_image).remote_url = url
|
|
185
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
186
|
+
@warnings << I18n.t("decidim.assemblies.admin.imports.banner_image_error", error: format_error(e))
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def format_error(error)
|
|
190
|
+
return error.message unless error.respond_to?(:io) && error.io.respond_to?(:status)
|
|
191
|
+
|
|
192
|
+
status = error.io.status
|
|
193
|
+
return error.message if status.blank? || status.first.blank?
|
|
194
|
+
|
|
195
|
+
code = status[0]
|
|
196
|
+
message = status[1].presence || Rack::Utils::HTTP_STATUS_CODES[code.to_i]
|
|
197
|
+
message = message.presence || error.message
|
|
198
|
+
"#{code} #{message}"
|
|
136
199
|
end
|
|
137
200
|
end
|
|
138
201
|
end
|
|
@@ -6,7 +6,7 @@ $('[data-assembly-id="<%= parent_assembly_id %>"]').after(
|
|
|
6
6
|
);
|
|
7
7
|
|
|
8
8
|
// Dispatch the `ajax:loaded` event with the newly inserted element
|
|
9
|
-
|
|
9
|
+
var insertedElement = $('[data-assembly-id="<%= parent_assembly_id %>"]').next()[0];
|
|
10
10
|
document.dispatchEvent(new CustomEvent("ajax:loaded", { detail: insertedElement }));
|
|
11
11
|
|
|
12
12
|
var component = new window.Decidim.AdminAssembliesListComponent();
|
|
@@ -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
|
@@ -114,7 +114,6 @@ ar:
|
|
|
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 @@ ar:
|
|
|
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/bg.yml
CHANGED
|
@@ -94,7 +94,7 @@ bg:
|
|
|
94
94
|
update: Актуализация
|
|
95
95
|
index:
|
|
96
96
|
private: Частни
|
|
97
|
-
public:
|
|
97
|
+
public: Публично
|
|
98
98
|
published: Публикувано
|
|
99
99
|
unpublished: Непубликувано
|
|
100
100
|
new:
|
|
@@ -110,7 +110,6 @@ bg:
|
|
|
110
110
|
new:
|
|
111
111
|
import: Импортиране
|
|
112
112
|
select: Изберете кои данни искате да импортирате
|
|
113
|
-
title: Импортиране на събрание
|
|
114
113
|
assembly_publications:
|
|
115
114
|
create:
|
|
116
115
|
error: Възникна проблем при публикуването на това събрание.
|
|
@@ -125,7 +124,6 @@ bg:
|
|
|
125
124
|
destroy:
|
|
126
125
|
success: Администраторът беше премахнат успешно от това събрание.
|
|
127
126
|
edit:
|
|
128
|
-
title: Актуализиране на администратора на събранието
|
|
129
127
|
update: Актуализация
|
|
130
128
|
index:
|
|
131
129
|
assembly_admins_title: Администратори на събранието
|
|
@@ -229,6 +227,7 @@ bg:
|
|
|
229
227
|
visibility: Видимост
|
|
230
228
|
assembly_imports:
|
|
231
229
|
form:
|
|
230
|
+
document_legend: Добавяне на документ
|
|
232
231
|
slug_help_html: 'Използват се променливи полета в URL адреса, за да се генерират URL адреси, които водят към това събрание. Допуска се използването само на букви, цифри и тирета и адресът трябва да започва с буква. Пример: %{url}'
|
|
233
232
|
assembly_members:
|
|
234
233
|
form:
|
data/config/locales/ca-IT.yml
CHANGED
|
@@ -74,6 +74,8 @@ ca-IT:
|
|
|
74
74
|
attributes:
|
|
75
75
|
document:
|
|
76
76
|
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}.'
|
|
77
|
+
empty: El document està buit
|
|
78
|
+
invalid_json: El document no és un JSON vàlid
|
|
77
79
|
activerecord:
|
|
78
80
|
models:
|
|
79
81
|
decidim/assembly:
|
|
@@ -120,7 +122,7 @@ ca-IT:
|
|
|
120
122
|
new:
|
|
121
123
|
duplicate: Duplicar
|
|
122
124
|
select: Selecciona quines dades vols duplicar
|
|
123
|
-
title:
|
|
125
|
+
title: Duplicar assemblea
|
|
124
126
|
assembly_imports:
|
|
125
127
|
create:
|
|
126
128
|
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
|
@@ -74,6 +74,8 @@ ca:
|
|
|
74
74
|
attributes:
|
|
75
75
|
document:
|
|
76
76
|
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}.'
|
|
77
|
+
empty: El document està buit
|
|
78
|
+
invalid_json: El document no és un JSON vàlid
|
|
77
79
|
activerecord:
|
|
78
80
|
models:
|
|
79
81
|
decidim/assembly:
|
|
@@ -120,7 +122,7 @@ ca:
|
|
|
120
122
|
new:
|
|
121
123
|
duplicate: Duplicar
|
|
122
124
|
select: Selecciona quines dades vols duplicar
|
|
123
|
-
title:
|
|
125
|
+
title: Duplicar assemblea
|
|
124
126
|
assembly_imports:
|
|
125
127
|
create:
|
|
126
128
|
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
|
@@ -74,6 +74,8 @@ cs:
|
|
|
74
74
|
attributes:
|
|
75
75
|
document:
|
|
76
76
|
allowed_file_content_types: 'Neplatný typ dokumentu. Jsou povoleny pouze soubory s následujícími příponami: %{types}.'
|
|
77
|
+
empty: Dokument je prázdný
|
|
78
|
+
invalid_json: Dokument není platný JSON
|
|
77
79
|
activerecord:
|
|
78
80
|
models:
|
|
79
81
|
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
|
@@ -104,8 +104,6 @@ de:
|
|
|
104
104
|
public: Öffentlich
|
|
105
105
|
published: Veröffentlicht
|
|
106
106
|
unpublished: Nicht veröffentlicht
|
|
107
|
-
manage_trash:
|
|
108
|
-
title: Gelöschte Gremien
|
|
109
107
|
new:
|
|
110
108
|
create: Erstellen
|
|
111
109
|
title: Neues Gremium
|
|
@@ -120,7 +118,6 @@ de:
|
|
|
120
118
|
new:
|
|
121
119
|
duplicate: Duplizieren
|
|
122
120
|
select: Wählen Sie, welche Daten Sie duplizieren möchten
|
|
123
|
-
title: Dupliziertes Gremium
|
|
124
121
|
assembly_imports:
|
|
125
122
|
create:
|
|
126
123
|
error: Beim Importieren dieses Gremiums ist ein Fehler aufgetreten.
|
|
@@ -128,7 +125,6 @@ de:
|
|
|
128
125
|
new:
|
|
129
126
|
import: Importieren
|
|
130
127
|
select: Wählen Sie aus, welche Daten Sie importieren möchten
|
|
131
|
-
title: Gremium importieren
|
|
132
128
|
assembly_publications:
|
|
133
129
|
create:
|
|
134
130
|
error: Beim Veröffentlichen dieses Gremiums ist ein Fehler aufgetreten.
|
|
@@ -143,13 +139,12 @@ de:
|
|
|
143
139
|
destroy:
|
|
144
140
|
success: Benutzer wurde erfolgreich von dieser Assembly entfernt.
|
|
145
141
|
edit:
|
|
146
|
-
title: Gremienadmin aktualisieren
|
|
147
142
|
update: Aktualisieren
|
|
148
143
|
index:
|
|
149
144
|
assembly_admins_title: Assembly Benutzer
|
|
150
145
|
new:
|
|
151
146
|
create: Erstellen
|
|
152
|
-
title: Neuer
|
|
147
|
+
title: Neuer Gremium-Admin
|
|
153
148
|
update:
|
|
154
149
|
error: Bei einem Fehler ist ein Benutzer für diese Assembly aktualisiert worden.
|
|
155
150
|
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 sie müssen 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
|
@@ -107,7 +107,6 @@ el:
|
|
|
107
107
|
new:
|
|
108
108
|
import: Εισαγωγή
|
|
109
109
|
select: Επιλέξετε ποιά δεδομένα θα θέλατε να εισάγετε
|
|
110
|
-
title: Εισαγωγή συνέλευσης
|
|
111
110
|
assembly_publications:
|
|
112
111
|
create:
|
|
113
112
|
error: Υπήρξε ένα πρόβλημα κατά τη δημοσίευση αυτής της συνέλευσης.
|
|
@@ -209,6 +208,9 @@ el:
|
|
|
209
208
|
select_parent_assembly: Επιλέξτε «Γονική συνέλευση»
|
|
210
209
|
social_handlers: Μέσα κοινωνικής δικτύωσης
|
|
211
210
|
title: Γενικές πληροφορίες
|
|
211
|
+
assembly_imports:
|
|
212
|
+
form:
|
|
213
|
+
document_legend: Προσθήκη εγγράφου
|
|
212
214
|
assembly_members:
|
|
213
215
|
form:
|
|
214
216
|
explanation: 'Οδηγίες για την εικόνα:'
|
data/config/locales/en.yml
CHANGED
|
@@ -74,6 +74,8 @@ en:
|
|
|
74
74
|
attributes:
|
|
75
75
|
document:
|
|
76
76
|
allowed_file_content_types: 'Invalid document type. Only files with the following extensions are allowed: %{types}.'
|
|
77
|
+
empty: The document is empty
|
|
78
|
+
invalid_json: The document is not valid JSON
|
|
77
79
|
activerecord:
|
|
78
80
|
models:
|
|
79
81
|
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
|
@@ -74,6 +74,8 @@ es-MX:
|
|
|
74
74
|
attributes:
|
|
75
75
|
document:
|
|
76
76
|
allowed_file_content_types: 'Tipo de documento no válido. Sólo se permiten archivos con las siguientes extensiones: %{types}.'
|
|
77
|
+
empty: El documento está vacío
|
|
78
|
+
invalid_json: El documento no es JSON válido
|
|
77
79
|
activerecord:
|
|
78
80
|
models:
|
|
79
81
|
decidim/assembly:
|
|
@@ -146,10 +148,10 @@ es-MX:
|
|
|
146
148
|
title: Actualizar administradora de la asamblea
|
|
147
149
|
update: Actualizar
|
|
148
150
|
index:
|
|
149
|
-
assembly_admins_title: Usuarios de la
|
|
151
|
+
assembly_admins_title: Usuarios de la asamblea
|
|
150
152
|
new:
|
|
151
153
|
create: Crear
|
|
152
|
-
title:
|
|
154
|
+
title: Añadir administradora
|
|
153
155
|
update:
|
|
154
156
|
error: Ha habido un error al actualizar un usuario para esta asamblea.
|
|
155
157
|
success: Usuario actualizado con éxito para esta asamblea.
|
|
@@ -170,7 +172,7 @@ es-MX:
|
|
|
170
172
|
attachments: Archivos adjuntos
|
|
171
173
|
components: Componentes
|
|
172
174
|
info: Acerca de esta asamblea
|
|
173
|
-
landing_page: Disposición de la página de
|
|
175
|
+
landing_page: Disposición de la página de inicio
|
|
174
176
|
moderations: Moderaciones
|
|
175
177
|
private_users: Miembros
|
|
176
178
|
see_assembly: Ver la 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. Solo 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
|