decidim-assemblies 0.30.5 → 0.30.6

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/assemblies/admin/import_assembly.rb +4 -2
  3. data/app/controllers/decidim/assemblies/admin/assembly_imports_controller.rb +2 -1
  4. data/app/forms/decidim/assemblies/admin/assembly_import_form.rb +11 -0
  5. data/app/helpers/decidim/assemblies/assemblies_helper.rb +4 -1
  6. data/app/serializers/decidim/assemblies/assembly_importer.rb +74 -8
  7. data/app/views/decidim/assemblies/admin/assembly_imports/_form.html.erb +20 -16
  8. data/app/views/decidim/assemblies/admin/assembly_imports/new.html.erb +1 -0
  9. data/config/locales/ar.yml +3 -0
  10. data/config/locales/bg.yml +1 -0
  11. data/config/locales/ca-IT.yml +8 -0
  12. data/config/locales/ca.yml +8 -0
  13. data/config/locales/cs.yml +8 -0
  14. data/config/locales/de.yml +1 -0
  15. data/config/locales/el.yml +3 -0
  16. data/config/locales/en.yml +8 -0
  17. data/config/locales/es-MX.yml +8 -0
  18. data/config/locales/es-PY.yml +8 -0
  19. data/config/locales/es.yml +8 -0
  20. data/config/locales/eu.yml +6 -0
  21. data/config/locales/fi-plain.yml +1 -0
  22. data/config/locales/fi.yml +1 -0
  23. data/config/locales/fr-CA.yml +23 -0
  24. data/config/locales/fr.yml +23 -0
  25. data/config/locales/gl.yml +3 -0
  26. data/config/locales/hu.yml +3 -0
  27. data/config/locales/it.yml +1 -0
  28. data/config/locales/ja.yml +6 -0
  29. data/config/locales/lb.yml +3 -0
  30. data/config/locales/lt.yml +3 -0
  31. data/config/locales/nl.yml +3 -0
  32. data/config/locales/no.yml +3 -0
  33. data/config/locales/pl.yml +1 -0
  34. data/config/locales/pt-BR.yml +3 -0
  35. data/config/locales/pt.yml +1 -0
  36. data/config/locales/ro-RO.yml +11 -7
  37. data/config/locales/sl.yml +3 -0
  38. data/config/locales/sv.yml +12 -4
  39. data/config/locales/tr-TR.yml +3 -0
  40. data/config/locales/zh-CN.yml +3 -0
  41. data/config/locales/zh-TW.yml +3 -0
  42. data/lib/decidim/assemblies/participatory_space.rb +2 -2
  43. data/lib/decidim/assemblies/version.rb +1 -1
  44. metadata +12 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17105d17b96ff3f9e123184527c32ee832dd55ea4839f19429cee4a334950340
4
- data.tar.gz: 7eba5359544e6dee4695832f4cbeaf96e73d3a13d072475568a64cbc74e45ea5
3
+ metadata.gz: d89d8a8e2cfb31bc7c2479951adcd9b40648927ba660df7a0a940d6ba55c46a2
4
+ data.tar.gz: a7bd22419a0d67c37a923c113d2078db578c4fe522dadef3e7ea54409d69ebdb
5
5
  SHA512:
6
- metadata.gz: 43e178dab04e73a571ce0bc4b4cff9a275127bcae08209a3ce70336366a02876394045a857e4d937dabe4dc0111f20bb28ac22c87f480476ab02b24b07704ec7
7
- data.tar.gz: 5dca1a69905e22ea05150330925ba1743c7c4e93fe312c924b0082e393895ea103e2f0b0557b54daa710e4d82f042c5394268d53582f460e520d326c6df249fc
6
+ metadata.gz: 6e852bd08c4c7f218adc283a3e195f6bb4e19e6f61653a20222a4e08023ed235263405d1295a802dd468c52aaf9ef2472f9864f63614192be6da5ca22ce12fb3
7
+ data.tar.gz: 714b1e3caaf1971551d72662f1b7310fab9b972c60d032e87efd2870a6fc07707cbda161c669003b5474af5726a049e847e28f4862efc7ae3085fa192c4aeb49
@@ -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
- importer = Decidim::Assemblies::AssemblyImporter.new(form.current_organization, form.current_user)
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.components.published.or(Decidim::Component.where(id: try(:current_component)))
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
- @imported_assembly.attached_uploader(:hero_image).remote_url = attributes["remote_hero_image_url"] if attributes["remote_hero_image_url"].present?
62
- @imported_assembly.attached_uploader(:banner_image).remote_url = attributes["remote_banner_image_url"] if attributes["remote_banner_image_url"].present?
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,9 +73,29 @@ module Decidim
70
73
  return if attachments["files"].nil?
71
74
 
72
75
  attachments["files"].map do |file|
73
- next unless remote_file_exists?(file["remote_file_url"])
76
+ url = file["remote_file_url"]
77
+ next if url.blank?
78
+
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
74
88
 
