decidim-proposals 0.27.5 → 0.27.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +1 -1
- data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +2 -2
- data/app/cells/decidim/proposals/proposal_tags/show.erb +2 -2
- data/app/controllers/decidim/proposals/widgets_controller.rb +11 -1
- data/app/models/decidim/proposals/proposal.rb +2 -14
- data/app/models/decidim/proposals/valuation_assignment.rb +2 -1
- data/app/packs/src/decidim/proposals/admin/proposals.js +7 -0
- data/app/permissions/decidim/proposals/permissions.rb +9 -0
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/show.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +2 -1
- data/app/views/decidim/proposals/proposals/show.html.erb +3 -1
- data/config/locales/ar.yml +1 -4
- data/config/locales/bg.yml +156 -2
- data/config/locales/ca.yml +28 -26
- data/config/locales/cs.yml +5 -3
- data/config/locales/de.yml +8 -6
- data/config/locales/el.yml +0 -3
- data/config/locales/en.yml +2 -0
- data/config/locales/es-MX.yml +7 -5
- data/config/locales/es-PY.yml +8 -6
- data/config/locales/es.yml +18 -16
- data/config/locales/eu.yml +5 -3
- data/config/locales/fi-plain.yml +7 -5
- data/config/locales/fi.yml +6 -4
- data/config/locales/fr-CA.yml +8 -6
- data/config/locales/fr.yml +8 -6
- data/config/locales/ga-IE.yml +7 -0
- data/config/locales/gl.yml +1 -3
- data/config/locales/he-IL.yml +1 -0
- data/config/locales/hu.yml +15 -9
- data/config/locales/id-ID.yml +1 -3
- data/config/locales/is-IS.yml +4 -3
- data/config/locales/it.yml +3 -5
- data/config/locales/ja.yml +19 -17
- data/config/locales/lt.yml +0 -3
- data/config/locales/lv.yml +1 -3
- data/config/locales/nl.yml +4 -6
- data/config/locales/no.yml +1 -3
- data/config/locales/pl.yml +29 -4
- data/config/locales/pt-BR.yml +34 -4
- data/config/locales/pt.yml +1 -3
- data/config/locales/ro-RO.yml +1 -3
- data/config/locales/ru.yml +6 -3
- data/config/locales/sk.yml +5 -7
- data/config/locales/sv.yml +3 -6
- data/config/locales/tr-TR.yml +7 -6
- data/config/locales/uk.yml +6 -3
- data/config/locales/zh-CN.yml +1 -3
- data/config/locales/zh-TW.yml +0 -3
- data/db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb +16 -0
- data/decidim-proposals.gemspec +40 -0
- data/lib/decidim/proposals/proposal_serializer.rb +1 -0
- data/lib/decidim/proposals/test/factories.rb +63 -56
- data/lib/decidim/proposals/valuatable.rb +2 -1
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +29 -27
- data/config/environment.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85856f36076b1726e3bfe1f049f46968909f1acd6ded28784a020abe858dddbd
|
4
|
+
data.tar.gz: 9329f0d81040190473850146061ebcf3778c669cec4b22a3d1778cc01b568b03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2aff02ae9dfbf6e0f0d87014e79344a4ec1e995af11a4d51196702506de9cdc2c356276a096a0b25fbe96060945d56cc56a6e1dc3e06803f490d7267b5b331cf
|
7
|
+
data.tar.gz: 1dd27d121005ba63c91f56db70f540f265ef3a4579e0de837a5307f2acda20a54281d0c67621deb0e0465e9c87c20a2daf901f85a4fd7e2b92ef3ebcb56f674e
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<section class="section row collapse highlighted_proposals">
|
2
2
|
<h3 class="section-heading">
|
3
|
-
<%=
|
3
|
+
<%= decidim_escape_translated(model.name) %> <a href="<%= main_component_path(model) %>" class="text-small"><%= t("decidim.participatory_spaces.highlighted_proposals.see_all", count: proposals_count) %></a>
|
4
4
|
</h3>
|
5
5
|
|
6
6
|
<%= cell(
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<%= link_to resource_amendments_path, class: "column medium-4 button light secondary" do %>
|
7
7
|
<%= visible_emendations.count %>
|
8
8
|
<% end %>
|
9
|
-
<%=
|
9
|
+
<%= action_authorized_link_to :amend, amend_resource_path, resource: model, data: { "redirect_url" => amend_resource_path }, class: "column button hollow secondary button--sc", disabled: amend_button_disabled? do %>
|
10
10
|
<%= t("amend", scope: "decidim.proposals.participatory_text_proposal.buttons") %>
|
11
11
|
<% end %>
|
12
12
|
</div>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<%= link_to resource_comments_path, class: "column medium-4 button light secondary" do %>
|
24
24
|
<%= icon "comment-square", class: "icon--small", aria_label: t("comments", scope: "decidim.proposals.participatory_text_proposal.buttons"), role: "img" %> <%= model.comments_count %>
|
25
25
|
<% end %>
|
26
|
-
<%=
|
26
|
+
<%= action_authorized_link_to :comment, resource_comments_path, resource: model, class: "column button hollow secondary button--sc" do %>
|
27
27
|
<%= t("comment", scope: "decidim.proposals.participatory_text_proposal.buttons") %>
|
28
28
|
<% end %>
|
29
29
|
<% end %>
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<% if category.present? %>
|
4
4
|
<li>
|
5
5
|
<%= link_to resource_locator(model).index(filter: { with_any_category: [category.id.to_s] }), title: t("decidim.tags.filter_results_for_category", resource: translated_attribute(category.name)) do %>
|
6
|
-
<span class="show-for-sr"><%= t "decidim.tags.filter_results_for_category", resource: translated_attribute(category.name) %></span>
|
7
|
-
<span aria-hidden="true"><%= translated_attribute(category.name) %></span>
|
6
|
+
<span class="show-for-sr"><%= t "decidim.tags.filter_results_for_category", resource: decidim_html_escape(translated_attribute(category.name)) %></span>
|
7
|
+
<span aria-hidden="true"><%= decidim_html_escape(translated_attribute(category.name)) %></span>
|
8
8
|
<% end %>
|
9
9
|
<% if previous_category.present? && show_previous_category? %>
|
10
10
|
|
@@ -5,15 +5,25 @@ module Decidim
|
|
5
5
|
class WidgetsController < Decidim::WidgetsController
|
6
6
|
helper Proposals::ApplicationHelper
|
7
7
|
|
8
|
+
def show
|
9
|
+
enforce_permission_to :embed, :proposal, proposal: model if model
|
10
|
+
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
8
14
|
private
|
9
15
|
|
10
16
|
def model
|
11
|
-
@model ||= Proposal.where(component:
|
17
|
+
@model ||= Proposal.not_hidden.except_withdrawn.where(component: current_component).find(params[:proposal_id])
|
12
18
|
end
|
13
19
|
|
14
20
|
def iframe_url
|
15
21
|
@iframe_url ||= proposal_widget_url(model)
|
16
22
|
end
|
23
|
+
|
24
|
+
def permission_class_chain
|
25
|
+
[Decidim::Proposals::Permissions]
|
26
|
+
end
|
17
27
|
end
|
18
28
|
end
|
19
29
|
end
|
@@ -96,11 +96,11 @@ module Decidim
|
|
96
96
|
}
|
97
97
|
|
98
98
|
scope :sort_by_valuation_assignments_count_asc, lambda {
|
99
|
-
order(
|
99
|
+
order(valuation_assignments_count: :asc)
|
100
100
|
}
|
101
101
|
|
102
102
|
scope :sort_by_valuation_assignments_count_desc, lambda {
|
103
|
-
order(
|
103
|
+
order(valuation_assignments_count: :desc)
|
104
104
|
}
|
105
105
|
|
106
106
|
scope_search_multi :with_any_state, [:accepted, :rejected, :evaluating, :state_not_published]
|
@@ -333,18 +333,6 @@ module Decidim
|
|
333
333
|
ProposalSearch.new(self, params, options)
|
334
334
|
end
|
335
335
|
|
336
|
-
# Defines the base query so that ransack can actually sort by this value
|
337
|
-
def self.sort_by_valuation_assignments_count_nulls_last_query
|
338
|
-
<<-SQL.squish
|
339
|
-
(
|
340
|
-
SELECT COUNT(decidim_proposals_valuation_assignments.id)
|
341
|
-
FROM decidim_proposals_valuation_assignments
|
342
|
-
WHERE decidim_proposals_valuation_assignments.decidim_proposal_id = decidim_proposals_proposals.id
|
343
|
-
GROUP BY decidim_proposals_valuation_assignments.decidim_proposal_id
|
344
|
-
)
|
345
|
-
SQL
|
346
|
-
end
|
347
|
-
|
348
336
|
# method to filter by assigned valuator role ID
|
349
337
|
def self.valuator_role_ids_has(value)
|
350
338
|
query = <<-SQL.squish
|
@@ -9,7 +9,8 @@ module Decidim
|
|
9
9
|
include Decidim::Traceable
|
10
10
|
include Decidim::Loggable
|
11
11
|
|
12
|
-
belongs_to :proposal, foreign_key: "decidim_proposal_id", class_name: "Decidim::Proposals::Proposal"
|
12
|
+
belongs_to :proposal, foreign_key: "decidim_proposal_id", class_name: "Decidim::Proposals::Proposal",
|
13
|
+
counter_cache: true
|
13
14
|
belongs_to :valuator_role, polymorphic: true
|
14
15
|
|
15
16
|
def self.log_presenter_class_for(_log)
|
@@ -47,6 +47,12 @@ $(() => {
|
|
47
47
|
}
|
48
48
|
}
|
49
49
|
|
50
|
+
const resetForms = function() {
|
51
|
+
$("#js-bulk-actions-dropdown button").each(function() {
|
52
|
+
$(`#js-form-${$(this).data("action")}`)[0].reset();
|
53
|
+
})
|
54
|
+
}
|
55
|
+
|
50
56
|
const showOtherActionsButtons = function() {
|
51
57
|
$("#js-other-actions-wrapper").removeClass("hide");
|
52
58
|
}
|
@@ -68,6 +74,7 @@ $(() => {
|
|
68
74
|
window.showOtherActionsButtons = showOtherActionsButtons;
|
69
75
|
window.hideOtherActionsButtons = hideOtherActionsButtons;
|
70
76
|
window.hideBulkActionForms = hideBulkActionForms;
|
77
|
+
window.resetForms = resetForms;
|
71
78
|
|
72
79
|
if ($(".js-bulk-action-form").length) {
|
73
80
|
hideBulkActionForms();
|
@@ -4,6 +4,7 @@ module Decidim
|
|
4
4
|
module Proposals
|
5
5
|
class Permissions < Decidim::DefaultPermissions
|
6
6
|
def permissions
|
7
|
+
allow_embed_proposal?
|
7
8
|
return permission_action unless user
|
8
9
|
|
9
10
|
# Delegate the admin permission checks to the admin permissions class
|
@@ -47,6 +48,14 @@ module Decidim
|
|
47
48
|
@proposal ||= context.fetch(:proposal, nil) || context.fetch(:resource, nil)
|
48
49
|
end
|
49
50
|
|
51
|
+
# As this is a public action, we need to run this before other checks
|
52
|
+
def allow_embed_proposal?
|
53
|
+
return unless permission_action.action == :embed && permission_action.subject == :proposal && proposal
|
54
|
+
return disallow! if proposal.withdrawn?
|
55
|
+
|
56
|
+
allow!
|
57
|
+
end
|
58
|
+
|
50
59
|
def voting_enabled?
|
51
60
|
return unless current_settings
|
52
61
|
|
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
<div class="row column" id="proposal_meeting">
|
46
46
|
<%= form.select :meeting_id,
|
47
|
-
options_for_select(@form.meetings&.map { |meeting| [present(meeting).title, meeting.id] }, selected: meetings_as_authors_selected ),
|
47
|
+
options_for_select(@form.meetings&.map { |meeting| [present(meeting).title(html_escape: true), meeting.id] }, selected: meetings_as_authors_selected ),
|
48
48
|
{ include_blank: true, label: t(".select_a_meeting") },
|
49
49
|
{ multiple: false, class: "chosen-select" } %>
|
50
50
|
</div>
|
@@ -107,7 +107,7 @@
|
|
107
107
|
<% proposal_meetings.each do |meeting| %>
|
108
108
|
<% presented_meeting = present(meeting) %>
|
109
109
|
<li>
|
110
|
-
<%= link_to
|
110
|
+
<%= link_to decidim_escape_translated(meeting.title).html_safe, presented_meeting.profile_path %>
|
111
111
|
</li>
|
112
112
|
<% end %>
|
113
113
|
</ul>
|
@@ -129,7 +129,9 @@ extra_admin_link(
|
|
129
129
|
<%= resource_version(proposal_presenter, versions_path: proposal_versions_path(@proposal)) %>
|
130
130
|
<%= cell("decidim/fingerprint", @proposal) %>
|
131
131
|
<%= render partial: "decidim/shared/share_modal", locals: { resource: @proposal } %>
|
132
|
-
|
132
|
+
<% if allowed_to? :embed, :proposal, proposal: @proposal %>
|
133
|
+
<%= embed_modal_for proposal_widget_url(@proposal, format: :js) %>
|
134
|
+
<% end %>
|
133
135
|
<%= cell "decidim/proposals/proposal_link_to_collaborative_draft", @proposal %>
|
134
136
|
<%= cell "decidim/proposals/proposal_link_to_rejected_emendation", @proposal %>
|
135
137
|
</div>
|
data/config/locales/ar.yml
CHANGED
@@ -291,7 +291,6 @@ ar:
|
|
291
291
|
notification_title: تم قبول اقتراحك <a href="%{resource_path}">%{resource_title}</a>.
|
292
292
|
follower:
|
293
293
|
email_intro: 'تم قبول الاقتراح "%{resource_title}". يمكنك قراءة الإجابة على هذه الصفحة:'
|
294
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{resource_title}. يمكنك إلغاء المتابعة على الرابط السابق.
|
295
294
|
email_subject: تم قبول اقتراح تتابعه
|
296
295
|
notification_title: لقد تم قبول المُقتَرح <a href="%{resource_path}">%{resource_title}</a>.
|
297
296
|
proposal_evaluating:
|
@@ -302,7 +301,6 @@ ar:
|
|
302
301
|
notification_title: يتم تقييم الاقتراح الخاص بك <a href="%{resource_path}">%{resource_title}</a>.
|
303
302
|
follower:
|
304
303
|
email_intro: 'الاقتراح "%{resource_title}" قيد التقييم حاليا. يمكنك التحقق من وجود إجابة على هذه الصفحة:'
|
305
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{resource_title}. يمكنك إلغاء المتابعة على الرابط السابق.
|
306
304
|
email_subject: واحد من الاقتراحات التي تتبعها قيد التقييم الآن
|
307
305
|
notification_title: الاقتراح <a href="%{resource_path}">%{resource_title}</a> قيد التقييم الآن.
|
308
306
|
proposal_mentioned:
|
@@ -329,7 +327,6 @@ ar:
|
|
329
327
|
notification_title: تم رفض اقتراحك <a href="%{resource_path}">%{resource_title}</a>.
|
330
328
|
follower:
|
331
329
|
email_intro: 'تم رفض الاقتراح %{resource_title}. يمكنك قراءة الإجابة على ذلك على هذه الصفحة:'
|
332
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{resource_title}. يمكنك إلغاء المتابعة على الرابط السابق.
|
333
330
|
email_subject: واحد من الاقتراحات التي تتبعها تم رفضها
|
334
331
|
notification_title: تم رفض الاقتراح <a href="%{resource_path}">%{resource_title}</a>.
|
335
332
|
proposal_update_category:
|
@@ -496,7 +493,7 @@ ar:
|
|
496
493
|
accepted: وافقت
|
497
494
|
answer_proposal: إجابة
|
498
495
|
evaluating: تقييم
|
499
|
-
not_answered:
|
496
|
+
not_answered: بلا جواب
|
500
497
|
rejected: مرفوض
|
501
498
|
title: الإجابة على الاقتراح %{title}
|
502
499
|
proposal_notes:
|
data/config/locales/bg.yml
CHANGED
@@ -11,6 +11,8 @@ bg:
|
|
11
11
|
state: Състояние
|
12
12
|
title: Заглавие
|
13
13
|
user_group_id: Създай съвместна чернова като
|
14
|
+
import_participatory_text:
|
15
|
+
document: Текстов документ за участие
|
14
16
|
proposal:
|
15
17
|
address: Адрес
|
16
18
|
answer: Отговор
|
@@ -141,6 +143,7 @@ bg:
|
|
141
143
|
endorsements_enabled: Одобряване разрешено
|
142
144
|
proposal_answering_enabled: Отговора на предложение е разрешен
|
143
145
|
publish_answers_immediately: Публикувай отговорите на предложения незабавно
|
146
|
+
publish_answers_immediately_help_html: 'Имайте предвид, че ако отговаряте на някои предложения, без това активиране, ще трябва да ги публикувате ръчно, като ги изберете и използвате действието за публикуване. За повече информация как работи това вижте <a href="https://docs.decidim.org/en/admin/components/proposals/answers#_publication" target="_blank">страницата с документация за отговорите на предложенията</a>.'
|
144
147
|
suggested_hashtags: Предлагай хаштаг на участниците когато създават предложения
|
145
148
|
votes_blocked: Поддържането блокирано
|
146
149
|
votes_enabled: Поддържането разрешено
|
@@ -189,7 +192,6 @@ bg:
|
|
189
192
|
notification_title: Вашето предложение <a href="%{resource_path}">%{resource_title}</a> е одобрено.
|
190
193
|
follower:
|
191
194
|
email_intro: 'Предложението "%{resource_title}" е одобрено. Прочетете отговора на страницата:'
|
192
|
-
email_outro: Получавате това известие, защото следвате "%{resource_title}". Може да премахнете следването чрез предната връзка.
|
193
195
|
email_subject: Предложение, което следвате е одобрено
|
194
196
|
notification_title: Предложението <a href="%{resource_path}">%{resource_title}</a> беше одобрено.
|
195
197
|
proposal_evaluating:
|
@@ -200,7 +202,6 @@ bg:
|
|
200
202
|
notification_title: Вашето предложение <a href="%{resource_path}">%{resource_title}</a> се разглежда.
|
201
203
|
follower:
|
202
204
|
email_intro: 'Предложението "%{resource_title}" се разглежда в момента. Прочетете отговора на страницата:'
|
203
|
-
email_outro: Получавате това известие, защото следвате "%{resource_title}". Може да премахнете следването чрез предната връзка.
|
204
205
|
email_subject: Предложение, което следвате се разглежда
|
205
206
|
notification_title: Предложението <a href="%{resource_path}">%{resource_title}</a> се разглежда.
|
206
207
|
proposal_mentioned:
|
@@ -216,20 +217,173 @@ bg:
|
|
216
217
|
proposal_published_for_space:
|
217
218
|
email_intro: Предложението "%{resource_title}" беше добавено в "%{participatory_space_title}", което следвате.
|
218
219
|
email_outro: Получавате това известие, защото следвате "%{participatory_space_title}". Може да прекратите известията чрез предната връзка.
|
220
|
+
notification_title: Предложениетоl <a href="%{resource_path}">%{resource_title}</a> е добавено към %{participatory_space_title} от %{author}
|
221
|
+
notification_title_official: Официалното предложение <a href="%{resource_path}">%{resource_title}</a> е добавено към %{participatory_space_title}
|
222
|
+
proposal_rejected:
|
223
|
+
affected_user:
|
224
|
+
email_intro: 'Вашето предложение "%{resource_title}" беше отхвърлено. Можете да прочетете отговора на тази страница:'
|
225
|
+
email_outro: Получавате това известие, защото сте автор на %{resource_title}".
|
226
|
+
email_subject: Вашето предложение беше отхвърлено
|
227
|
+
notification_title: Вашето предложение <a href="%{resource_path}">%{resource_title}</a> беше отхвърлено.
|
228
|
+
follower:
|
229
|
+
email_intro: 'Предложението „%{resource_title}“ беше отхвърлено. Можете да прочетете отговора на тази страница:'
|
230
|
+
email_subject: Предложение, което следвате, беше отхвърлено
|
231
|
+
notification_title: Предложението <a href="%{resource_path}">%{resource_title}</a> беше отхвърлено.
|
232
|
+
gamification:
|
233
|
+
badges:
|
234
|
+
proposal_votes:
|
235
|
+
unearned_another: Този участник все още не е подкрепил нито едно предложение.
|
236
|
+
proposals:
|
237
|
+
unearned_another: Този участник все още не е създал нито едно предложение.
|
238
|
+
participatory_spaces:
|
239
|
+
highlighted_proposals:
|
240
|
+
see_all: Виж всички предложения (%{count})
|
219
241
|
proposals:
|
220
242
|
admin:
|
221
243
|
imports:
|
222
244
|
title:
|
245
|
+
answers: Импортиране на отговори на предложения
|
223
246
|
proposals: Копиране на предложения
|
247
|
+
participatory_texts:
|
248
|
+
new_import:
|
249
|
+
document_legend: 'Добавете документ с големина до 2 Mb, като всеки раздел до 3 нива надолу в структурата ще бъде анализиран в „Предложения“. Поддържаните формати са: %{valid_mime_types}'
|
250
|
+
publish:
|
251
|
+
invalid: Неуспешно публикуване на предложения
|
252
|
+
success: Всички предложения бяха публикувани
|
253
|
+
proposal_notes:
|
254
|
+
create:
|
255
|
+
error: Възникна проблем при създаването на тази бележка за предложението
|
256
|
+
success: Бележката за предложението беше създадена успешно
|
224
257
|
proposals:
|
258
|
+
answer:
|
259
|
+
invalid: Възникна проблем при отговарянето на това предложение
|
260
|
+
success: Отговорихте успешно на предложението
|
261
|
+
create:
|
262
|
+
invalid: Възникна проблем при създаването на това предложение
|
263
|
+
success: Предложението беше създадено успешно
|
264
|
+
publish_answers:
|
265
|
+
number_of_proposals: Отговорите на %{number} предложения ще бъдат публикувани.
|
266
|
+
select_a_proposal: Моля, изберете предложение
|
225
267
|
show:
|
268
|
+
authors: Автори
|
269
|
+
comments_negative_count: Против
|
270
|
+
comments_neutral_count: Неутрален
|
271
|
+
comments_positive_count: Подкрепям
|
272
|
+
created_at: Дата на създаване
|
273
|
+
endorsements_ranking: Класиране по препоръки
|
274
|
+
link: Връзка
|
226
275
|
proposals: Предложения
|
276
|
+
votes_ranking: Класиране по подкрепяния
|
277
|
+
update_category:
|
278
|
+
select_a_proposal: Моля, изберете предложение
|
279
|
+
update_scope:
|
280
|
+
select_a_proposal: Моля, изберете предложение
|
281
|
+
select_a_scope: Моля, изберете обхват
|
227
282
|
proposals_imports:
|
283
|
+
create:
|
284
|
+
invalid: Възникна проблем при импортирането на предложенията
|
285
|
+
success: "%{number} предложения бяха импортирани успешно"
|
228
286
|
new:
|
229
287
|
title: Копиране на предложения
|
288
|
+
valuation_assignments:
|
289
|
+
create:
|
290
|
+
invalid: Възникна грешка при възлагането на предложенията на оценител
|
291
|
+
success: Предложенията бяха възложени успешно на оценител
|
292
|
+
delete:
|
293
|
+
invalid: Възникна грешка при отмяна на възлагането на предложения към оценител
|
294
|
+
success: Оценителят бе успешно премахнат от предложенията
|
295
|
+
collaborative_drafts:
|
296
|
+
collaborative_draft:
|
297
|
+
publish:
|
298
|
+
irreversible_action_modal:
|
299
|
+
body: След като черновата бъде публикувана като предложение, тя повече няма да може да се редактира. За предложението няма да могат да се приемат нови автори или добавки.
|
300
|
+
view_collaborative_draft: Преглед на съвместна чернова
|
301
|
+
withdraw:
|
302
|
+
irreversible_action_modal:
|
303
|
+
body: След като черновата бъде затворена, тя повече няма да може да се редактира. За черновата няма да могат да се приемат нови автори или добавки.
|
304
|
+
count:
|
305
|
+
drafts_count:
|
306
|
+
one: "Съвместна чернова"
|
307
|
+
other: "Съвместни чернови"
|
308
|
+
requests:
|
309
|
+
accepted_request:
|
310
|
+
success: "@%{user} беше приет(а) успешно като сътрудник"
|
311
|
+
access_requested:
|
312
|
+
success: Вашата заявка за сътрудничество беше изпратена успешно
|
313
|
+
rejected_request:
|
314
|
+
success: "@%{user} беше отхвърлен(а) успешно като сътрудник"
|
315
|
+
show:
|
316
|
+
final_proposal: окончателно предложение
|
317
|
+
info-message: Това е <strong>съвместна чернова</strong> за предложение. Това означава, че можете да помогнете на авторите да оформят предложението си, като използвате раздела за коментари по-долу, или да го подобрите директно, като поискате редакторски достъп. След като авторите Ви предоставят достъп, ще можете да извършвате промени в черновата.
|
318
|
+
published_proposal: публикувано предложение
|
319
|
+
version_history: вижте хронологията на версиите за това предложение
|
320
|
+
wizard_aside:
|
321
|
+
info: Създавате <strong>съвместна чернова</strong>.
|
230
322
|
content_blocks:
|
231
323
|
highlighted_proposals:
|
232
324
|
proposals: Предложения
|
325
|
+
last_activity:
|
326
|
+
new_proposal_at_html: "<span>Ново предложение на адрес: %{link}</span>"
|
327
|
+
proposal_updated_at_html: "<span>Предложение беше актуализирано на: %{link}</span>"
|
328
|
+
models:
|
329
|
+
collaborative_draft:
|
330
|
+
fields:
|
331
|
+
authors: Автори
|
332
|
+
contributions: Добавки
|
333
|
+
new:
|
334
|
+
limit_reached: Не можете да създавате нови предложения, докато сте надхвърлили ограничението.
|
335
|
+
proposals:
|
336
|
+
count:
|
337
|
+
proposals_count:
|
338
|
+
one: "%{count} предложение"
|
339
|
+
other: "%{count} предложения"
|
340
|
+
edit:
|
341
|
+
add_image: Добавяне на изображение
|
342
|
+
edit_image: Редактиране на изображение
|
343
|
+
gallery_legend: "(Незадължително) Добавете изображение към картата с предложението"
|
344
|
+
index:
|
345
|
+
view_proposal: Преглед на предложението
|
346
|
+
linked_proposals:
|
347
|
+
proposal_votes:
|
348
|
+
one: поддръжка
|
349
|
+
other: поддръжки
|
350
|
+
participatory_texts:
|
351
|
+
view_index:
|
352
|
+
see_index: Вижте индекса
|
353
|
+
proposal:
|
354
|
+
creation_date: 'Създадено на:'
|
355
|
+
view_proposal: Преглед на предложението
|
356
|
+
proposals:
|
357
|
+
empty: Все още няма предложение
|
358
|
+
empty_filters: Няма предложение, което да отговаря на тези критерии
|
359
|
+
show:
|
360
|
+
back_to: Назад към
|
361
|
+
back_to_list: Назад към списъка
|
362
|
+
endorsements_list: Списък с одобрения
|
363
|
+
read_less: Виж по-малко
|
364
|
+
read_more: Прочетете повече
|
365
|
+
report: Отчет
|
366
|
+
tags:
|
367
|
+
changed_from: "(променено от предишното <u>%{previous_name}</u> от администратор)"
|
368
|
+
votes_count:
|
369
|
+
most_popular_proposal: Най-популярно предложение
|
370
|
+
need_more_votes: Има нужда от повече подкрепяния
|
371
|
+
voting_rules:
|
372
|
+
minimum_votes_per_user:
|
373
|
+
given_enough_votes: Предоставили сте достатъчно подкрепяния.
|
374
|
+
threshold_per_proposal:
|
375
|
+
description: За да бъдат валидирани, предложенията трябва да съберат %{limit} подкрепяния
|
376
|
+
vote_limit:
|
377
|
+
left: Оставащи
|
378
|
+
wizard_aside:
|
379
|
+
info: Вие създавате <strong>предложение</strong>.
|
380
|
+
wizard_steps:
|
381
|
+
see_steps: вижте стъпките
|
382
|
+
step_of: Стъпка %{current_step_num} от общо %{total_steps}
|
383
|
+
proposals_picker:
|
384
|
+
close: Затвори
|
385
|
+
more_proposals: Има още %{number} предложения. Прецизирайте търсенето си, за да ги намерите.
|
386
|
+
no_proposals: Няма предложения, които да съответстват на критериите Ви за търсене, или няма никакви предложения.
|
233
387
|
versions:
|
234
388
|
collaborative_drafts:
|
235
389
|
back_to_resource: Обратно към съвместната чернова
|