decidim-proposals 0.31.2 → 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/controllers/decidim/proposals/admin/proposals_imports_controller.rb +15 -0
- data/app/forms/decidim/proposals/admin/proposal_form.rb +51 -1
- data/app/forms/decidim/proposals/admin/proposals_import_form.rb +7 -22
- data/app/packs/entrypoints/decidim_proposals_admin.js +1 -0
- data/app/packs/src/decidim/proposals/admin/controllers/import_proposals/controller.js +110 -0
- data/app/packs/src/decidim/proposals/admin/import_proposals.js +5 -0
- data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +9 -12
- data/config/locales/ar.yml +12 -2
- data/config/locales/bg.yml +6 -0
- data/config/locales/ca-IT.yml +10 -10
- data/config/locales/ca.yml +10 -10
- data/config/locales/cs.yml +8 -2
- data/config/locales/de.yml +3 -3
- data/config/locales/el.yml +6 -0
- data/config/locales/es-MX.yml +9 -9
- data/config/locales/es-PY.yml +5 -5
- data/config/locales/es.yml +8 -8
- data/config/locales/eu.yml +4 -4
- data/config/locales/fi-plain.yml +6 -4
- data/config/locales/fi.yml +4 -2
- data/config/locales/fr-CA.yml +13 -10
- data/config/locales/fr.yml +13 -10
- data/config/locales/ga-IE.yml +5 -0
- data/config/locales/gl.yml +9 -3
- data/config/locales/hu.yml +8 -2
- data/config/locales/id-ID.yml +6 -3
- data/config/locales/is-IS.yml +24 -0
- data/config/locales/it.yml +11 -5
- data/config/locales/ja.yml +5 -5
- data/config/locales/lt.yml +11 -3
- data/config/locales/lv.yml +7 -2
- data/config/locales/nl.yml +12 -8
- data/config/locales/no.yml +6 -0
- data/config/locales/pl.yml +13 -5
- data/config/locales/pt-BR.yml +5 -5
- data/config/locales/pt.yml +8 -2
- data/config/locales/ro-RO.yml +9 -2
- data/config/locales/ru.yml +27 -0
- data/config/locales/sk.yml +9 -3
- data/config/locales/sl.yml +6 -0
- data/config/locales/sv.yml +144 -32
- data/config/locales/tr-TR.yml +12 -5
- data/config/locales/uk.yml +27 -0
- data/config/locales/zh-CN.yml +5 -0
- data/config/locales/zh-TW.yml +6 -1
- data/lib/decidim/proposals/admin_engine.rb +5 -2
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +22 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c245b1ea6ef736a9799553e7f87f5f95d5c7c7b4c3b7c3e4830f3c9c4626d650
|
|
4
|
+
data.tar.gz: a6238f6e26575eee72a3e3f1b87c07e30a8822fef9c0cb47475af9c571e6b677
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e03002daa5cfc826e8c18fbcfc60dba89d1d5aa294e4bf909db8eab8933f97b7b73d3061b94ae1190dc59750b91764e77fc0397fee6a49201efe98ebf1fa9853
|
|
7
|
+
data.tar.gz: 857327cf0f33058d2830e7b34ded7e299577c9d5e1cf30dad5ba06b78541647f9e4d7c1a885ed290354b85e5309f70001439250769136fed4fcc94ec3337b05c
|
|
@@ -27,6 +27,21 @@ module Decidim
|
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
|
+
|
|
31
|
+
def component_states
|
|
32
|
+
enforce_permission_to :import, :proposals
|
|
33
|
+
component = current_participatory_space.components.find_by(id: params[:origin_id])
|
|
34
|
+
|
|
35
|
+
if component
|
|
36
|
+
states = Decidim::Proposals::ProposalState
|
|
37
|
+
.where(component:)
|
|
38
|
+
.map { |s| { token: s.token, title: translated_attribute(s.title) } }
|
|
39
|
+
states << { token: "not_answered", title: I18n.t("decidim.proposals.answers.not_answered") }
|
|
40
|
+
render json: states
|
|
41
|
+
else
|
|
42
|
+
render json: []
|
|
43
|
+
end
|
|
44
|
+
end
|
|
30
45
|
end
|
|
31
46
|
end
|
|
32
47
|
end
|
|
@@ -27,12 +27,62 @@ module Decidim
|
|
|
27
27
|
|
|
28
28
|
self.title = presenter.title(all_locales: title.is_a?(Hash))
|
|
29
29
|
self.body = presenter.editor_body(all_locales: body.is_a?(Hash))
|
|
30
|
-
self.documents = model.attachments
|
|
30
|
+
self.documents = model.attachments.ids
|
|
31
|
+
self.add_documents = model.attachments.map { |att| { id: att.id, title: att.title } }
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def documents=(value)
|
|
35
|
+
case value
|
|
36
|
+
when String
|
|
37
|
+
super(parse_string_documents(value))
|
|
38
|
+
when Integer
|
|
39
|
+
super([value])
|
|
40
|
+
else
|
|
41
|
+
super
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def documents
|
|
46
|
+
result = super
|
|
47
|
+
|
|
48
|
+
if should_use_add_documents?(result)
|
|
49
|
+
extract_ids_from_add_documents
|
|
50
|
+
else
|
|
51
|
+
result.is_a?(Array) ? result : []
|
|
52
|
+
end
|
|
31
53
|
end
|
|
32
54
|
|
|
33
55
|
def notify_missing_attachment_if_errored
|
|
34
56
|
errors.add(:add_documents, :needs_to_be_reattached) if errors.any? && add_documents.present?
|
|
35
57
|
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
def should_use_add_documents?(result)
|
|
62
|
+
(result.blank? || result.is_a?(String)) && add_documents.present?
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def extract_ids_from_add_documents
|
|
66
|
+
add_documents
|
|
67
|
+
.select { |doc| doc.is_a?(Hash) && (doc[:id].present? || doc["id"].present?) }
|
|
68
|
+
.map { |doc| (doc[:id] || doc["id"]).to_i }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def parse_string_documents(value)
|
|
72
|
+
return [] if value.blank?
|
|
73
|
+
|
|
74
|
+
parse_document_ids(value)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def parse_document_ids(value)
|
|
78
|
+
ids = begin
|
|
79
|
+
Array(JSON.parse(value))
|
|
80
|
+
rescue JSON::ParserError
|
|
81
|
+
value.split(",").map(&:strip)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
ids.map(&:to_i).reject(&:zero?)
|
|
85
|
+
end
|
|
36
86
|
end
|
|
37
87
|
end
|
|
38
88
|
end
|
|
@@ -14,16 +14,10 @@ module Decidim
|
|
|
14
14
|
attribute :keep_authors, Boolean
|
|
15
15
|
attribute :states, Array[String]
|
|
16
16
|
|
|
17
|
-
validates :origin_component_id, :origin_component, :
|
|
17
|
+
validates :origin_component_id, :origin_component, :current_component, presence: true
|
|
18
|
+
validates :states, presence: true
|
|
18
19
|
validate :valid_states
|
|
19
20
|
|
|
20
|
-
def states_collection
|
|
21
|
-
@states_collection ||= ProposalState.where(component: current_component) + [ProposalState.new(token: "not_answered",
|
|
22
|
-
title: I18n.t(
|
|
23
|
-
:not_answered, scope: "decidim.proposals.answers"
|
|
24
|
-
))]
|
|
25
|
-
end
|
|
26
|
-
|
|
27
21
|
def states
|
|
28
22
|
super.compact_blank
|
|
29
23
|
end
|
|
@@ -42,23 +36,14 @@ module Decidim
|
|
|
42
36
|
end
|
|
43
37
|
end
|
|
44
38
|
|
|
45
|
-
def available_states(component_id = nil)
|
|
46
|
-
scope = Decidim::Proposals::ProposalState
|
|
47
|
-
scope = scope.where(component: Decidim::Component.find(component_id)) if component_id.present?
|
|
48
|
-
|
|
49
|
-
states = scope.pluck(:token).uniq.map do |token|
|
|
50
|
-
OpenStruct.new(token:, title: token.humanize)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
states + [OpenStruct.new(token: "not_answered", title: I18n.t("decidim.proposals.answers.not_answered"))]
|
|
54
|
-
end
|
|
55
|
-
|
|
56
39
|
private
|
|
57
40
|
|
|
58
41
|
def valid_states
|
|
59
|
-
return
|
|
60
|
-
|
|
61
|
-
|
|
42
|
+
return unless origin_component
|
|
43
|
+
return if states.empty?
|
|
44
|
+
|
|
45
|
+
valid_tokens = Decidim::Proposals::ProposalState.where(component: origin_component).pluck(:token) + ["not_answered"]
|
|
46
|
+
return if states.all? { |state| valid_tokens.include?(state) }
|
|
62
47
|
|
|
63
48
|
errors.add(:states, :invalid)
|
|
64
49
|
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Controller } from "@hotwired/stimulus"
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Stimulus controller for the admin import-proposals form.
|
|
5
|
+
*
|
|
6
|
+
* Watches a `<select>` element (the origin component picker) and dynamically
|
|
7
|
+
* fetches the available proposal states for the chosen component.
|
|
8
|
+
* The retrieved states are rendered as a list of checkboxes inside a
|
|
9
|
+
* container element, so admins can easily filter which proposal states to import.
|
|
10
|
+
*
|
|
11
|
+
* Targets:
|
|
12
|
+
* - `select` – The `<select>` element used to choose the origin component.
|
|
13
|
+
* - `container` – The wrapper element where the state checkboxes are rendered.
|
|
14
|
+
*
|
|
15
|
+
* Values:
|
|
16
|
+
* - `statesUrl` {String} – Base URL of the endpoint that returns available states.
|
|
17
|
+
* - `selectedStates` {Array} – Pre-selected state tokens (populated on page load
|
|
18
|
+
* when re-rendering a previously submitted form).
|
|
19
|
+
*/
|
|
20
|
+
export default class ImportProposalsController extends Controller {
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Lifecycle callback invoked by Stimulus when the controller is connected to
|
|
24
|
+
* the DOM. Triggers an initial state fetch based on the currently selected
|
|
25
|
+
* component so that a pre-filled form displays the correct checkboxes.
|
|
26
|
+
* @returns {void}
|
|
27
|
+
*/
|
|
28
|
+
connect() {
|
|
29
|
+
this._fetchStates(this.selectTarget.value);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Triggered when the select value changes.
|
|
34
|
+
* @param {Event} event - The change event fired by the select element.
|
|
35
|
+
* @returns {void}
|
|
36
|
+
*/
|
|
37
|
+
onSelectChange(event) {
|
|
38
|
+
this._fetchStates(event.target.value);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Escapes a string for safe insertion into HTML.
|
|
43
|
+
* @param {string} str - The string to escape.
|
|
44
|
+
* @returns {string} The escaped HTML string.
|
|
45
|
+
*/
|
|
46
|
+
_escapeHtml(str) {
|
|
47
|
+
const div = document.createElement("div");
|
|
48
|
+
div.appendChild(document.createTextNode(str));
|
|
49
|
+
return div.innerHTML;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Fetches the available states for the given component ID and renders them.
|
|
54
|
+
* @param {string} componentId - The ID of the selected component to fetch states for.
|
|
55
|
+
* @returns {void}
|
|
56
|
+
*/
|
|
57
|
+
_fetchStates(componentId) {
|
|
58
|
+
const container = this.containerTarget;
|
|
59
|
+
if (!componentId) {
|
|
60
|
+
container.innerHTML = "";
|
|
61
|
+
container.style.display = "none";
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const url = `${this.statesUrlValue}?origin_id=${componentId}`;
|
|
66
|
+
fetch(url, {
|
|
67
|
+
credentials: "same-origin",
|
|
68
|
+
headers: { Accept: "application/json" }
|
|
69
|
+
}).then((res) => {
|
|
70
|
+
return res.json();
|
|
71
|
+
}).then((states) => {
|
|
72
|
+
if (!states.length) {
|
|
73
|
+
container.innerHTML = "";
|
|
74
|
+
container.style.display = "none";
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const selectedStates = this.selectedStatesValue;
|
|
79
|
+
const wrapper = document.createElement("div");
|
|
80
|
+
wrapper.className = "row column";
|
|
81
|
+
|
|
82
|
+
states.forEach((state) => {
|
|
83
|
+
const div = document.createElement("div");
|
|
84
|
+
const label = document.createElement("label");
|
|
85
|
+
const input = document.createElement("input");
|
|
86
|
+
input.type = "checkbox";
|
|
87
|
+
input.name = "proposals_import[states][]";
|
|
88
|
+
input.value = state.token;
|
|
89
|
+
input.checked = selectedStates.includes(state.token);
|
|
90
|
+
label.appendChild(input);
|
|
91
|
+
label.appendChild(document.createTextNode(` ${state.title}`));
|
|
92
|
+
div.appendChild(label);
|
|
93
|
+
wrapper.appendChild(div);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
container.innerHTML = "";
|
|
97
|
+
container.appendChild(wrapper);
|
|
98
|
+
container.style.display = "block";
|
|
99
|
+
}).catch(() => {
|
|
100
|
+
container.innerHTML = "";
|
|
101
|
+
container.style.display = "none";
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
ImportProposalsController.targets = ["select", "container"]
|
|
107
|
+
ImportProposalsController.values = {
|
|
108
|
+
statesUrl: String,
|
|
109
|
+
selectedStates: { type: Array, default: [] }
|
|
110
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Application } from "@hotwired/stimulus"
|
|
2
|
+
import ImportProposalsController from "src/decidim/proposals/admin/controllers/import_proposals/controller.js"
|
|
3
|
+
|
|
4
|
+
const application = Application.start()
|
|
5
|
+
application.register("import-proposals", ImportProposalsController)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
|
2
|
+
<%= append_javascript_pack_tag "decidim_proposals_admin" %>
|
|
2
3
|
<div class="item_show__header">
|
|
3
4
|
<h1 class="item_show__header-title">
|
|
4
5
|
<%= t(".title") %>
|
|
@@ -7,25 +8,21 @@
|
|
|
7
8
|
|
|
8
9
|
<div class="item__edit item__edit-1col">
|
|
9
10
|
<div class="item__edit-form">
|
|
10
|
-
<%= decidim_form_for(@form, url: proposals_import_path, html: { class: "form form-defaults import_proposals" }) do |f| %>
|
|
11
|
+
<%= decidim_form_for(@form, url: proposals_import_path, local: true, html: { class: "form form-defaults import_proposals" }) do |f| %>
|
|
11
12
|
<% if @form.origin_components.any? %>
|
|
12
13
|
<div class="form__wrapper">
|
|
13
14
|
<div class="card pt-4">
|
|
14
|
-
<div class="card-section"
|
|
15
|
+
<div class="card-section"
|
|
16
|
+
data-controller="import-proposals"
|
|
17
|
+
data-import-proposals-states-url-value="<%= component_states_proposals_import_path %>">
|
|
15
18
|
<div class="row column">
|
|
16
|
-
<%= f.select :origin_component_id, @form.origin_components_collection, prompt: t(".select_component") %>
|
|
19
|
+
<%= f.select :origin_component_id, @form.origin_components_collection, { prompt: t(".select_component") }, { data: { import_proposals_target: "select", action: "change->import-proposals#onSelectChange" } } %>
|
|
17
20
|
</div>
|
|
18
21
|
<div class="row column">
|
|
19
22
|
<label class="ml-4"><%= t(".select_states") %></label>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<div>
|
|
24
|
-
<%= builder.label { builder.check_box + builder.text } %>
|
|
25
|
-
</div>
|
|
26
|
-
<% end %>
|
|
27
|
-
</div>
|
|
28
|
-
<% end %>
|
|
23
|
+
<div id="states-container"
|
|
24
|
+
data-import-proposals-target="container"
|
|
25
|
+
data-import-proposals-selected-states-value="<%= @form.states.to_json %>"></div>
|
|
29
26
|
</div>
|
|
30
27
|
<div class="row column">
|
|
31
28
|
<%= f.check_box :keep_authors %>
|
data/config/locales/ar.yml
CHANGED
|
@@ -180,6 +180,9 @@ ar:
|
|
|
180
180
|
admin:
|
|
181
181
|
proposal_note_created:
|
|
182
182
|
email_subject: ترك شخص ملاحظة على الاقتراح %{resource_title}.
|
|
183
|
+
coauthor_invited:
|
|
184
|
+
actions:
|
|
185
|
+
accept: قبول
|
|
183
186
|
collaborative_draft_access_accepted:
|
|
184
187
|
email_intro: 'تم قبول %{requester_name} لأن يكون مسجلاً كمساهم في المسودة التعاونية <a href="%{resource_url}">%{resource_title}</a>.'
|
|
185
188
|
email_outro: لقد تلقيت هذا الإشعار لأنك مساهم مع <a href="%{resource_url}">%{resource_title}</a>.
|
|
@@ -431,7 +434,7 @@ ar:
|
|
|
431
434
|
all: الكل
|
|
432
435
|
amendment: تعديلات
|
|
433
436
|
open: افتح
|
|
434
|
-
published:
|
|
437
|
+
published: تم نشره
|
|
435
438
|
related_to: متعلق ب
|
|
436
439
|
search: بحث
|
|
437
440
|
state: الحالة
|
|
@@ -489,7 +492,7 @@ ar:
|
|
|
489
492
|
withdraw: سحب المشروع
|
|
490
493
|
states:
|
|
491
494
|
open: افتح
|
|
492
|
-
published:
|
|
495
|
+
published: تم نشره
|
|
493
496
|
withdrawn: سحب
|
|
494
497
|
update:
|
|
495
498
|
error: حدثت مشكلة في حفظ المسودة التعاونية.
|
|
@@ -592,6 +595,13 @@ ar:
|
|
|
592
595
|
answer: إجابة
|
|
593
596
|
changes_at_title: تعديل على "%{title}"
|
|
594
597
|
estimated_cost: التكلفة التقديرية
|
|
598
|
+
hidden_likes_count:
|
|
599
|
+
zero: و %{count} المزيد من الناس
|
|
600
|
+
one: و %{count} شخص آخر
|
|
601
|
+
two: و %{count} المزيد من الناس
|
|
602
|
+
few: و %{count} المزيد من الناس
|
|
603
|
+
many: و %{count} المزيد من الناس
|
|
604
|
+
other: و %{count} المزيد من الناس
|
|
595
605
|
link_to_collaborative_draft_help_text: هذا الاقتراح هو نتيجة لمشروع تعاوني. مراجعة التاريخ
|
|
596
606
|
link_to_collaborative_draft_text: انظر المسودة التعاونية
|
|
597
607
|
link_to_promoted_emendation_help_text: هذا الاقتراح عبارة عن تعديل مروج له
|
data/config/locales/bg.yml
CHANGED
|
@@ -202,6 +202,9 @@ bg:
|
|
|
202
202
|
admin:
|
|
203
203
|
proposal_note_created:
|
|
204
204
|
email_subject: Някой е направил бележка в предложението %{resource_title}.
|
|
205
|
+
coauthor_invited:
|
|
206
|
+
actions:
|
|
207
|
+
accept: Приеми
|
|
205
208
|
collaborative_draft_access_accepted:
|
|
206
209
|
email_intro: '%{requester_name} получи достъп като сътрудник в съвместната чернова <a href="%{resource_url}">%{resource_title}</a>.'
|
|
207
210
|
email_outro: Получихте известие, защото сте сътрудник в <a href="%{resource_url}">%{resource_title}</a>.
|
|
@@ -689,6 +692,9 @@ bg:
|
|
|
689
692
|
answer: Отговор
|
|
690
693
|
changes_at_title: Изменение на „%{title}“
|
|
691
694
|
estimated_cost: Предвидени разходи
|
|
695
|
+
hidden_likes_count:
|
|
696
|
+
one: и още %{count}
|
|
697
|
+
other: и още %{count} души
|
|
692
698
|
link_to_collaborative_draft_help_text: Това предложение е резултат от съвместна чернова. Прегледайте хронологията
|
|
693
699
|
link_to_collaborative_draft_text: Вижте съвместната чернова
|
|
694
700
|
link_to_promoted_emendation_help_text: Това предложение е допринасяща поправка
|
data/config/locales/ca-IT.yml
CHANGED
|
@@ -370,9 +370,9 @@ ca-IT:
|
|
|
370
370
|
notification_title: La teva proposta <a href="%{resource_path}">%{resource_title}</a>ha canviat el seu estat a "%{state}".
|
|
371
371
|
follower:
|
|
372
372
|
email_intro: 'La proposta "%{resource_title}" ha canviat d''estat a "%{state}". Pots llegir la resposta en aquesta pàgina:'
|
|
373
|
-
email_outro: Has rebut aquesta notificació perquè estàs seguint "%{resource_title}". Pots deixar de seguir-ho des de l'enllaç anterior.
|
|
373
|
+
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{resource_title}". Pots deixar de seguir-ho des de l'enllaç anterior.
|
|
374
374
|
email_subject: Una proposta que segueixes ha canviat el seu estat (%{state})
|
|
375
|
-
notification_title: La
|
|
375
|
+
notification_title: La proposta <a href="%{resource_path}">%{resource_title}</a> ha canviat el seu estat a "%{state}".
|
|
376
376
|
proposal_update_taxonomies:
|
|
377
377
|
email_intro: 'Una administradora ha actualitzat les taxonomies de la teva proposta "%{resource_title}", fes-hi una ullada:'
|
|
378
378
|
email_outro: Has rebut aquesta notificació perquè ets l'autora de la proposta.
|
|
@@ -690,7 +690,7 @@ ca-IT:
|
|
|
690
690
|
success: El procés d'importació ha començat. T'avisarem quan hagi finalitzat.
|
|
691
691
|
new:
|
|
692
692
|
create: Importa propostes
|
|
693
|
-
no_components: No hi ha cap altre component de propostes en aquest espai
|
|
693
|
+
no_components: No hi ha cap altre component de propostes en aquest espai de participació des d'on importar-les.
|
|
694
694
|
select_component: Escull un component
|
|
695
695
|
select_states: Importa només les propostes amb aquests estats. Si no s'ha seleccionat cap estat, s'importaran totes les propostes.
|
|
696
696
|
title: Importar projectes des d'un altre component
|
|
@@ -771,11 +771,11 @@ ca-IT:
|
|
|
771
771
|
all: Tots
|
|
772
772
|
amendment: Esmenes
|
|
773
773
|
open: Obert
|
|
774
|
-
published:
|
|
774
|
+
published: Publicades
|
|
775
775
|
related_to: Relacionat amb
|
|
776
776
|
search: Cerca
|
|
777
777
|
state: Estat
|
|
778
|
-
withdrawn:
|
|
778
|
+
withdrawn: Retirada
|
|
779
779
|
filters_small_view:
|
|
780
780
|
close_modal: Tanca la finestra
|
|
781
781
|
filter: Filtre
|
|
@@ -805,7 +805,7 @@ ca-IT:
|
|
|
805
805
|
error: No s'ha pogut completar la teva sol·licitud, si us plau torna-ho a provar més tard.
|
|
806
806
|
success: La teva sol·licitud de contribució s'ha enviat correctament.
|
|
807
807
|
collaboration_requests:
|
|
808
|
-
accept_request:
|
|
808
|
+
accept_request: Acceptar
|
|
809
809
|
reject_request: Rebutja
|
|
810
810
|
title: Sol·licituds de col·laboració
|
|
811
811
|
rejected_request:
|
|
@@ -827,10 +827,10 @@ ca-IT:
|
|
|
827
827
|
withdraw: retira l'esborrany
|
|
828
828
|
states:
|
|
829
829
|
open: Obert
|
|
830
|
-
published:
|
|
831
|
-
withdrawn:
|
|
830
|
+
published: Publicades
|
|
831
|
+
withdrawn: Retirada
|
|
832
832
|
update:
|
|
833
|
-
error:
|
|
833
|
+
error: Hi ha hagut un error en desar l'esborrany col·laboratiu.
|
|
834
834
|
success: L'esborrany col·laboratiu s'ha actualitzat correctament.
|
|
835
835
|
wizard_aside:
|
|
836
836
|
back_from_collaborative_draft: Tornar a l'esborrany col·laboratiu
|
|
@@ -982,7 +982,7 @@ ca-IT:
|
|
|
982
982
|
edit_proposal: Editar
|
|
983
983
|
estimated_cost: Cost estimat
|
|
984
984
|
hidden_likes_count:
|
|
985
|
-
one: i %{count}
|
|
985
|
+
one: i %{count} persona més
|
|
986
986
|
other: i %{count} persones més
|
|
987
987
|
link_to_collaborative_draft_help_text: Aquesta proposta és el resultat d'un esborrany col·laboratiu. Revisa l'historial
|
|
988
988
|
link_to_collaborative_draft_text: Veure l'esborrany col·laboratiu
|
data/config/locales/ca.yml
CHANGED
|
@@ -370,9 +370,9 @@ ca:
|
|
|
370
370
|
notification_title: La teva proposta <a href="%{resource_path}">%{resource_title}</a>ha canviat el seu estat a "%{state}".
|
|
371
371
|
follower:
|
|
372
372
|
email_intro: 'La proposta "%{resource_title}" ha canviat d''estat a "%{state}". Pots llegir la resposta en aquesta pàgina:'
|
|
373
|
-
email_outro: Has rebut aquesta notificació perquè estàs seguint "%{resource_title}". Pots deixar de seguir-ho des de l'enllaç anterior.
|
|
373
|
+
email_outro: Has rebut aquesta notificació perquè estàs seguint l'espai "%{resource_title}". Pots deixar de seguir-ho des de l'enllaç anterior.
|
|
374
374
|
email_subject: Una proposta que segueixes ha canviat el seu estat (%{state})
|
|
375
|
-
notification_title: La
|
|
375
|
+
notification_title: La proposta <a href="%{resource_path}">%{resource_title}</a> ha canviat el seu estat a "%{state}".
|
|
376
376
|
proposal_update_taxonomies:
|
|
377
377
|
email_intro: 'Una administradora ha actualitzat les taxonomies de la teva proposta "%{resource_title}", fes-hi una ullada:'
|
|
378
378
|
email_outro: Has rebut aquesta notificació perquè ets l'autora de la proposta.
|
|
@@ -690,7 +690,7 @@ ca:
|
|
|
690
690
|
success: El procés d'importació ha començat. T'avisarem quan hagi finalitzat.
|
|
691
691
|
new:
|
|
692
692
|
create: Importa propostes
|
|
693
|
-
no_components: No hi ha cap altre component de propostes en aquest espai
|
|
693
|
+
no_components: No hi ha cap altre component de propostes en aquest espai de participació des d'on importar-les.
|
|
694
694
|
select_component: Escull un component
|
|
695
695
|
select_states: Importa només les propostes amb aquests estats. Si no s'ha seleccionat cap estat, s'importaran totes les propostes.
|
|
696
696
|
title: Importar projectes des d'un altre component
|
|
@@ -771,11 +771,11 @@ ca:
|
|
|
771
771
|
all: Tots
|
|
772
772
|
amendment: Esmenes
|
|
773
773
|
open: Obert
|
|
774
|
-
published:
|
|
774
|
+
published: Publicades
|
|
775
775
|
related_to: Relacionat amb
|
|
776
776
|
search: Cerca
|
|
777
777
|
state: Estat
|
|
778
|
-
withdrawn:
|
|
778
|
+
withdrawn: Retirada
|
|
779
779
|
filters_small_view:
|
|
780
780
|
close_modal: Tanca la finestra
|
|
781
781
|
filter: Filtre
|
|
@@ -805,7 +805,7 @@ ca:
|
|
|
805
805
|
error: No s'ha pogut completar la teva sol·licitud, si us plau torna-ho a provar més tard.
|
|
806
806
|
success: La teva sol·licitud de contribució s'ha enviat correctament.
|
|
807
807
|
collaboration_requests:
|
|
808
|
-
accept_request:
|
|
808
|
+
accept_request: Acceptar
|
|
809
809
|
reject_request: Rebutja
|
|
810
810
|
title: Sol·licituds de col·laboració
|
|
811
811
|
rejected_request:
|
|
@@ -827,10 +827,10 @@ ca:
|
|
|
827
827
|
withdraw: retira l'esborrany
|
|
828
828
|
states:
|
|
829
829
|
open: Obert
|
|
830
|
-
published:
|
|
831
|
-
withdrawn:
|
|
830
|
+
published: Publicades
|
|
831
|
+
withdrawn: Retirada
|
|
832
832
|
update:
|
|
833
|
-
error:
|
|
833
|
+
error: Hi ha hagut un error en desar l'esborrany col·laboratiu.
|
|
834
834
|
success: L'esborrany col·laboratiu s'ha actualitzat correctament.
|
|
835
835
|
wizard_aside:
|
|
836
836
|
back_from_collaborative_draft: Tornar a l'esborrany col·laboratiu
|
|
@@ -982,7 +982,7 @@ ca:
|
|
|
982
982
|
edit_proposal: Editar
|
|
983
983
|
estimated_cost: Cost estimat
|
|
984
984
|
hidden_likes_count:
|
|
985
|
-
one: i %{count}
|
|
985
|
+
one: i %{count} persona més
|
|
986
986
|
other: i %{count} persones més
|
|
987
987
|
link_to_collaborative_draft_help_text: Aquesta proposta és el resultat d'un esborrany col·laboratiu. Revisa l'historial
|
|
988
988
|
link_to_collaborative_draft_text: Veure l'esborrany col·laboratiu
|
data/config/locales/cs.yml
CHANGED
|
@@ -94,6 +94,7 @@ cs:
|
|
|
94
94
|
decidim:
|
|
95
95
|
proposals:
|
|
96
96
|
proposal:
|
|
97
|
+
budget_text: Návrh <span class="resource-link">%{link} byl vytvořen</span>
|
|
97
98
|
import_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
|
|
98
99
|
merge_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
|
|
99
100
|
merge_to_proposal_text: 'Tento návrh byl vytvořen: %{link}'
|
|
@@ -807,7 +808,7 @@ cs:
|
|
|
807
808
|
error: Vaše žádost nebyla dokončena, zkuste to znovu později.
|
|
808
809
|
success: Vaše žádost o spolupráci byla úspěšně odeslána.
|
|
809
810
|
collaboration_requests:
|
|
810
|
-
accept_request:
|
|
811
|
+
accept_request: Přijmout
|
|
811
812
|
reject_request: Odmítnout
|
|
812
813
|
title: Žádosti o spolupráci
|
|
813
814
|
rejected_request:
|
|
@@ -834,7 +835,7 @@ cs:
|
|
|
834
835
|
published: Publikováno
|
|
835
836
|
withdrawn: Staženo
|
|
836
837
|
update:
|
|
837
|
-
error: Při ukládání
|
|
838
|
+
error: Při ukládání konceptu návrhu došlo k chybám.
|
|
838
839
|
success: Protokol o spolupráci byl úspěšně aktualizován.
|
|
839
840
|
wizard_aside:
|
|
840
841
|
back_from_collaborative_draft: Zpět na koncepty spolupráce
|
|
@@ -988,6 +989,11 @@ cs:
|
|
|
988
989
|
changes_at_title: Pozměňovací návrh k "%{title}"
|
|
989
990
|
edit_proposal: Upravit
|
|
990
991
|
estimated_cost: Odhadované náklady
|
|
992
|
+
hidden_likes_count:
|
|
993
|
+
one: a %{count} další osoba
|
|
994
|
+
few: a %{count} dalších lidí
|
|
995
|
+
many: a %{count} dalších lidí
|
|
996
|
+
other: a %{count} dalších lidí
|
|
991
997
|
link_to_collaborative_draft_help_text: Tento návrh je výsledkem společného návrhu. Zkontrolujte historii
|
|
992
998
|
link_to_collaborative_draft_text: Viz schéma spolupráce
|
|
993
999
|
link_to_promoted_emendation_help_text: Tento návrh je podporované vylepšení
|
data/config/locales/de.yml
CHANGED
|
@@ -767,8 +767,8 @@ de:
|
|
|
767
767
|
amendment: Änderungsanträge
|
|
768
768
|
open: Offen
|
|
769
769
|
published: Veröffentlicht
|
|
770
|
-
related_to:
|
|
771
|
-
search:
|
|
770
|
+
related_to: Bezüglich
|
|
771
|
+
search: Suche
|
|
772
772
|
state: Status
|
|
773
773
|
withdrawn: Zurückgezogen
|
|
774
774
|
filters_small_view:
|
|
@@ -825,7 +825,7 @@ de:
|
|
|
825
825
|
published: Veröffentlicht
|
|
826
826
|
withdrawn: Zurückgezogen
|
|
827
827
|
update:
|
|
828
|
-
error: Beim Speichern des
|
|
828
|
+
error: Beim Speichern des Vorschlagsentwurfs ist ein Fehler aufgetreten.
|
|
829
829
|
success: Collaborative Draft wurde erfolgreich aktualisiert.
|
|
830
830
|
wizard_aside:
|
|
831
831
|
back_from_collaborative_draft: Zurück zu gemeinschaftlichen Entwürfen
|
data/config/locales/el.yml
CHANGED
|
@@ -169,6 +169,9 @@ el:
|
|
|
169
169
|
admin:
|
|
170
170
|
proposal_note_created:
|
|
171
171
|
email_subject: Κάποιος άφησε μια σημείωση στην πρόταση %{resource_title}.
|
|
172
|
+
coauthor_invited:
|
|
173
|
+
actions:
|
|
174
|
+
accept: Αποδοχή
|
|
172
175
|
collaborative_draft_access_accepted:
|
|
173
176
|
email_intro: '%{requester_name} έχει γίνει δεκτή η πρόσβαση ως συνεισφέρων του <a href="%{resource_url}">%{resource_title}</a> συνεργατικού σχεδίου.'
|
|
174
177
|
email_outro: Έχετε λάβει αυτήν την ειδοποίηση επειδή είστε συνεργάτης του <a href="%{resource_url}">%{resource_title}</a>.
|
|
@@ -582,6 +585,9 @@ el:
|
|
|
582
585
|
answer: Απάντηση
|
|
583
586
|
changes_at_title: Τροποποίηση σε «%{title}»
|
|
584
587
|
estimated_cost: Εκτιμώμενο κόστος
|
|
588
|
+
hidden_likes_count:
|
|
589
|
+
one: και %{count} ακόμη άτομο
|
|
590
|
+
other: και %{count} ακόμη άτομα
|
|
585
591
|
link_to_collaborative_draft_help_text: Αυτή η πρόταση είναι το αποτέλεσμα ενός προσχεδίου συνεργασίας. Δείτε το ιστορικό
|
|
586
592
|
link_to_collaborative_draft_text: Δείτε το προσχέδιο συνεργασίας
|
|
587
593
|
link_to_promoted_emendation_help_text: Αυτή η πρόταση είναι μια αναβαθμισμένη διόρθωση
|
data/config/locales/es-MX.yml
CHANGED
|
@@ -191,7 +191,7 @@ es-MX:
|
|
|
191
191
|
random: Aleatorio
|
|
192
192
|
recent: Recientes
|
|
193
193
|
with_more_authors: Con más autoras
|
|
194
|
-
define_taxonomy_filters: Por favor, define algunos filtros para este espacio
|
|
194
|
+
define_taxonomy_filters: Por favor, define algunos filtros para este espacio de participación antes de utilizar esta configuración.
|
|
195
195
|
edit_time: Las autoras pueden editar las propuestas antes de que pase este tiempo
|
|
196
196
|
edit_time_units:
|
|
197
197
|
days: Días
|
|
@@ -762,20 +762,20 @@ es-MX:
|
|
|
762
762
|
success: Borrador colaborativo creado con éxito.
|
|
763
763
|
edit:
|
|
764
764
|
attachment_legend: Añadir un documento o una imagen
|
|
765
|
-
back:
|
|
765
|
+
back: Atrás
|
|
766
766
|
send: Enviar
|
|
767
767
|
title: Editar borrador colaborativo
|
|
768
768
|
empty: Todavía no hay borradores colaborativos
|
|
769
769
|
empty_filters: No hay ningún borrador colaborativo con este criterio
|
|
770
770
|
filters:
|
|
771
|
-
all:
|
|
771
|
+
all: Todos
|
|
772
772
|
amendment: Enmiendas
|
|
773
773
|
open: Abierto
|
|
774
|
-
published:
|
|
775
|
-
related_to:
|
|
774
|
+
published: Publicadas
|
|
775
|
+
related_to: Relacionadas con
|
|
776
776
|
search: Buscar
|
|
777
777
|
state: Estado
|
|
778
|
-
withdrawn:
|
|
778
|
+
withdrawn: Retirada
|
|
779
779
|
filters_small_view:
|
|
780
780
|
close_modal: Cerrar modal
|
|
781
781
|
filter: Filtrar
|
|
@@ -827,10 +827,10 @@ es-MX:
|
|
|
827
827
|
withdraw: retirar el borrador
|
|
828
828
|
states:
|
|
829
829
|
open: Abierto
|
|
830
|
-
published:
|
|
831
|
-
withdrawn:
|
|
830
|
+
published: Publicadas
|
|
831
|
+
withdrawn: Retirada
|
|
832
832
|
update:
|
|
833
|
-
error: Ha habido errores al guardar el borrador
|
|
833
|
+
error: Ha habido errores al guardar el borrador de la propuesta.
|
|
834
834
|
success: Borrador colaborativo actualizado con éxito.
|
|
835
835
|
wizard_aside:
|
|
836
836
|
back_from_collaborative_draft: Volver al borrador colaborativo
|