75
- file_tmp = URI.parse(file["remote_file_url"]).open
89
+ begin
90
+ file_tmp = URI.parse(url).open
91
+ rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
92
+ @warnings << I18n.t(
93
+ "decidim.assemblies.admin.imports.attachment_error",
94
+ title: attachment_title(file),
95
+ error: format_error(e)
96
+ )
97
+ next
98
+ end
76
99
 
77
100
  Decidim.traceability.perform_action!("create", Attachment, @user) do
78
101
  attachment = Attachment.new(
@@ -122,7 +145,7 @@ module Decidim
122
145
  attachment_collection
123
146
  end
124
147
 
125
- def remote_file_exists?(url)
148
+ def remote_file_error(url)
126
149
  return if url.nil?
127
150
 
128
151
  accepted = ["image", "application/pdf"]
@@ -130,10 +153,53 @@ module Decidim
130
153
  http_connection = Net::HTTP.new(url.host, url.port)
131
154
  http_connection.use_ssl = true if url.scheme == "https"
132
155
  http_connection.start do |http|
133
- return http.head(url.request_uri)["Content-Type"].start_with?(*accepted)
156
+ response = http.head(url.request_uri)
157
+ content_type = response["Content-Type"]
158
+ next if response.is_a?(Net::HTTPSuccess) && content_type&.start_with?(*accepted)
159
+
160
+ message = response.message.presence || Rack::Utils::HTTP_STATUS_CODES[response.code.to_i]
161
+ message = message.presence || "Error"
162
+ next "#{response.code} #{message}"
134
163
  end
135
- rescue StandardError
136
- nil
164
+ rescue StandardError => e
165
+ format_error(e)
166
+ end
167
+
168
+ def attachment_title(file)
169
+ title = file["title"]
170
+ return "" if title.blank?
171
+
172
+ return title unless title.is_a?(Hash)
173
+
174
+ title.values.find(&:present?) || ""
175
+ end
176
+
177
+ def import_hero_image(url)
178
+ return if url.blank?
179
+
180
+ @imported_assembly.attached_uploader(:hero_image).remote_url = url
181
+ rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
182
+ @warnings << I18n.t("decidim.assemblies.admin.imports.hero_image_error", error: format_error(e))
183
+ end
184
+
185
+ def import_banner_image(url)
186
+ return if url.blank?
187
+
188
+ @imported_assembly.attached_uploader(:banner_image).remote_url = url
189
+ rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
190
+ @warnings << I18n.t("decidim.assemblies.admin.imports.banner_image_error", error: format_error(e))
191
+ end
192
+
193
+ def format_error(error)
194
+ return error.message unless error.respond_to?(:io) && error.io.respond_to?(:status)
195
+
196
+ status = error.io.status
197
+ return error.message if status.blank? || status.first.blank?
198
+
199
+ code = status[0]
200
+ message = status[1].presence || Rack::Utils::HTTP_STATUS_CODES[code.to_i]
201
+ message = message.presence || error.message
202
+ "#{code} #{message}"
137
203
  end
138
204
  end
139
205
  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
- <div class="row column">
16
- <div class="card">
17
- <div class="card-divider">
18
- <legend><%= t("assembly_imports.new.select", scope: "decidim.admin") %></legend>
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="card-section">
21
- <div class="row">
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>
@@ -1,4 +1,5 @@
1
1
  <% add_decidim_page_title(t("assembly_imports.new.title", scope: "decidim.admin")) %>
2
+
2
3
  <div class="item_show__header">
3
4
  <h1 class="item_show__header-title">
4
5
  <%= t("assembly_imports.new.title", scope: "decidim.admin") %>
@@ -225,6 +225,9 @@ ar:
225
225
  select_parent_assembly: حدد الجمعية الأصلية
226
226
  social_handlers: التواصل الاجتماعي
227
227
  title: معلومات عامة
228
+ assembly_imports:
229
+ form:
230
+ document_legend: إضافة وثيقة
228
231
  assembly_members:
229
232
  form:
230
233
  explanation: 'إرشادات للصورة:'
@@ -241,6 +241,7 @@ bg:
241
241
  slug_help_html: 'Използват се променливи полета в URL адреса, за да се генерират URL адреси, които водят към това събрание. Допуска се използването само на букви, цифри и тирета и адресът трябва да започва с буква. Пример: %{url}'
242
242
  assembly_imports:
243
243
  form:
244
+ document_legend: Добавяне на документ
244
245
  slug_help_html: 'Използват се променливи полета в URL адреса, за да се генерират URL адреси, които водят към това събрание. Допуска се използването само на букви, цифри и тирета и адресът трябва да започва с буква. Пример: %{url}'
245
246
  assembly_members:
246
247
  form:
@@ -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:
@@ -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
@@ -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:
@@ -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
@@ -225,9 +225,11 @@ cs:
225
225
  export: "%{user_name} exportoval shromáždění %{resource_name}"
226
226
  import: "%{user_name} importoval shromáždění %{resource_name}"
227
227
  publish: "%{user_name} publikoval %{resource_name} shromáždění"
228
+ publish_all_members: "%{user_name} zveřejnil všechny členy shromáždění %{resource_name}"
228
229
  restore: "%{user_name} obnovil shromáždění %{resource_name}"
229
230
  soft_delete: "%{user_name} přesunul do koše shromáždění %{resource_name}"
230
231
  unpublish: "%{user_name} odebral %{resource_name} shromáždění"
232
+ unpublish_all_members: "%{user_name} zneveřejnil všechny členy shromáždění %{resource_name}"
231
233
  update: "%{user_name} aktualizoval shromáždění %{resource_name}"
232
234
  assembly_member:
233
235
  create: "%{user_name} vytvořil %{resource_name} člena ve shromáždění %{space_name}"
@@ -271,6 +273,7 @@ cs:
271
273
  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
274
  assembly_imports:
273
275
  form:
276
+ document_legend: Přidat dokument
274
277
  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
278
  assembly_members:
276
279
  form:
@@ -280,9 +283,14 @@ cs:
280
283
  content_blocks:
281
284
  highlighted_assemblies:
282
285
  max_results: Maximální množství prvků, které chcete zobrazit
286
+ imports:
287
+ attachment_error: Přílohu "%{title}" nelze importovat (%{error}).
288
+ banner_image_error: Obrázek banneru nelze importovat (%{error}).
289
+ hero_image_error: Obrázek hrdiny nelze importovat (%{error}).
283
290
  new_import:
284
291
  accepted_types:
285
292
  json: JSON
293
+ 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
294
  assemblies:
287
295
  description:
288
296
  area_name: Oblast
@@ -267,6 +267,7 @@ de:
267
267
  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
268
  assembly_imports:
269
269
  form:
270
+ document_legend: Dokument hinzufügen
270
271
  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
272
  assembly_members:
272
273
  form:
@@ -217,6 +217,9 @@ el:
217
217
  select_parent_assembly: Επιλέξτε «Γονική συνέλευση»
218
218
  social_handlers: Μέσα κοινωνικής δικτύωσης
219
219
  title: Γενικές πληροφορίες
220
+ assembly_imports:
221
+ form:
222
+ document_legend: Προσθήκη εγγράφου
220
223
  assembly_members:
221
224
  form:
222
225
  explanation: 'Οδηγίες για την εικόνα:'
@@ -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
@@ -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:
@@ -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
@@ -75,6 +75,8 @@ es-PY:
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:
@@ -267,6 +269,7 @@ es-PY:
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-PY:
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
@@ -75,6 +75,8 @@ es:
75
75
  attributes:
76
76
  document:
77
77
  allowed_file_content_types: 'Tipo de documento no válido. Solo 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:
@@ -267,6 +269,7 @@ es:
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:
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
@@ -267,6 +267,7 @@ eu:
267
267
  slug_help_html: 'URL-ren testu laburrak batzar honetara daramaten URL-ak sortzeko erabiltzen dira. Letrak, zenbakiak eta gidoiak soilik onartzen ditu, eta letra batez hasi behar du. Adibidea: %{url}'
268
268
  assembly_imports:
269
269
  form:
270
+ document_legend: Gehitu dokumentu bat
270
271
  slug_help_html: 'URL-ren testu laburrak batzar honetara daramaten URL-ak sortzeko erabiltzen dira. Letrak, zenbakiak eta gidoiak soilik onartzen ditu, eta letra batez hasi behar du. Adibidea: %{url}'
271
272
  assembly_members:
272
273
  form:
@@ -276,9 +277,14 @@ eu:
276
277
  content_blocks:
277
278
  highlighted_assemblies:
278
279
  max_results: Erakusteko elementu gehienen kopurua
280
+ imports:
281
+ attachment_error: Ezin izan da "%{title}" eranskina inportatu (%{error}).
282
+ banner_image_error: Ezin izan da bannerraren irudia inportatu (%{error}).
283
+ hero_image_error: Ezin izan da heroiaren irudia inportatu (%{error}).
279
284
  new_import:
280
285
  accepted_types:
281
286
  json: JSON
287
+ help_html: Inportazio ezaugarri honek aukera ematen du JSON fitxategi esportatu batetik beste batzar bat sortzeko. Beste erakunde bateko edo erakunde bereko batzar bat esporta dezakezu. Inportatutako batzarrak barne hartuko ditu bere ezarpenak, osagaiak eta eranskinak (aukeratuz gero).
282
288
  assemblies:
283
289
  description:
284
290
  area_name: Arloa
@@ -267,6 +267,7 @@ fi-pl:
267
267
  slug_help_html: 'URL-tunnisteita käytetään tähän ryhmään osoittavien URL-osoitteiden luonnissa. Hyväksyy kirjaimet, numerot ja viivat. Ensimmäinen merkki on oltava kirjain. Esimerkiksi: %{url}'
268
268
  assembly_imports:
269
269
  form:
270
+ document_legend: Lisää dokumentti
270
271
  slug_help_html: 'URL-tunnisteita käytetään tähän ryhmään osoittavien URL-osoitteiden luonnissa. Hyväksyy kirjaimet, numerot ja viivat. Ensimmäinen merkki on oltava kirjain. Esimerkiksi: %{url}'
271
272
  assembly_members:
272
273
  form:
@@ -267,6 +267,7 @@ fi:
267
267
  slug_help_html: 'URL-tunnisteita käytetään tähän ryhmään osoittavien URL-osoitteiden luonnissa. Hyväksyy kirjaimet, numerot ja viivat. Ensimmäinen merkki on oltava kirjain. Esimerkiksi: %{url}'
268
268
  assembly_imports:
269
269
  form:
270
+ document_legend: Lisää dokumentti
270
271
  slug_help_html: 'URL-tunnisteita käytetään tähän ryhmään osoittavien URL-osoitteiden luonnissa. Hyväksyy kirjaimet, numerot ja viivat. Ensimmäinen merkki on oltava kirjain. Esimerkiksi: %{url}'
271
272
  assembly_members:
272
273
  form:
@@ -75,6 +75,8 @@ fr-CA:
75
75
  attributes:
76
76
  document:
77
77
  allowed_file_content_types: 'Type de document invalide. Seuls les fichiers avec les extensions suivantes sont autorisés : %{types}.'
78
+ empty: Le document est vide
79
+ invalid_json: Le document n'est pas un JSON valide
78
80
  activerecord:
79
81
  models:
80
82
  decidim/assembly:
@@ -267,6 +269,7 @@ fr-CA:
267
269
  slug_help_html: 'Les identifiants d''URL sont utilisés pour générer les URL qui pointent vers cette assemblée. N''accepte que des lettres, des chiffres et des tirets et doit commencer par une lettre. Exemple : %{url}'
268
270
  assembly_imports:
269
271
  form:
272
+ document_legend: Ajouter un document
270
273
  slug_help_html: 'Les identifiants d''URL sont utilisés pour générer les URL qui pointent vers cette assemblée. N''accepte que des lettres, des chiffres et des tirets et doit commencer par une lettre. Exemple: %{url}'
271
274
  assembly_members:
272
275
  form:
@@ -276,9 +279,14 @@ fr-CA:
276
279
  content_blocks:
277
280
  highlighted_assemblies:
278
281
  max_results: Quantité maximale d'éléments à afficher
282
+ imports:
283
+ attachment_error: La pièce jointe «%{title}» n’a pas pu être importée (%{error}).
284
+ banner_image_error: L'image de la bannière n'a pas pu être importée (%{error}).
285
+ hero_image_error: L'image principale n'a pas pu être importée (%{error}).
279
286
  new_import:
280
287
  accepted_types:
281
288
  json: JSON
289
+ help_html: Cette fonction d'importation vous permet de créer une nouvelle assemblée à partir d'un fichier JSON exporté. Vous pouvez exporter une assemblée depuis une autre organisation ou depuis cette même organisation. L'assemblée importée inclura ses paramètres, composants et pièces jointes (si sélectionnés).
282
290
  assemblies:
283
291
  description:
284
292
  area_name: Périmètre d'assemblée
@@ -394,7 +402,22 @@ fr-CA:
394
402
  composition: La composition de l'assemblée
395
403
  created_at: La date de création de cet espace
396
404
  created_by: Qui a créé cette assemblée
405
+ created_by_other: Autre créateur de l'assemblée
406
+ description: Une description longue de l'assemblée
407
+ duration: La durée de l'assemblée
408
+ follows_count: Le nombre d'utilisateurs suivant cet espace
397
409
  hashtag: Le hashtag de l'assemblée, utilisé par Twitter/X
410
+ id: L'identifiant unique de cette assemblée
411
+ internal_organisation: L'organisation interne de cette assemblée
412
+ is_transparent: Si l'assemblée est transparente ou non
413
+ local_area: La zone locale de cette assemblée
414
+ promoted: Si l'assemblée est promue ou non
415
+ published_at: La date à laquelle cet espace a été publié
416
+ purpose_of_action: Le but de l'action de l'assemblée
417
+ short_description: Une courte description de l'assemblée
418
+ subtitle: Le sous-titre de l'assemblée
419
+ target: La cible de l'assemblée
420
+ title: Le titre de l'assemblée
398
421
  participatory_processes:
399
422
  show:
400
423
  related_assemblies: Assemblées associées
@@ -75,6 +75,8 @@ fr:
75
75
  attributes:
76
76
  document:
77
77
  allowed_file_content_types: 'Type de document invalide. Seuls les fichiers avec les extensions suivantes sont autorisés : %{types}.'
78
+ empty: Le document est vide
79
+ invalid_json: Le document n'est pas un JSON valide
78
80
  activerecord:
79
81
  models:
80
82
  decidim/assembly:
@@ -267,6 +269,7 @@ fr:
267
269
  slug_help_html: 'Les identifiants d''URL sont utilisés pour générer les URL qui pointent vers cette assemblée. N''accepte que des lettres, des chiffres et des tirets et doit commencer par une lettre. Exemple : %{url}'
268
270
  assembly_imports:
269
271
  form:
272
+ document_legend: Ajouter un document
270
273
  slug_help_html: 'Les identifiants d''URL sont utilisés pour générer les URL qui pointent vers cette assemblée. N''accepte que des lettres, des chiffres et des tirets et doit commencer par une lettre. Exemple: %{url}'
271
274
  assembly_members:
272
275
  form:
@@ -276,9 +279,14 @@ fr:
276
279
  content_blocks:
277
280
  highlighted_assemblies:
278
281
  max_results: Quantité maximale d'éléments à afficher
282
+ imports:
283
+ attachment_error: La pièce jointe «%{title}» n’a pas pu être importée (%{error}).
284
+ banner_image_error: L'image de la bannière n'a pas pu être importée (%{error}).
285
+ hero_image_error: L'image principale n'a pas pu être importée (%{error}).
279
286
  new_import:
280
287
  accepted_types:
281
288
  json: JSON
289
+ help_html: Cette fonction d'importation vous permet de créer une nouvelle assemblée à partir d'un fichier JSON exporté. Vous pouvez exporter une assemblée depuis une autre organisation ou depuis cette même organisation. L'assemblée importée inclura ses paramètres, composants et pièces jointes (si sélectionnés).
282
290
  assemblies:
283
291
  description:
284
292
  area_name: Périmètre d'assemblée
@@ -394,7 +402,22 @@ fr:
394
402
  composition: La composition de l'assemblée
395
403
  created_at: La date de création de cet espace
396
404
  created_by: Qui a créé cette assemblée
405
+ created_by_other: Autre créateur de l'assemblée
406
+ description: Une description longue de l'assemblée
407
+ duration: La durée de l'assemblée
408
+ follows_count: Le nombre d'utilisateurs suivant cet espace
397
409
  hashtag: Le hashtag de l'assemblée, utilisé par Twitter/X
410
+ id: L'identifiant unique de cette assemblée
411
+ internal_organisation: L'organisation interne de cette assemblée
412
+ is_transparent: Si l'assemblée est transparente ou non
413
+ local_area: La zone locale de cette assemblée
414
+ promoted: Si l'assemblée est promue ou non
415
+ published_at: La date à laquelle cet espace a été publié
416
+ purpose_of_action: Le but de l'action de l'assemblée
417
+ short_description: Une courte description de l'assemblée
418
+ subtitle: Le sous-titre de l'assemblée
419
+ target: La cible de l'assemblée
420
+ title: Le titre de l'assemblée
398
421
  participatory_processes:
399
422
  show:
400
423
  related_assemblies: Assemblées associées
@@ -202,6 +202,9 @@ gl:
202
202
  select_parent_assembly: Seleccione o conxunto primario
203
203
  social_handlers: Social
204
204
  title: Información xeral
205
+ assembly_imports:
206
+ form:
207
+ document_legend: Engadir un documento
205
208
  assembly_members:
206
209
  form:
207
210
  explanation: 'Instrucións para a imaxe:'
@@ -232,6 +232,9 @@ hu:
232
232
  social_handlers: Social
233
233
  title: Általános információ
234
234
  visibility: Láthatóság
235
+ assembly_imports:
236
+ form:
237
+ document_legend: Dokumentum hozzáadása
235
238
  assembly_members:
236
239
  form:
237
240
  explanation: 'Útmutató a képhez:'
@@ -259,6 +259,7 @@ it:
259
259
  slug_help_html: 'Gli slug URL vengono utilizzati per generare gli URL che puntano a questa assemblea. Accetta solo lettere, numeri e trattini, e deve iniziare con una lettera. Esempio: %{url}'
260
260
  assembly_imports:
261
261
  form:
262
+ document_legend: Aggiungere un documento
262
263
  slug_help_html: 'Gli slug URL vengono utilizzati per generare gli URL che puntano a questa assemblea. Accetta solo lettere, numeri e trattini, e deve iniziare con una lettera. Esempio: %{url}'
263
264
  assembly_members:
264
265
  form:
@@ -264,6 +264,7 @@ ja:
264
264
  slug_help_html: 'URLスラグは、この参加スペースを指すURLを生成するために使用されます。 英字、数字、ハイフンのみを受け付け、英字で始める必要があります。例: %{url}'
265
265
  assembly_imports:
266
266
  form:
267
+ document_legend: ドキュメントを追加
267
268
  slug_help_html: 'URLスラグは、この参加スペースを指すURLを生成するために使用されます。 英字、数字、ハイフンのみを受け付け、英字で始める必要があります。例: %{url}'
268
269
  assembly_members:
269
270
  form:
@@ -273,9 +274,14 @@ ja:
273
274
  content_blocks:
274
275
  highlighted_assemblies:
275
276
  max_results: 表示する要素の最大量
277
+ imports:
278
+ attachment_error: 添付ファイル "%{title}" をインポートできませんでした(%{error})。
279
+ banner_image_error: バナー画像をインポートできませんでした(%{error})。
280
+ hero_image_error: ヒーロー画像をインポートできませんでした(%{error})。
276
281
  new_import:
277
282
  accepted_types:
278
283
  json: JSON
284
+ help_html: このインポート機能を使用すると、エクスポートされた JSON ファイルから新しいアセンブリを作成できます。アセンブリは他の組織から、または同じ組織内からエクスポート可能です。インポートされるアセンブリには、その設定、コンポーネント、および添付ファイル(選択されている場合)がすべて含まれます。
279
285
  assemblies:
280
286
  description:
281
287
  area_name: エリア
@@ -156,6 +156,9 @@ lb:
156
156
  name: Name
157
157
  assemblies:
158
158
  admin:
159
+ assembly_imports:
160
+ form:
161
+ document_legend: Dokument hinzufügen
159
162
  content_blocks:
160
163
  highlighted_assemblies:
161
164
  max_results: Maximale Anzahl der Elemente, die angezeigt werden sollen
@@ -224,6 +224,9 @@ lt:
224
224
  select_parent_assembly: Pasirinkti pagrindinę asamblėją
225
225
  social_handlers: Socialiniai
226
226
  title: Bendroji informacija
227
+ assembly_imports:
228
+ form:
229
+ document_legend: Pridėti dokumentą
227
230
  assembly_members:
228
231
  form:
229
232
  explanation: 'Paveikslėliui skirtos gairės:'
@@ -205,6 +205,9 @@ nl:
205
205
  select_parent_assembly: Selecteer de hoofdgroep
206
206
  social_handlers: sociaal
207
207
  title: Algemene informatie
208
+ assembly_imports:
209
+ form:
210
+ document_legend: Document toevoegen
208
211
  assembly_members:
209
212
  form:
210
213
  explanation: 'Eigenschappen afbeelding:'
@@ -201,6 +201,9 @@
201
201
  select_parent_assembly: Velg foreldre-forsamling
202
202
  social_handlers: Sosial
203
203
  title: Generell Informasjon
204
+ assembly_imports:
205
+ form:
206
+ document_legend: Legg til et dokument
204
207
  assembly_members:
205
208
  form:
206
209
  explanation: 'Veiledning for bilde:'
@@ -247,6 +247,7 @@ pl:
247
247
  slug_help_html: 'Slugi URL służą do generowania adresów URL kierujących bezpośrednio do tego zgromadzenia. Można użyć liter, cyfr i myślników. Musi zaczynać się od litery. Przykład: %{url}'
248
248
  assembly_imports:
249
249
  form:
250
+ document_legend: Dodaj dokument
250
251
  slug_help_html: 'Slugi URL służą do generowania adresów URL kierujących bezpośrednio do tego zgromadzenia. Można użyć liter, cyfr i myślników. Musi zaczynać się od litery. Przykład: %{url}'
251
252
  assembly_members:
252
253
  form:
@@ -75,6 +75,8 @@ pt-BR:
75
75
  attributes:
76
76
  document:
77
77
  allowed_file_content_types: 'Tipo de documento inválido. Apenas arquivos com as seguintes extensões são permitidos: %{types}.'
78
+ empty: O documento está vazio
79
+ invalid_json: O documento não é um JSON válido
78
80
  activerecord:
79
81
  models:
80
82
  decidim/assembly:
@@ -267,6 +269,7 @@ pt-BR:
267
269
  slug_help_html: 'Os slugs de URL são usados ​​para gerar os URLs que apontam para essa assembleia. Apenas aceita letras, números e traços, e deve começar com uma carta. Exemplo: %{url}'
268
270
  assembly_imports:
269
271
  form:
272
+ document_legend: Adicionar um documento
270
273
  slug_help_html: 'Os slugs de URL são usados ​​para gerar os URLs que apontam para essa assembleia. Apenas aceita letras, números e traços, e deve começar com uma carta. Exemplo: %{url}'
271
274
  assembly_members:
272
275
  form:
@@ -259,6 +259,7 @@ pt:
259
259
  slug_help_html: 'São usados slugs de URL para gerar URLs que apontam para esta reunião. Aceita apenas letras, números e traços, e deve começar com uma letra. Exemplo: %{url}'
260
260
  assembly_imports:
261
261
  form:
262
+ document_legend: Adicionar um documento
262
263
  slug_help_html: 'São usados slugs de URL para gerar URLs que apontam para esta reunião. Aceita apenas letras, números e traços, e deve começar com uma letra. Exemplo: %{url}'
263
264
  assembly_members:
264
265
  form:
@@ -6,7 +6,7 @@ ro:
6
6
  announcement: Anunț
7
7
  area_id: Zonă
8
8
  assembly_type: Tipul grupului de lucru
9
- assembly_type_other: Alt tip de grup de lucru
9
+ assembly_type_other: Alte tipuri de grupuri de lucru
10
10
  banner_image: Imagine pentru banner
11
11
  closing_date: Data închiderii
12
12
  closing_date_reason: Motivul datei de închidere
@@ -46,7 +46,7 @@ ro:
46
46
  purpose_of_action: Scopul acțiunii
47
47
  short_description: Scurtă descriere
48
48
  slug: URL slug
49
- special_features: Caracteristici speciale
49
+ special_features: Funcționalități speciale
50
50
  subtitle: Subtitlu
51
51
  target: Cine participă
52
52
  title: Titlu
@@ -81,8 +81,8 @@ ro:
81
81
  other: Grupuri de lucru
82
82
  decidim/assembly_member:
83
83
  one: Membru al grupului de lucru
84
- few: Membrii ai grupului de lucru
85
- other: Membrii ai grupului de lucru
84
+ few: Membri ai grupului de lucru
85
+ other: Membri ai grupului de lucru
86
86
  decidim/assembly_user_role:
87
87
  one: Rolul utilizatorului în cadrul grupului de lucru
88
88
  few: Rolurile utilizatorului în cadrul grupului de lucru
@@ -156,7 +156,7 @@ ro:
156
156
  fields:
157
157
  created_at: Creat la
158
158
  private: Privat
159
- promoted: Evidenţiat
159
+ promoted: Evidențiat
160
160
  published: Publicat
161
161
  title: Titlu
162
162
  name: Grup de lucru
@@ -222,6 +222,9 @@ ro:
222
222
  social_handlers: Rețele de socializare
223
223
  taxonomies: Taxonomii
224
224
  title: Informaţii generale
225
+ assembly_imports:
226
+ form:
227
+ document_legend: Adaugă un document
225
228
  assembly_members:
226
229
  form:
227
230
  explanation: 'Îndrumare pentru imagine:'
@@ -232,6 +235,7 @@ ro:
232
235
  new_import:
233
236
  accepted_types:
234
237
  json: JSON
238
+ help_html: Această caracteristică de import vă permite să creați o nou grup de lucru dintr-un fișier JSON exportat. Puteți exporta un grup de lucru dintr-o altă organizație sau din aceeași organizație. Grupul de lucru importat va include setările, componentele și atașamentele sale (dacă este selectată).
235
239
  assemblies:
236
240
  description:
237
241
  area_name: Zonă
@@ -279,7 +283,7 @@ ro:
279
283
  home:
280
284
  highlighted_assemblies:
281
285
  active_spaces: Grupuri de lucru active
282
- see_all_spaces: Vedeți tot
286
+ see_all_spaces: Vedeți toate grupurile de lucru
283
287
  user_profile:
284
288
  member_of:
285
289
  member_of: Membru al
@@ -339,7 +343,7 @@ ro:
339
343
  children_item:
340
344
  one: "%{count} grup de lucru"
341
345
  few: "%{count} grupuri de lucru"
342
- other: "%{count} grup de lucru"
346
+ other: "%{count} grupuri de lucru"
343
347
  order_by_assemblies:
344
348
  assemblies:
345
349
  one: "%{count} grup de lucru"
@@ -126,6 +126,9 @@ sl:
126
126
  metadata: Meta podatki
127
127
  other: Drugo
128
128
  select_parent_assembly: Izberi matično združbo
129
+ assembly_imports:
130
+ form:
131
+ document_legend: Dodaj dokument
129
132
  assemblies:
130
133
  filters:
131
134
  names:
@@ -75,6 +75,8 @@ sv:
75
75
  attributes:
76
76
  document:
77
77
  allowed_file_content_types: 'Ogiltig dokumenttyp. Endast filer med följande tillägg är tillåtna: %{types}.'
78
+ empty: Dokumentet är tomt
79
+ invalid_json: Dokumentet är inte giltigt JSON
78
80
  activerecord:
79
81
  models:
80
82
  decidim/assembly:
@@ -120,7 +122,7 @@ sv:
120
122
  assembly_copies:
121
123
  new:
122
124
  copy: Kopiera
123
- select: Välj vilka data som du vill duplicera
125
+ select: Välj vilken data du vill duplicera
124
126
  title: Duplicera samråd
125
127
  assembly_imports:
126
128
  create:
@@ -219,11 +221,11 @@ sv:
219
221
  export: "%{user_name} exporterade samrådet %{resource_name}"
220
222
  import: "%{user_name} importerade samrådet %{resource_name}"
221
223
  publish: "%{user_name} publicerade samrådet %{resource_name}"
222
- publish_all_members: "%{user_name} publicerade samrådet %{resource_name}"
224
+ publish_all_members: "%{user_name} publicerade alla medlemmar i samrådet %{resource_name}"
223
225
  restore: "%{user_name} återställde samrådet %{resource_name}"
224
226
  soft_delete: "%{user_name} tog bort samrådet %{resource_name}"
225
227
  unpublish: "%{user_name} avpublicerade samrådet %{resource_name}"
226
- unpublish_all_members: "%{user_name} avpublicerade samrådet %{resource_name}"
228
+ unpublish_all_members: "%{user_name} avpublicerade alla medlemmar i samrådet %{resource_name}"
227
229
  update: "%{user_name} uppdaterade samrådet %{resource_name}"
228
230
  assembly_member:
229
231
  create: "%{user_name} skapade medlemmen %{resource_name} i samrådet %{space_name}"
@@ -246,7 +248,7 @@ sv:
246
248
  assemblies:
247
249
  form:
248
250
  announcement_help: Den här texten visas direkt under informationen om samrådet.
249
- define_taxonomy_filters: Vänligen definiera några filter för deltagarutrymmet innan du använder den här inställningen.
251
+ define_taxonomy_filters: Ställ in filter innan du använder den här inställningen.
250
252
  duration: Varaktighet
251
253
  duration_help: Välj ett slutdatum om samrådet är tidsbegränsat.
252
254
  images: Bilder
@@ -267,6 +269,7 @@ sv:
267
269
  slug_help_html: 'URL-slugs används till att generera URL:er till samrådet. Använd bara bokstäver, siffror och bindestreck, och de måste börja med en bokstav. Exempel: %{url}'
268
270
  assembly_imports:
269
271
  form:
272
+ document_legend: Lägg till ett dokument
270
273
  slug_help_html: 'URL-slugs används till att generera URL:er till samrådet. Använd bara bokstäver, siffror och bindestreck, och de måste börja med en bokstav. Exempel: %{url}'
271
274
  assembly_members:
272
275
  form:
@@ -276,9 +279,14 @@ sv:
276
279
  content_blocks:
277
280
  highlighted_assemblies:
278
281
  max_results: Maximalt antal element att visa
282
+ imports:
283
+ attachment_error: Bilagan "%{title}" kunde inte importeras (%{error}).
284
+ banner_image_error: Bannerbilden kunde inte importeras (%{error}).
285
+ hero_image_error: Startbilden kunde inte importeras (%{error}).
279
286
  new_import:
280
287
  accepted_types:
281
288
  json: JSON
289
+ help_html: Importfunktionen låter dig skapa ett nytt samråd från en exporterad JSON-fil. Du kan exportera ett samråd från en annan organisation eller från samma organisation. Det importerade samrådet innehåller inställningar, komponenter och bilagor (om det är valt).
282
290
  assemblies:
283
291
  description:
284
292
  area_name: Område
@@ -213,6 +213,9 @@ tr:
213
213
  social_handlers: Sosyal
214
214
  title: Genel bilgi
215
215
  visibility: Görünürlük
216
+ assembly_imports:
217
+ form:
218
+ document_legend: Bir belge ekle
216
219
  assembly_members:
217
220
  form:
218
221
  explanation: 'Görüntü kılavuzu:'
@@ -193,6 +193,9 @@ zh-CN:
193
193
  select_parent_assembly: 选择父程序集
194
194
  social_handlers: 社交活动
195
195
  title: 一般信息
196
+ assembly_imports:
197
+ form:
198
+ document_legend: 添加文档
196
199
  content_blocks:
197
200
  highlighted_assemblies:
198
201
  max_results: 显示元素的最大数量
@@ -214,6 +214,9 @@ zh-TW:
214
214
  select_parent_assembly: 選擇父組件
215
215
  social_handlers: 社群
216
216
  title: 基本資訊
217
+ assembly_imports:
218
+ form:
219
+ document_legend: 添加文檔
217
220
  assembly_members:
218
221
  form:
219
222
  explanation: '圖像的指導'
@@ -32,8 +32,8 @@ Decidim.register_participatory_space(:assemblies) do |participatory_space|
32
32
  end
33
33
 
34
34
  participatory_space.exports :assemblies do |export|
35
- export.collection do |space, _user|
36
- Decidim::Assembly.public_spaces.includes(:attachment_collections).where(id: space)
35
+ export.collection do |space, user|
36
+ Decidim::Assembly.visible_for(user).includes(:attachment_collections).where(id: space)
37
37
  end
38
38
 
39
39
  export.include_in_open_data = true
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-assemblies version.
5
5
  module Assemblies
6
6
  def self.version
7
- "0.30.5"
7
+ "0.30.6"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-assemblies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.5
4
+ version: 0.30.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-01-28 00:00:00.000000000 Z
13
+ date: 2026-02-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-core
@@ -18,70 +18,70 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.30.5
21
+ version: 0.30.6
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.30.5
28
+ version: 0.30.6
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: decidim-admin
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.30.5
35
+ version: 0.30.6
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.30.5
42
+ version: 0.30.6
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: decidim-dev
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - '='
48
48
  - !ruby/object:Gem::Version
49
- version: 0.30.5
49
+ version: 0.30.6
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - '='
55
55
  - !ruby/object:Gem::Version
56
- version: 0.30.5
56
+ version: 0.30.6
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: decidim-meetings
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - '='
62
62
  - !ruby/object:Gem::Version
63
- version: 0.30.5
63
+ version: 0.30.6
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - '='
69
69
  - !ruby/object:Gem::Version
70
- version: 0.30.5
70
+ version: 0.30.6
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: decidim-proposals
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.30.5
77
+ version: 0.30.6
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 0.30.5
84
+ version: 0.30.6
85
85
  description: Assemblies component for decidim.
86
86
  email:
87
87
  - josepjaume@gmail.com