decidim-participatory_processes 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/participatory_processes/admin/import_participatory_process.rb +4 -2
- data/app/controllers/decidim/participatory_processes/admin/participatory_process_imports_controller.rb +2 -1
- data/app/forms/decidim/participatory_processes/admin/participatory_process_import_form.rb +11 -0
- data/app/models/decidim/participatory_process_step.rb +3 -1
- data/app/serializers/decidim/participatory_processes/participatory_process_importer.rb +76 -13
- data/app/views/decidim/participatory_processes/admin/participatory_process_imports/_form.html.erb +6 -3
- data/app/views/decidim/participatory_processes/admin/participatory_process_steps/index.html.erb +1 -1
- data/app/views/decidim/participatory_processes/participatory_processes/show.html.erb +1 -1
- data/app/views/layouts/decidim/admin/participatory_process_group.html.erb +2 -11
- data/config/locales/ar.yml +0 -7
- data/config/locales/bg.yml +1 -13
- data/config/locales/bs-BA.yml +0 -5
- data/config/locales/ca-IT.yml +13 -7
- data/config/locales/ca.yml +13 -7
- data/config/locales/cs.yml +12 -16
- data/config/locales/de.yml +1 -15
- data/config/locales/el.yml +1 -12
- data/config/locales/en.yml +8 -2
- data/config/locales/es-MX.yml +14 -8
- data/config/locales/es-PY.yml +14 -8
- data/config/locales/es.yml +12 -6
- data/config/locales/eu.yml +22 -16
- data/config/locales/fi-plain.yml +8 -15
- data/config/locales/fi.yml +8 -15
- data/config/locales/fr-CA.yml +13 -11
- data/config/locales/fr.yml +13 -11
- data/config/locales/ga-IE.yml +1 -2
- data/config/locales/gl.yml +1 -10
- data/config/locales/hu.yml +1 -12
- data/config/locales/id-ID.yml +0 -6
- data/config/locales/is-IS.yml +0 -3
- data/config/locales/it.yml +2 -13
- data/config/locales/ja.yml +10 -4
- data/config/locales/lb.yml +0 -10
- data/config/locales/lt.yml +1 -12
- data/config/locales/lv.yml +0 -9
- data/config/locales/nl.yml +3 -15
- data/config/locales/no.yml +0 -12
- data/config/locales/pl.yml +1 -13
- data/config/locales/pt-BR.yml +8 -9
- data/config/locales/pt.yml +1 -13
- data/config/locales/ro-RO.yml +2 -12
- data/config/locales/ru.yml +0 -6
- data/config/locales/sk.yml +1 -10
- data/config/locales/sr-CS.yml +0 -5
- data/config/locales/sv.yml +25 -22
- data/config/locales/tr-TR.yml +0 -13
- data/config/locales/uk.yml +0 -6
- data/config/locales/zh-CN.yml +0 -9
- data/config/locales/zh-TW.yml +3 -14
- data/lib/decidim/participatory_processes/participatory_space.rb +2 -2
- data/lib/decidim/participatory_processes/version.rb +1 -1
- metadata +10 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2e25c6f3710e646dd7b8c1c2723dec0b2fbd8fb8e62bbff8c3ec039084bdb773
|
|
4
|
+
data.tar.gz: 916fb8389e4cc47bfa1ef0e961eea14a62c0c13e681b4b9432197d6c6218f6be
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ca80251f05fd2029ebd4823751332fed0b33b28b4ad310fd28a2496acd10029568e3bc29dad380df3e919bb5cff7cbaed6e956d3a99d1b354fa2342eb5f86453
|
|
7
|
+
data.tar.gz: 74044fa25f48455e692bf5f1e5276f49b109ffa78c93419be6c5a0c6d6e11d58064d2aa8e760d07a2044b7531293471278e1d74fc74a2ecddfbeec9d15ce9f0f
|
|
@@ -29,7 +29,7 @@ module Decidim
|
|
|
29
29
|
add_admins_as_followers(@imported_process)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
broadcast(:ok, @imported_process)
|
|
32
|
+
broadcast(:ok, @imported_process, @warnings)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
private
|
|
@@ -37,13 +37,15 @@ module Decidim
|
|
|
37
37
|
attr_reader :form
|
|
38
38
|
|
|
39
39
|
def import_participatory_process
|
|
40
|
-
|
|
40
|
+
@warnings = []
|
|
41
41
|
participatory_processes.each do |original_process|
|
|
42
|
+
importer = Decidim::ParticipatoryProcesses::ParticipatoryProcessImporter.new(form.current_organization, current_user)
|
|
42
43
|
Decidim.traceability.perform_action!("import", Decidim::ParticipatoryProcess, current_user) do
|
|
43
44
|
@imported_process = importer.import(original_process, current_user, title: form.title, slug: form.slug)
|
|
44
45
|
importer.import_participatory_process_steps(original_process["participatory_process_steps"]) if form.import_steps?
|
|
45
46
|
importer.import_folders_and_attachments(original_process["attachments"]) if form.import_attachments?
|
|
46
47
|
importer.import_components(original_process["components"]) if form.import_components?
|
|
48
|
+
@warnings.concat(importer.warnings)
|
|
47
49
|
@imported_process
|
|
48
50
|
end
|
|
49
51
|
end
|
|
@@ -18,8 +18,9 @@ module Decidim
|
|
|
18
18
|
@form = form(ParticipatoryProcessImportForm).from_params(params)
|
|
19
19
|
|
|
20
20
|
ImportParticipatoryProcess.call(@form) do
|
|
21
|
-
on(:ok) do
|
|
21
|
+
on(:ok) do |_process, warnings|
|
|
22
22
|
flash[:notice] = I18n.t("participatory_process_imports.create.success", scope: "decidim.admin")
|
|
23
|
+
flash[:warning] = warnings.join("<br>") if warnings.any?
|
|
23
24
|
redirect_to participatory_processes_path
|
|
24
25
|
end
|
|
25
26
|
|
|
@@ -30,12 +30,14 @@ module Decidim
|
|
|
30
30
|
attribute :import_components, Boolean, default: true
|
|
31
31
|
attribute :document, Decidim::Attributes::Blob
|
|
32
32
|
|
|
33
|
+
validates :document, presence: true
|
|
33
34
|
validates :document, file_content_type: { allow: ACCEPTED_TYPES.values }
|
|
34
35
|
validates :slug, presence: true, format: { with: Decidim::ParticipatoryProcess.slug_format }
|
|
35
36
|
validates :title, translatable_presence: true
|
|
36
37
|
validate :slug_uniqueness
|
|
37
38
|
|
|
38
39
|
validate :document_type_must_be_valid, if: :document
|
|
40
|
+
validate :document_must_have_content, if: -> { document.present? && errors[:document].none? }
|
|
39
41
|
|
|
40
42
|
def document_text
|
|
41
43
|
@document_text ||= document&.download
|
|
@@ -75,6 +77,15 @@ module Decidim
|
|
|
75
77
|
|
|
76
78
|
errors.add(:slug, :taken)
|
|
77
79
|
end
|
|
80
|
+
|
|
81
|
+
def document_must_have_content
|
|
82
|
+
return if document_text.blank?
|
|
83
|
+
|
|
84
|
+
parsed = JSON.parse(document_text)
|
|
85
|
+
errors.add(:document, :empty) if parsed.is_a?(Array) && parsed.empty?
|
|
86
|
+
rescue JSON::ParserError
|
|
87
|
+
errors.add(:document, :invalid_json)
|
|
88
|
+
end
|
|
78
89
|
end
|
|
79
90
|
end
|
|
80
91
|
end
|
|
@@ -9,9 +9,11 @@ module Decidim
|
|
|
9
9
|
include Traceable
|
|
10
10
|
include Loggable
|
|
11
11
|
|
|
12
|
+
delegate :can_participate?, to: :participatory_process
|
|
13
|
+
|
|
12
14
|
translatable_fields :title, :description, :cta_text
|
|
13
15
|
|
|
14
|
-
belongs_to :participatory_process, foreign_key: "decidim_participatory_process_id", class_name: "Decidim::ParticipatoryProcess"
|
|
16
|
+
belongs_to :participatory_process, foreign_key: "decidim_participatory_process_id", class_name: "Decidim::ParticipatoryProcess", touch: true
|
|
15
17
|
has_one :organization, through: :participatory_process
|
|
16
18
|
|
|
17
19
|
alias participatory_space participatory_process
|
|
@@ -4,9 +4,12 @@ module Decidim
|
|
|
4
4
|
module ParticipatoryProcesses
|
|
5
5
|
# A factory class to ensure we always create ParticipatoryProcesses the same way since it involves some logic.
|
|
6
6
|
class ParticipatoryProcessImporter < 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 ParticipatoryProcess.
|
|
@@ -44,7 +47,7 @@ module Decidim
|
|
|
44
47
|
private_space: attributes["private_space"],
|
|
45
48
|
participatory_process_group: process_group
|
|
46
49
|
)
|
|
47
|
-
|
|
50
|
+
import_hero_image(attributes["remote_hero_image_url"])
|
|
48
51
|
|
|
49
52
|
@imported_process.save!
|
|
50
53
|
@imported_process
|
|
@@ -64,7 +67,7 @@ module Decidim
|
|
|
64
67
|
organization: @organization
|
|
65
68
|
)
|
|
66
69
|
|
|
67
|
-
group
|
|
70
|
+
import_group_hero_image(group, attributes["remote_hero_image_url"])
|
|
68
71
|
group.save!
|
|
69
72
|
group
|
|
70
73
|
end
|
|
@@ -92,20 +95,37 @@ module Decidim
|
|
|
92
95
|
return if attachments["files"].nil?
|
|
93
96
|
|
|
94
97
|
attachments["files"].map do |file|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
url = file["remote_file_url"]
|
|
99
|
+
next if url.blank?
|
|
100
|
+
|
|
101
|
+
error = remote_file_error(url)
|
|
102
|
+
if error.present?
|
|
103
|
+
@warnings << I18n.t(
|
|
104
|
+
"decidim.participatory_processes.admin.imports.attachment_error",
|
|
105
|
+
title: attachment_title(file),
|
|
106
|
+
error:
|
|
107
|
+
)
|
|
108
|
+
next
|
|
109
|
+
end
|
|
98
110
|
|
|
99
111
|
Decidim.traceability.perform_action!("create", Attachment, @user) do
|
|
100
112
|
attachment = Attachment.new(
|
|
101
113
|
title: file["title"],
|
|
102
114
|
description: file["description"],
|
|
103
|
-
content_type: file_tmp.content_type,
|
|
104
115
|
attached_to: @imported_process,
|
|
105
|
-
weight: file["weight"]
|
|
106
|
-
file: file_tmp, # Define attached_to before this
|
|
107
|
-
file_size: file_tmp.size
|
|
116
|
+
weight: file["weight"]
|
|
108
117
|
)
|
|
118
|
+
begin
|
|
119
|
+
attachment.attached_uploader(:file).remote_url = url
|
|
120
|
+
attachment.set_content_type_and_size
|
|
121
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
122
|
+
@warnings << I18n.t(
|
|
123
|
+
"decidim.participatory_processes.admin.imports.attachment_error",
|
|
124
|
+
title: attachment_title(file),
|
|
125
|
+
error: format_error(e)
|
|
126
|
+
)
|
|
127
|
+
next
|
|
128
|
+
end
|
|
109
129
|
attachment.create_attachment_collection(file["attachment_collection"])
|
|
110
130
|
attachment.save!
|
|
111
131
|
attachment
|
|
@@ -149,7 +169,7 @@ module Decidim
|
|
|
149
169
|
attachment_collection
|
|
150
170
|
end
|
|
151
171
|
|
|
152
|
-
def
|
|
172
|
+
def remote_file_error(url)
|
|
153
173
|
return if url.nil?
|
|
154
174
|
|
|
155
175
|
accepted = ["image", "application/pdf"]
|
|
@@ -157,10 +177,53 @@ module Decidim
|
|
|
157
177
|
http_connection = Net::HTTP.new(url.host, url.port)
|
|
158
178
|
http_connection.use_ssl = true if url.scheme == "https"
|
|
159
179
|
http_connection.start do |http|
|
|
160
|
-
|
|
180
|
+
response = http.head(url.request_uri)
|
|
181
|
+
content_type = response["Content-Type"]
|
|
182
|
+
next if response.is_a?(Net::HTTPSuccess) && content_type&.start_with?(*accepted)
|
|
183
|
+
|
|
184
|
+
message = response.message.presence || Rack::Utils::HTTP_STATUS_CODES[response.code.to_i]
|
|
185
|
+
message = message.presence || "Error"
|
|
186
|
+
next "#{response.code} #{message}"
|
|
161
187
|
end
|
|
162
|
-
rescue StandardError
|
|
163
|
-
|
|
188
|
+
rescue StandardError => e
|
|
189
|
+
format_error(e)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def attachment_title(file)
|
|
193
|
+
title = file["title"]
|
|
194
|
+
return "" if title.blank?
|
|
195
|
+
|
|
196
|
+
return title unless title.is_a?(Hash)
|
|
197
|
+
|
|
198
|
+
title.values.find(&:present?) || ""
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def import_hero_image(url)
|
|
202
|
+
return if url.blank?
|
|
203
|
+
|
|
204
|
+
@imported_process.attached_uploader(:hero_image).remote_url = url
|
|
205
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
206
|
+
@warnings << I18n.t("decidim.participatory_processes.admin.imports.hero_image_error", error: format_error(e))
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
def import_group_hero_image(group, url)
|
|
210
|
+
return if url.blank?
|
|
211
|
+
|
|
212
|
+
group.attached_uploader(:hero_image).remote_url = url
|
|
213
|
+
rescue OpenURI::HTTPError, Errno::ENOENT, Errno::ECONNREFUSED, SocketError, Net::OpenTimeout, Net::ReadTimeout => e
|
|
214
|
+
@warnings << I18n.t("decidim.participatory_processes.admin.imports.hero_image_error", error: format_error(e))
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
def format_error(error)
|
|
218
|
+
return error.message unless error.respond_to?(:io) && error.io.respond_to?(:status)
|
|
219
|
+
|
|
220
|
+
status = error.io.status
|
|
221
|
+
return error.message if status.blank? || status.first.blank?
|
|
222
|
+
|
|
223
|
+
code = status[0]
|
|
224
|
+
message = status[1].presence || Rack::Utils::HTTP_STATUS_CODES[code.to_i]
|
|
225
|
+
message = message.presence || error.message
|
|
226
|
+
"#{code} #{message}"
|
|
164
227
|
end
|
|
165
228
|
end
|
|
166
229
|
end
|
data/app/views/decidim/participatory_processes/admin/participatory_process_imports/_form.html.erb
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
<div class="form__wrapper">
|
|
2
2
|
<div class="card pt-4" id="processes">
|
|
3
3
|
<div class="card-section">
|
|
4
|
+
<div class="row column mb-4">
|
|
5
|
+
<%= cell("decidim/announcement", { body: t("decidim.participatory_processes.admin.new_import.help_html") }, callout_class: "info") %>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
4
8
|
<div class="row column">
|
|
5
|
-
<%= form.translated :text_field, :title, autofocus: true %>
|
|
9
|
+
<%= form.translated :text_field, :title, autofocus: true, aria: { label: :title } %>
|
|
6
10
|
</div>
|
|
7
11
|
|
|
8
12
|
<div class="row column">
|
|
@@ -10,7 +14,7 @@
|
|
|
10
14
|
</div>
|
|
11
15
|
|
|
12
16
|
<div class="row column">
|
|
13
|
-
<%= form.upload :document,
|
|
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
19
|
|
|
16
20
|
<div class="card-divider">
|
|
@@ -32,7 +36,6 @@
|
|
|
32
36
|
</div>
|
|
33
37
|
</div>
|
|
34
38
|
|
|
35
|
-
</div>
|
|
36
39
|
</div>
|
|
37
40
|
</div>
|
|
38
41
|
</div>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<% add_secondary_root_menu(:admin_participatory_process_group_menu) %>
|
|
2
|
+
|
|
1
3
|
<% content_for :breadcrumb_context_menu do %>
|
|
2
4
|
<div class="process-title-content-breadcrumb-container-right">
|
|
3
5
|
<% if allowed_to? :create, :process_group %>
|
|
@@ -8,17 +10,6 @@
|
|
|
8
10
|
</span>
|
|
9
11
|
<% end %>
|
|
10
12
|
<% end %>
|
|
11
|
-
<div class="inline-block relative">
|
|
12
|
-
<%= button_tag id: "processes-menu-trigger", data: { component: "dropdown", target: "processes-dropdown-menu-settings" }, class: "dropdown__trigger button button__transparent" do %>
|
|
13
|
-
<span>
|
|
14
|
-
<%= t("menu.manage", scope: "decidim.admin") %>
|
|
15
|
-
</span>
|
|
16
|
-
<%= icon "arrow-down-s-line" %>
|
|
17
|
-
<% end %>
|
|
18
|
-
<div id="processes-dropdown-menu-settings" class="process-title-content-dropdown">
|
|
19
|
-
<%= dropdown_menu(:admin_participatory_process_group_menu).render %>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
13
|
</div>
|
|
23
14
|
<% end %>
|
|
24
15
|
|
data/config/locales/ar.yml
CHANGED
|
@@ -138,7 +138,6 @@ ar:
|
|
|
138
138
|
destroy:
|
|
139
139
|
success: تم حذف مجموعة العملية التشاركية بنجاح.
|
|
140
140
|
edit:
|
|
141
|
-
title: تحرير مجموعة العملية
|
|
142
141
|
update: تحديث
|
|
143
142
|
new:
|
|
144
143
|
create: إنشاء
|
|
@@ -149,7 +148,6 @@ ar:
|
|
|
149
148
|
participatory_process_imports:
|
|
150
149
|
new:
|
|
151
150
|
import: استيراد
|
|
152
|
-
title: استيراد مسار تشاركي
|
|
153
151
|
participatory_process_publications:
|
|
154
152
|
create:
|
|
155
153
|
error: كانت هناك مشكلة في نشر هذه العملية التشاركية.
|
|
@@ -169,13 +167,11 @@ ar:
|
|
|
169
167
|
destroy:
|
|
170
168
|
success: تم حذف مرحلة العملية التشاركية بنجاح.
|
|
171
169
|
edit:
|
|
172
|
-
title: تحرير مرحلة العملية التشاركية
|
|
173
170
|
update: تحديث
|
|
174
171
|
index:
|
|
175
172
|
steps_title: المراحل
|
|
176
173
|
new:
|
|
177
174
|
create: إنشاء
|
|
178
|
-
title: مرحلة عملية تشاركية جديدة
|
|
179
175
|
ordering:
|
|
180
176
|
error: كانت هناك مشكلة في إعادة ترتيب هذه المراحل من العملية التشاركية.
|
|
181
177
|
update:
|
|
@@ -189,8 +185,6 @@ ar:
|
|
|
189
185
|
success: تمت إزالة المشرف بنجاح من هذه العملية التشاركية.
|
|
190
186
|
edit:
|
|
191
187
|
update: تحديث
|
|
192
|
-
index:
|
|
193
|
-
process_admins_title: مدراء العملية التشاركية
|
|
194
188
|
new:
|
|
195
189
|
create: إنشاء
|
|
196
190
|
update:
|
|
@@ -208,7 +202,6 @@ ar:
|
|
|
208
202
|
published: نشرت
|
|
209
203
|
new:
|
|
210
204
|
create: إنشاء
|
|
211
|
-
title: عملية تشاركية جديدة
|
|
212
205
|
update:
|
|
213
206
|
error: حدثت مشكلة أثناء تحديث هذه العملية التشاركية.
|
|
214
207
|
success: عملية المشاركة تم تحديثها بنجاح.
|
data/config/locales/bg.yml
CHANGED
|
@@ -106,9 +106,6 @@ bg:
|
|
|
106
106
|
label: По група на процеса
|
|
107
107
|
menu:
|
|
108
108
|
participatory_process_groups: Групи процеси
|
|
109
|
-
participatory_process_groups_submenu:
|
|
110
|
-
info: Информация
|
|
111
|
-
landing_page: Целева страница
|
|
112
109
|
participatory_processes: Процеси
|
|
113
110
|
participatory_processes_submenu:
|
|
114
111
|
attachment_collections: Папки
|
|
@@ -161,7 +158,6 @@ bg:
|
|
|
161
158
|
destroy:
|
|
162
159
|
success: Групата на процеса на участие беше изтрита успешно.
|
|
163
160
|
edit:
|
|
164
|
-
title: Редактиране на групата на процеса
|
|
165
161
|
update: Актуализация
|
|
166
162
|
new:
|
|
167
163
|
create: Създаване
|
|
@@ -176,7 +172,6 @@ bg:
|
|
|
176
172
|
new:
|
|
177
173
|
import: Импортиране
|
|
178
174
|
select: Изберете кои данни искате да импортирате
|
|
179
|
-
title: Импортиране на процес на участие
|
|
180
175
|
participatory_process_publications:
|
|
181
176
|
create:
|
|
182
177
|
error: Възникна проблем при публикуването на този процес на участие.
|
|
@@ -206,13 +201,11 @@ bg:
|
|
|
206
201
|
Оставихме го тук, за да можете да мигрирате CTA, от които се нуждаете. Полетата <i>Call to action path</i> и
|
|
207
202
|
<i>Текстът на подканващата фраза</i> ще бъде премахнат в следващата версия.
|
|
208
203
|
title: CTA е остарял
|
|
209
|
-
title: Редактиране на етап на процес на участие
|
|
210
204
|
update: Актуализация
|
|
211
205
|
index:
|
|
212
|
-
steps_title:
|
|
206
|
+
steps_title: Фази
|
|
213
207
|
new:
|
|
214
208
|
create: Създаване
|
|
215
|
-
title: Нов етап на процес на участие
|
|
216
209
|
ordering:
|
|
217
210
|
error: Възникна проблем при промяната на реда на тези етапи на процеса на участие.
|
|
218
211
|
update:
|
|
@@ -225,13 +218,9 @@ bg:
|
|
|
225
218
|
destroy:
|
|
226
219
|
success: Администраторът успешно премахнат от този процес на участие.
|
|
227
220
|
edit:
|
|
228
|
-
title: Актуализиране на администратора на процеса на участие
|
|
229
221
|
update: Актуализация
|
|
230
|
-
index:
|
|
231
|
-
process_admins_title: Администратори на процес на участие
|
|
232
222
|
new:
|
|
233
223
|
create: Създаване
|
|
234
|
-
title: Нов администратор на процес на участие
|
|
235
224
|
update:
|
|
236
225
|
error: Възникна проблем при актуализирането на администратор за този процес на участие.
|
|
237
226
|
success: Администраторът беше актуализиран успешно за този процес на участие.
|
|
@@ -248,7 +237,6 @@ bg:
|
|
|
248
237
|
unpublished: Непубликувано
|
|
249
238
|
new:
|
|
250
239
|
create: Създаване
|
|
251
|
-
title: Нов процес на участие
|
|
252
240
|
update:
|
|
253
241
|
error: Възникна проблем при актуализирането на този процес на участие.
|
|
254
242
|
success: Процесът на участие беше актуализиран успешно.
|
data/config/locales/bs-BA.yml
CHANGED
|
@@ -6,11 +6,6 @@ bs:
|
|
|
6
6
|
participatory_process_user_role:
|
|
7
7
|
roles:
|
|
8
8
|
valuator: Procenjivač
|
|
9
|
-
participatory_process_user_roles:
|
|
10
|
-
edit:
|
|
11
|
-
title: Ažuriraj administratora participatornog procesa
|
|
12
|
-
new:
|
|
13
|
-
title: Novi administrator participatornog prostora
|
|
14
9
|
events:
|
|
15
10
|
participatory_process:
|
|
16
11
|
role_assigned:
|
data/config/locales/ca-IT.yml
CHANGED
|
@@ -68,6 +68,8 @@ ca-IT:
|
|
|
68
68
|
attributes:
|
|
69
69
|
document:
|
|
70
70
|
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}'
|
|
71
|
+
empty: El document està buit
|
|
72
|
+
invalid_json: El document no és un JSON vàlid
|
|
71
73
|
models:
|
|
72
74
|
decidim/participatory_process_step_activated_event: Fase activada
|
|
73
75
|
decidim/participatory_process_step_changed_event: Fase modificada
|
|
@@ -111,8 +113,8 @@ ca-IT:
|
|
|
111
113
|
menu:
|
|
112
114
|
participatory_process_groups: Grups de processos
|
|
113
115
|
participatory_process_groups_submenu:
|
|
114
|
-
info:
|
|
115
|
-
landing_page:
|
|
116
|
+
info: Quant a aquest grup de processos
|
|
117
|
+
landing_page: Disposició de la pàgina de destinació
|
|
116
118
|
participatory_processes: Processos
|
|
117
119
|
participatory_processes_submenu:
|
|
118
120
|
attachment_collections: Carpetes
|
|
@@ -170,7 +172,7 @@ ca-IT:
|
|
|
170
172
|
error: Hi ha hagut un error en eliminar el grup de processos participatius.
|
|
171
173
|
success: El grup de processos participatius s'ha eliminat correctament.
|
|
172
174
|
edit:
|
|
173
|
-
title:
|
|
175
|
+
title: Editar el grup de procés
|
|
174
176
|
update: Actualitza
|
|
175
177
|
new:
|
|
176
178
|
create: Crea
|
|
@@ -185,7 +187,7 @@ ca-IT:
|
|
|
185
187
|
new:
|
|
186
188
|
import: Importar
|
|
187
189
|
select: Selecciona quines dades vols importar.
|
|
188
|
-
title: Importar
|
|
190
|
+
title: Importar un procés participatiu
|
|
189
191
|
participatory_process_publications:
|
|
190
192
|
create:
|
|
191
193
|
error: S'ha produït un error en publicar aquest procés participatiu.
|
|
@@ -214,13 +216,13 @@ ca-IT:
|
|
|
214
216
|
Ara això es fa a la <b>Página d'inici</b>, fent servir el bloc de contingut <b>Imatges principal i botó d'acció</b>.
|
|
215
217
|
L'hem deixar aquí per a que migris els CTAs que necessitis. Els camps <i>Ruta del botó d'acció</i> i <i>Text del botó d'acció</i> s'eliminaran a la propera versió.
|
|
216
218
|
title: CTA obsolet
|
|
217
|
-
title:
|
|
219
|
+
title: Editar la fase de procés participatiu
|
|
218
220
|
update: Actualitza
|
|
219
221
|
index:
|
|
220
222
|
steps_title: Fases del procés
|
|
221
223
|
new:
|
|
222
224
|
create: Crea
|
|
223
|
-
title: Nova fase
|
|
225
|
+
title: Nova fase del procés participatiu
|
|
224
226
|
ordering:
|
|
225
227
|
error: S'ha produït un error en la reordenació de les fases d'aquest procés participatiu.
|
|
226
228
|
update:
|
|
@@ -233,7 +235,7 @@ ca-IT:
|
|
|
233
235
|
destroy:
|
|
234
236
|
success: L'administradora s'ha eliminat correctament d'aquest procés participatiu.
|
|
235
237
|
edit:
|
|
236
|
-
title: Actualitzar administradora
|
|
238
|
+
title: Actualitzar l'administradora del procés participatiu
|
|
237
239
|
update: Actualitza
|
|
238
240
|
index:
|
|
239
241
|
process_admins_title: Administradores del procés participatiu
|
|
@@ -426,9 +428,13 @@ ca-IT:
|
|
|
426
428
|
all: Tots
|
|
427
429
|
max_results: Quantitat màxima d'elements que es mostraran
|
|
428
430
|
selection_criteria: Criteris de selecció
|
|
431
|
+
imports:
|
|
432
|
+
attachment_error: No s'ha pogut importar l'arxiu adjunt "%{title}" (%{error}).
|
|
433
|
+
hero_image_error: No s'ha pogut importar la imatge principal (%{error}).
|
|
429
434
|
new_import:
|
|
430
435
|
accepted_types:
|
|
431
436
|
json: JSON
|
|
437
|
+
help_html: Aquesta funció d'importació et permet crear un nou procés participatiu a partir d'un fitxer JSON exportat. Pots exportar un procés participatiu d'una altra organització o de la mateixa organització. El procés participatiu importat inclourà la seva configuració, els components i els fitxers adjunts (si s'han seleccionat).
|
|
432
438
|
participatory_process_copies:
|
|
433
439
|
form:
|
|
434
440
|
slug_help_html: 'Els noms curts d''URL s''utilitzen per generar les URL que apunten a aquest procés. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
|
data/config/locales/ca.yml
CHANGED
|
@@ -68,6 +68,8 @@ ca:
|
|
|
68
68
|
attributes:
|
|
69
69
|
document:
|
|
70
70
|
allowed_file_content_types: 'Tipus de document no vàlid. Només s''accepten arxius amb les següents extensions: %{types}'
|
|
71
|
+
empty: El document està buit
|
|
72
|
+
invalid_json: El document no és un JSON vàlid
|
|
71
73
|
models:
|
|
72
74
|
decidim/participatory_process_step_activated_event: Fase activada
|
|
73
75
|
decidim/participatory_process_step_changed_event: Fase modificada
|
|
@@ -111,8 +113,8 @@ ca:
|
|
|
111
113
|
menu:
|
|
112
114
|
participatory_process_groups: Grups de processos
|
|
113
115
|
participatory_process_groups_submenu:
|
|
114
|
-
info:
|
|
115
|
-
landing_page:
|
|
116
|
+
info: Quant a aquest grup de processos
|
|
117
|
+
landing_page: Disposició de la pàgina de destinació
|
|
116
118
|
participatory_processes: Processos
|
|
117
119
|
participatory_processes_submenu:
|
|
118
120
|
attachment_collections: Carpetes
|
|
@@ -170,7 +172,7 @@ ca:
|
|
|
170
172
|
error: Hi ha hagut un error en eliminar el grup de processos participatius.
|
|
171
173
|
success: El grup de processos participatius s'ha eliminat correctament.
|
|
172
174
|
edit:
|
|
173
|
-
title:
|
|
175
|
+
title: Editar el grup de procés
|
|
174
176
|
update: Actualitza
|
|
175
177
|
new:
|
|
176
178
|
create: Crea
|
|
@@ -185,7 +187,7 @@ ca:
|
|
|
185
187
|
new:
|
|
186
188
|
import: Importar
|
|
187
189
|
select: Selecciona quines dades vols importar.
|
|
188
|
-
title: Importar
|
|
190
|
+
title: Importar un procés participatiu
|
|
189
191
|
participatory_process_publications:
|
|
190
192
|
create:
|
|
191
193
|
error: S'ha produït un error en publicar aquest procés participatiu.
|
|
@@ -214,13 +216,13 @@ ca:
|
|
|
214
216
|
Ara això es fa a la <b>Página d'inici</b>, fent servir el bloc de contingut <b>Imatges principal i botó d'acció</b>.
|
|
215
217
|
L'hem deixar aquí per a que migris els CTAs que necessitis. Els camps <i>Ruta del botó d'acció</i> i <i>Text del botó d'acció</i> s'eliminaran a la propera versió.
|
|
216
218
|
title: CTA obsolet
|
|
217
|
-
title:
|
|
219
|
+
title: Editar la fase de procés participatiu
|
|
218
220
|
update: Actualitza
|
|
219
221
|
index:
|
|
220
222
|
steps_title: Fases del procés
|
|
221
223
|
new:
|
|
222
224
|
create: Crea
|
|
223
|
-
title: Nova fase
|
|
225
|
+
title: Nova fase del procés participatiu
|
|
224
226
|
ordering:
|
|
225
227
|
error: S'ha produït un error en la reordenació de les fases d'aquest procés participatiu.
|
|
226
228
|
update:
|
|
@@ -233,7 +235,7 @@ ca:
|
|
|
233
235
|
destroy:
|
|
234
236
|
success: L'administradora s'ha eliminat correctament d'aquest procés participatiu.
|
|
235
237
|
edit:
|
|
236
|
-
title: Actualitzar administradora
|
|
238
|
+
title: Actualitzar l'administradora del procés participatiu
|
|
237
239
|
update: Actualitza
|
|
238
240
|
index:
|
|
239
241
|
process_admins_title: Administradores del procés participatiu
|
|
@@ -426,9 +428,13 @@ ca:
|
|
|
426
428
|
all: Tots
|
|
427
429
|
max_results: Quantitat màxima d'elements que es mostraran
|
|
428
430
|
selection_criteria: Criteris de selecció
|
|
431
|
+
imports:
|
|
432
|
+
attachment_error: No s'ha pogut importar l'arxiu adjunt "%{title}" (%{error}).
|
|
433
|
+
hero_image_error: No s'ha pogut importar la imatge principal (%{error}).
|
|
429
434
|
new_import:
|
|
430
435
|
accepted_types:
|
|
431
436
|
json: JSON
|
|
437
|
+
help_html: Aquesta funció d'importació et permet crear un nou procés participatiu a partir d'un fitxer JSON exportat. Pots exportar un procés participatiu d'una altra organització o de la mateixa organització. El procés participatiu importat inclourà la seva configuració, els components i els fitxers adjunts (si s'han seleccionat).
|
|
432
438
|
participatory_process_copies:
|
|
433
439
|
form:
|
|
434
440
|
slug_help_html: 'Els noms curts d''URL s''utilitzen per generar les URL que apunten a aquest procés. Només accepta lletres, números i guions, i ha de començar amb una lletra. Exemple: %{url}'
|