decidim-proposals 0.28.4 → 0.28.5
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 +11 -11
- data/app/cells/decidim/proposals/proposal_l_cell.rb +17 -18
- data/app/controllers/decidim/proposals/proposals_controller.rb +4 -8
- data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +3 -3
- data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
- data/app/helpers/decidim/proposals/map_helper.rb +1 -1
- data/app/models/decidim/proposals/proposal.rb +2 -6
- data/app/permissions/decidim/proposals/permissions.rb +4 -3
- data/app/services/decidim/proposals/collaborative_draft_diff_renderer.rb +22 -0
- data/app/services/decidim/proposals/diff_renderer.rb +2 -0
- data/app/services/decidim/proposals/proposal_builder.rb +1 -1
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/index.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/index.js.erb +12 -0
- data/app/views/decidim/proposals/proposals/show.html.erb +1 -1
- data/config/locales/ar.yml +1 -3
- data/config/locales/bg.yml +5 -7
- data/config/locales/bn-BD.yml +1 -0
- data/config/locales/bs-BA.yml +100 -0
- data/config/locales/ca.yml +5 -5
- data/config/locales/cs.yml +5 -5
- data/config/locales/de.yml +7 -7
- data/config/locales/el.yml +3 -5
- data/config/locales/es-MX.yml +3 -3
- data/config/locales/es-PY.yml +3 -3
- data/config/locales/es.yml +2 -2
- data/config/locales/eu.yml +92 -92
- data/config/locales/fi-plain.yml +3 -3
- data/config/locales/fi.yml +23 -23
- data/config/locales/fr-CA.yml +4 -6
- data/config/locales/fr.yml +3 -5
- data/config/locales/gl.yml +3 -6
- data/config/locales/he-IL.yml +4 -0
- data/config/locales/hu.yml +2 -3
- data/config/locales/id-ID.yml +9 -4
- data/config/locales/is-IS.yml +0 -7
- data/config/locales/it.yml +7 -8
- data/config/locales/ja.yml +3 -5
- data/config/locales/lt.yml +1 -3
- data/config/locales/lv.yml +5 -2
- data/config/locales/nl.yml +7 -5
- data/config/locales/no.yml +1 -4
- data/config/locales/pl.yml +2 -4
- data/config/locales/pt-BR.yml +3 -5
- data/config/locales/pt.yml +2 -4
- data/config/locales/ro-RO.yml +7 -9
- data/config/locales/ru.yml +0 -7
- data/config/locales/sk.yml +6 -3
- data/config/locales/sl.yml +0 -4
- data/config/locales/sv.yml +5 -5
- data/config/locales/tr-TR.yml +5 -7
- data/config/locales/uk.yml +1 -8
- data/config/locales/zh-CN.yml +1 -3
- data/config/locales/zh-TW.yml +3 -5
- data/decidim-proposals.gemspec +1 -1
- data/lib/decidim/api/proposal_type.rb +13 -0
- data/lib/decidim/api/proposals_type.rb +1 -3
- data/lib/decidim/proposals/proposal_serializer.rb +7 -4
- data/lib/decidim/proposals/test/factories.rb +6 -5
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +24 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a1d75f047cf77a3873fed131cdefcd187c822c14f9fedb1b4d5c5d8a006454f
|
4
|
+
data.tar.gz: 825829e1601b57bcb849fd9359190839dc2e8691d4c203377d0cb8d1865c43c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56fd50c16ab2a410a880b20896c64c3faf5be9e295223d3a6a42aa5045719057e5ad9effb1511ed953e52c89c270c037dc57100167566cba67e2b04f952e52ef
|
7
|
+
data.tar.gz: 46d01f111fab1ce7ba565990f435027a943dbb75f992f8873eb522739c9454a5a0c5ec3562daa20616ec03cf2ef4366d8ba82fd67dc51234464d262ff3cadbbf
|
@@ -11,21 +11,21 @@
|
|
11
11
|
<% end %>
|
12
12
|
</div>
|
13
13
|
|
14
|
+
<div class="flex items-center justify-between space-x-6">
|
15
|
+
<span class="content-block__span flex-shrink-0">
|
16
|
+
<%= t("decidim.participatory_spaces.highlighted_proposals.last") %>
|
17
|
+
</span>
|
18
|
+
<% if single_component? %>
|
19
|
+
<%= link_to decidim_proposals.new_proposal_path, class: "button button__xs md:button__lg button__secondary" do %>
|
20
|
+
<span class="text-center"><%= t("decidim.proposals.actions.new") %></span>
|
21
|
+
<%= icon "add-line" %>
|
22
|
+
<% end %>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
14
25
|
<div class="flex items-start justify-between">
|
15
26
|
<div class="grow space-y-6">
|
16
|
-
<span class="content-block__span">
|
17
|
-
<%= t("decidim.participatory_spaces.highlighted_proposals.last") %>
|
18
|
-
</span>
|
19
|
-
|
20
27
|
<% proposals_to_render.each do |p| %>
|
21
28
|
<%= card_for p, link_whole_card: true, title_tag: :h3, **options.slice(:show_space) %>
|
22
29
|
<% end %>
|
23
30
|
</div>
|
24
|
-
|
25
|
-
<% if single_component? %>
|
26
|
-
<%= link_to decidim_proposals.new_proposal_path, class: "button button__sm md:button__lg button__secondary" do %>
|
27
|
-
<span><%= t("decidim.proposals.actions.new") %></span>
|
28
|
-
<%= icon "add-line" %>
|
29
|
-
<% end %>
|
30
|
-
<% end %>
|
31
31
|
</div>
|
@@ -22,25 +22,24 @@ module Decidim
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def cache_hash
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
hash <<
|
36
|
-
hash <<
|
25
|
+
@cache_hash ||= begin
|
26
|
+
hash = []
|
27
|
+
hash << I18n.locale.to_s
|
28
|
+
hash << self.class.name.demodulize.underscore
|
29
|
+
hash << model.cache_key_with_version
|
30
|
+
hash << model.proposal_votes_count
|
31
|
+
hash << model.endorsements_count
|
32
|
+
hash << model.comments_count
|
33
|
+
hash << Digest::MD5.hexdigest(model.component.cache_key_with_version)
|
34
|
+
hash << Digest::MD5.hexdigest(resource_image_url) if resource_image_url
|
35
|
+
hash << render_space? ? 1 : 0
|
36
|
+
hash << model.follows_count
|
37
|
+
hash << Digest::MD5.hexdigest(model.authors.map(&:cache_key_with_version).to_s)
|
38
|
+
hash << (model.must_render_translation?(model.organization) ? 1 : 0) if model.respond_to?(:must_render_translation?)
|
39
|
+
hash << model.component.participatory_space.active_step.id if model.component.participatory_space.try(:active_step)
|
40
|
+
|
41
|
+
hash.join(Decidim.cache_key_separator)
|
37
42
|
end
|
38
|
-
hash << model.follows_count
|
39
|
-
hash << Digest::MD5.hexdigest(model.authors.map(&:cache_key_with_version).to_s)
|
40
|
-
hash << (model.must_render_translation?(model.organization) ? 1 : 0) if model.respond_to?(:must_render_translation?)
|
41
|
-
hash << model.component.participatory_space.active_step.id if model.component.participatory_space.try(:active_step)
|
42
|
-
|
43
|
-
hash.join(Decidim.cache_key_separator)
|
44
43
|
end
|
45
44
|
end
|
46
45
|
end
|
@@ -43,13 +43,11 @@ module Decidim
|
|
43
43
|
.order(position: :asc)
|
44
44
|
render "decidim/proposals/proposals/participatory_texts/participatory_text"
|
45
45
|
else
|
46
|
-
@
|
47
|
-
.result
|
48
|
-
.published
|
49
|
-
.not_hidden
|
46
|
+
@proposals = search.result
|
50
47
|
|
51
|
-
@proposals = @
|
52
|
-
@
|
48
|
+
@proposals = reorder(@proposals)
|
49
|
+
@proposals = paginate(@proposals)
|
50
|
+
@proposals = @proposals.includes(:component, :coauthorships, :attachments)
|
53
51
|
|
54
52
|
@voted_proposals = if current_user
|
55
53
|
ProposalVote.where(
|
@@ -59,8 +57,6 @@ module Decidim
|
|
59
57
|
else
|
60
58
|
[]
|
61
59
|
end
|
62
|
-
@proposals = reorder(@proposals)
|
63
|
-
@proposals = paginate(@proposals)
|
64
60
|
end
|
65
61
|
end
|
66
62
|
|
@@ -8,9 +8,9 @@ module Decidim
|
|
8
8
|
include TranslatableAttributes
|
9
9
|
mimic :proposal_answer
|
10
10
|
|
11
|
-
translatable_attribute :answer,
|
12
|
-
translatable_attribute :cost_report,
|
13
|
-
translatable_attribute :execution_period,
|
11
|
+
translatable_attribute :answer, Decidim::Attributes::RichText
|
12
|
+
translatable_attribute :cost_report, Decidim::Attributes::RichText
|
13
|
+
translatable_attribute :execution_period, Decidim::Attributes::RichText
|
14
14
|
attribute :cost, Float
|
15
15
|
attribute :internal_state, String
|
16
16
|
|
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
translatable_attribute :title, String do |field, _locale|
|
11
11
|
validates field, length: { in: 15..150 }, if: proc { |resource| resource.send(field).present? }
|
12
12
|
end
|
13
|
-
translatable_attribute :body,
|
13
|
+
translatable_attribute :body, Decidim::Attributes::RichText
|
14
14
|
|
15
15
|
validates :title, :body, translatable_presence: true
|
16
16
|
|
@@ -9,7 +9,7 @@ module Decidim
|
|
9
9
|
#
|
10
10
|
# geocoded_proposals - A collection of geocoded proposals
|
11
11
|
def proposals_data_for_map(geocoded_proposals)
|
12
|
-
geocoded_proposals.map do |proposal|
|
12
|
+
geocoded_proposals.select(&:geocoded_and_valid?).map do |proposal|
|
13
13
|
proposal_data_for_map(proposal)
|
14
14
|
end
|
15
15
|
end
|
@@ -347,12 +347,8 @@ module Decidim
|
|
347
347
|
where(query, value:)
|
348
348
|
end
|
349
349
|
|
350
|
-
def self.ransackable_scopes(
|
351
|
-
|
352
|
-
return base unless auth_object&.admin?
|
353
|
-
|
354
|
-
# Add extra scopes for admins for the admin panel searches
|
355
|
-
base + [:valuator_role_ids_has]
|
350
|
+
def self.ransackable_scopes(_auth_object = nil)
|
351
|
+
[:with_any_origin, :with_any_state, :voted_by, :coauthored_by, :related_to, :with_any_scope, :with_any_category, :valuator_role_ids_has]
|
356
352
|
end
|
357
353
|
|
358
354
|
# Create i18n ransackers for :title and :body.
|
@@ -4,15 +4,16 @@ module Decidim
|
|
4
4
|
module Proposals
|
5
5
|
class Permissions < Decidim::DefaultPermissions
|
6
6
|
def permissions
|
7
|
-
return permission_action unless user
|
8
|
-
|
9
7
|
# Delegate the admin permission checks to the admin permissions class
|
10
8
|
return Decidim::Proposals::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
|
11
9
|
return permission_action if permission_action.scope != :public
|
12
10
|
|
11
|
+
toggle_allow(!proposal.hidden?) if permission_action.subject == :proposal && permission_action.action == :read
|
12
|
+
return permission_action unless user
|
13
|
+
|
13
14
|
case permission_action.subject
|
14
15
|
when :proposal
|
15
|
-
apply_proposal_permissions(permission_action)
|
16
|
+
apply_proposal_permissions(permission_action) unless permission_action.action == :read
|
16
17
|
when :collaborative_draft
|
17
18
|
apply_collaborative_draft_permissions(permission_action)
|
18
19
|
else
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Proposals
|
5
|
+
class CollaborativeDraftDiffRenderer < DiffRenderer
|
6
|
+
private
|
7
|
+
|
8
|
+
def attribute_types
|
9
|
+
{
|
10
|
+
title: :string,
|
11
|
+
body: :string,
|
12
|
+
decidim_category_id: :category,
|
13
|
+
decidim_scope_id: :scope,
|
14
|
+
address: :string,
|
15
|
+
latitude: :string,
|
16
|
+
longitude: :string,
|
17
|
+
decidim_proposals_proposal_state_id: :string
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -21,7 +21,9 @@ module Decidim
|
|
21
21
|
|
22
22
|
# Parses the values before parsing the changeset.
|
23
23
|
def parse_changeset(attribute, values, type, diff)
|
24
|
+
return parse_i18n_changeset(attribute, values, type, diff) if [:i18n, :i18n_html].include?(type)
|
24
25
|
return parse_scope_changeset(attribute, values, type, diff) if type == :scope
|
26
|
+
return parse_user_group_changeset(attribute, values, type, diff) if type == :user_group
|
25
27
|
|
26
28
|
values = parse_values(attribute, values)
|
27
29
|
old_value = values[0]
|
@@ -117,7 +117,7 @@ module Decidim
|
|
117
117
|
if attachment.file.attached?
|
118
118
|
new_attachment.file = attachment.file.blob
|
119
119
|
else
|
120
|
-
new_attachment.attached_uploader(:file).remote_url = attachment.attached_uploader(:file).url
|
120
|
+
new_attachment.attached_uploader(:file).remote_url = attachment.attached_uploader(:file).url
|
121
121
|
end
|
122
122
|
|
123
123
|
new_attachment.save!
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<%= check_box_tag "proposals_bulk", "all", false, class: "js-check-all" %>
|
22
22
|
</th>
|
23
23
|
<th class="!text-left">
|
24
|
-
<%= sort_link(query, :
|
24
|
+
<%= sort_link(query, :translated_title, t("models.proposal.fields.title", scope: "decidim.proposals") ) %>
|
25
25
|
</th>
|
26
26
|
<th>
|
27
27
|
<%= sort_link(query, :published_at, t("models.proposal.fields.published_at", scope: "decidim.proposals") ) %>
|
@@ -54,7 +54,7 @@
|
|
54
54
|
</th>
|
55
55
|
|
56
56
|
<th>
|
57
|
-
<%=
|
57
|
+
<%= t("models.proposal.fields.state", scope: "decidim.proposals") %>
|
58
58
|
</th>
|
59
59
|
|
60
60
|
<th class="actions"><%= t("actions.title", scope: "decidim.proposals") %></th>
|
@@ -31,7 +31,7 @@
|
|
31
31
|
|
32
32
|
<% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
|
33
33
|
<div class="proposal-list__map">
|
34
|
-
<%= dynamic_map_for proposals_data_for_map(@
|
34
|
+
<%= dynamic_map_for proposals_data_for_map(@proposals) do %>
|
35
35
|
<template id="marker-popup">
|
36
36
|
<div class="space-y-6">
|
37
37
|
<a href="${link}" class="card__list">
|
@@ -3,3 +3,15 @@ var $orderFilterInput = $('.order_filter');
|
|
3
3
|
|
4
4
|
$proposals.html('<%= j(render partial: "proposals").strip.html_safe %>');
|
5
5
|
$orderFilterInput.val('<%= order %>');
|
6
|
+
|
7
|
+
<% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
|
8
|
+
var $map = $("#map");
|
9
|
+
var controller = $map.data("map-controller");
|
10
|
+
if (controller) {
|
11
|
+
var markerData = JSON.parse('<%= escape_javascript proposals_data_for_map(@proposals).to_json.html_safe %>');
|
12
|
+
controller.clearMarkers();
|
13
|
+
if (markerData.length > 0 ) {
|
14
|
+
controller.addMarkers(markerData);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
<% end %>
|
@@ -77,7 +77,7 @@ extra_admin_link(
|
|
77
77
|
<% end %>
|
78
78
|
|
79
79
|
<% if component_settings.geocoding_enabled? && @proposal.geocoded? %>
|
80
|
-
<div class="static-map__container">
|
80
|
+
<div class="static-map__container py-6">
|
81
81
|
<%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @proposal } %>
|
82
82
|
</div>
|
83
83
|
<% end %>
|
data/config/locales/ar.yml
CHANGED
@@ -311,12 +311,10 @@ ar:
|
|
311
311
|
notification_title: تم رفض الاقتراح <a href="%{resource_path}">%{resource_title}</a>.
|
312
312
|
proposal_update_category:
|
313
313
|
email_intro: 'قام المشرف بتحديث فئة اقتراحك "%{resource_title}" ، تحقق من ذلك في هذه الصفحة:'
|
314
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
|
315
314
|
email_subject: تم تحديث فئة %{resource_title} اقتراح
|
316
315
|
notification_title: تم تحديث فئة اقتراح <a href="%{resource_path}">%{resource_title}</a> بواسطة مسؤول.
|
317
316
|
proposal_update_scope:
|
318
317
|
email_intro: 'قام مدير بتحديث نطاق اقتراحك "%{resource_title}" ، يرجى التحقق منه على هذه الصفحة:'
|
319
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
|
320
318
|
email_subject: تم تحديث نطاق الاقتراح %{resource_title}
|
321
319
|
notification_title: نطاق الاقتراح <a href="%{resource_path}">%{resource_title}</a> تم تحديثه من قبل مدير.
|
322
320
|
voting_enabled:
|
@@ -376,7 +374,7 @@ ar:
|
|
376
374
|
title: الدعم
|
377
375
|
participatory_spaces:
|
378
376
|
highlighted_proposals:
|
379
|
-
see_all: شاهد الكل
|
377
|
+
see_all: شاهد الكل
|
380
378
|
proposals:
|
381
379
|
actions:
|
382
380
|
answer_proposal: الرد على المُقتَرَح
|
data/config/locales/bg.yml
CHANGED
@@ -105,7 +105,7 @@ bg:
|
|
105
105
|
'false': Предложения
|
106
106
|
'true': Изменения
|
107
107
|
scope_id_eq:
|
108
|
-
label:
|
108
|
+
label: Сфера
|
109
109
|
state_eq:
|
110
110
|
label: Състояние
|
111
111
|
values:
|
@@ -130,7 +130,7 @@ bg:
|
|
130
130
|
actions:
|
131
131
|
amend: Промяна
|
132
132
|
comment: Коментар
|
133
|
-
create:
|
133
|
+
create: Създаване
|
134
134
|
endorse: Одобри
|
135
135
|
vote: Поддръжка
|
136
136
|
vote_comment: Оцени коментара
|
@@ -179,7 +179,7 @@ bg:
|
|
179
179
|
proposal_wizard_step_3_help_text: Текст на помощника за стъпка "Завърши"
|
180
180
|
proposal_wizard_step_4_help_text: Помощен текст на стъпка "Публикуване" на съветника за предложения
|
181
181
|
resources_permissions_enabled: Позволените действия могат да се задават за всяко предложение
|
182
|
-
scope_id:
|
182
|
+
scope_id: Сфера
|
183
183
|
scopes_enabled: Обхватите са активирани
|
184
184
|
threshold_per_proposal: Праг за предложенията
|
185
185
|
vote_limit: Максимален брой поддръжки на участник
|
@@ -320,12 +320,10 @@ bg:
|
|
320
320
|
notification_title: Предложението <a href="%{resource_path}">%{resource_title}</a> беше отхвърлено.
|
321
321
|
proposal_update_category:
|
322
322
|
email_intro: 'Администратор актуализира категорията на Вашето предложение „%{resource_title}“. Вижте повече на тази страница:'
|
323
|
-
email_outro: Получавате това известие, защото сте авторът на предложението.
|
324
323
|
email_subject: Категорията на предложението %{resource_title} беше актуализирана
|
325
324
|
notification_title: Категорията на предложението <a href="%{resource_path}">%{resource_title}</a> беше актуализирана от администратор.
|
326
325
|
proposal_update_scope:
|
327
326
|
email_intro: 'Администратор актуализира обхвата на Вашето предложение „%{resource_title}“. Вижте повече на тази страница:'
|
328
|
-
email_outro: Получавате това известие, защото сте авторът на предложението.
|
329
327
|
email_subject: Обхватът на предложението %{resource_title} беше актуализиран
|
330
328
|
notification_title: Обхватът на предложението <a href="%{resource_path}">%{resource_title}</a> беше актуализиран от администратор.
|
331
329
|
voting_enabled:
|
@@ -653,7 +651,7 @@ bg:
|
|
653
651
|
open: Отворен
|
654
652
|
published: Публикувано
|
655
653
|
related_to: Свързано с
|
656
|
-
scope:
|
654
|
+
scope: Сфера
|
657
655
|
search: Търсене
|
658
656
|
state: Статус
|
659
657
|
withdrawn: Оттеглено
|
@@ -739,7 +737,7 @@ bg:
|
|
739
737
|
official_proposal: Официално предложение
|
740
738
|
published_answer: Публикуван отговор
|
741
739
|
published_at: Публикувано на
|
742
|
-
scope:
|
740
|
+
scope: Сфера
|
743
741
|
state: Статус
|
744
742
|
title: Заглавие
|
745
743
|
valuator: Оценител
|
@@ -0,0 +1 @@
|
|
1
|
+
bn:
|
@@ -0,0 +1,100 @@
|
|
1
|
+
---
|
2
|
+
bs:
|
3
|
+
activemodel:
|
4
|
+
attributes:
|
5
|
+
valuation_assignment:
|
6
|
+
admin_log:
|
7
|
+
valuator_role_id: Ime procenjivača
|
8
|
+
errors:
|
9
|
+
models:
|
10
|
+
proposal:
|
11
|
+
attributes:
|
12
|
+
body:
|
13
|
+
cant_be_equal_to_template: ne može biti jednak šablonu
|
14
|
+
models:
|
15
|
+
decidim/proposals/admin/update_proposal_scope_event: Predlog opsega izmenjen
|
16
|
+
decidim:
|
17
|
+
admin:
|
18
|
+
filters:
|
19
|
+
proposals:
|
20
|
+
valuator_role_ids_has:
|
21
|
+
label: Dodeljeno procenjivaču
|
22
|
+
search_placeholder:
|
23
|
+
id_string_or_title_cont: Pretraži %{collection} prema identifikacionom broju ili nazivu.
|
24
|
+
components:
|
25
|
+
proposals:
|
26
|
+
settings:
|
27
|
+
global:
|
28
|
+
new_proposal_body_template: Novi predlog šablona glavnog teksta
|
29
|
+
new_proposal_body_template_help: Možete da definišete tekst koji će se pojavljivati pri kreiranju novog predloga
|
30
|
+
step:
|
31
|
+
amendments_visibility: Vidljivost izmena
|
32
|
+
amendments_visibility_choices:
|
33
|
+
all: Izmene su vidljive svima
|
34
|
+
participants: Izmene su vidljive samo svojim autorima
|
35
|
+
answers_with_costs: Omogući troškove za odgovore na predloge
|
36
|
+
publish_answers_immediately: Objavi odgovore na predloge odmah
|
37
|
+
events:
|
38
|
+
proposals:
|
39
|
+
admin:
|
40
|
+
proposal_note_created:
|
41
|
+
email_outro: Dobili ste ovo obaveštenje jer možete da procenite predlog.
|
42
|
+
email_subject: Neko je ostavio poruku na predlogu %{resource_title}.
|
43
|
+
proposal_update_scope:
|
44
|
+
email_intro: 'Administrator je ažurirao opseg vašeg predloga "%{resource_title}", pogledajte na ovoj strani:'
|
45
|
+
email_subject: Opseg predloga %{resource_title} je ažuriran
|
46
|
+
proposals:
|
47
|
+
actions:
|
48
|
+
answer_proposal: Odgovor na predlog
|
49
|
+
show: Prikaži predlog
|
50
|
+
admin:
|
51
|
+
proposals:
|
52
|
+
index:
|
53
|
+
assign_to_valuator: Dodeli procenjivaču
|
54
|
+
assign_to_valuator_button: Dodeli
|
55
|
+
change_scope: Promeni opseg
|
56
|
+
publish_answers: Objavi odgovore
|
57
|
+
unassign_from_valuator: Oduzmi od procenjivača
|
58
|
+
unassign_from_valuator_button: Od dodeli
|
59
|
+
update_scope_button: Ažuriraj opseg
|
60
|
+
show:
|
61
|
+
amendments_count: Broj izmena
|
62
|
+
assigned_valuators: Dodeljeni procenjivači
|
63
|
+
comments_count: Broj komentara
|
64
|
+
documents: Dokumenti
|
65
|
+
endorsements_count: Broj podržavanja
|
66
|
+
endorsers: Podržavaoci
|
67
|
+
n_more_endorsers:
|
68
|
+
one: i još 1
|
69
|
+
few: i još %{count}
|
70
|
+
other: i još %{count}
|
71
|
+
photos: Slike
|
72
|
+
ranking: "%{ranking} od %{total}"
|
73
|
+
related_meetings: Slični sastanci
|
74
|
+
remove_assignment: Ukloni zadatak
|
75
|
+
remove_assignment_confirmation: Da li ste sigurni da želite da uklonite procenjivača sa ovog predloga?
|
76
|
+
valuators: Procenjivači
|
77
|
+
update_category:
|
78
|
+
invalid: 'Ovi predlozi već imaju %{subject_name} kategoriju: %{proposals}.'
|
79
|
+
success: 'Predlozi uspešno dodati u kategoriju %{subject_name}: %{proposals}.'
|
80
|
+
update_scope:
|
81
|
+
invalid: 'Ovi predlozi već imaju %{subject_name} opseg: %{proposals}.'
|
82
|
+
success: 'Predlozi kojima je uspešno dodat opseg %{subject_name}: %{proposals}.'
|
83
|
+
admin_log:
|
84
|
+
proposal:
|
85
|
+
publish_answer: "%{user_name} je objavio odgovor na predlog %{resource_name} u prostoru %{space_name}"
|
86
|
+
valuation_assignment:
|
87
|
+
create: "%{user_name} je dodao predlog %{resource_name} procenjivaču"
|
88
|
+
models:
|
89
|
+
proposal:
|
90
|
+
fields:
|
91
|
+
published_answer: Objavljeni odgovor
|
92
|
+
valuator: Procenjivač
|
93
|
+
valuators: Procenjivači
|
94
|
+
proposals:
|
95
|
+
show:
|
96
|
+
estimated_cost: Procenjen trošak
|
97
|
+
proposals_picker:
|
98
|
+
choose_proposals: Izaberi predloge
|
99
|
+
publish_answers:
|
100
|
+
success: Odgovori na predloge uspešno objavljeni.
|
data/config/locales/ca.yml
CHANGED
@@ -130,7 +130,7 @@ ca:
|
|
130
130
|
actions:
|
131
131
|
amend: Esmena
|
132
132
|
comment: Comentar
|
133
|
-
create:
|
133
|
+
create: Crea
|
134
134
|
endorse: Adherir-se
|
135
135
|
vote: Donar suport
|
136
136
|
vote_comment: Votar el comentari
|
@@ -320,12 +320,12 @@ ca:
|
|
320
320
|
notification_title: S'ha rebutjat la proposta <a href="%{resource_path}">%{resource_title}</a>.
|
321
321
|
proposal_update_category:
|
322
322
|
email_intro: 'Una administradora ha actualitzat la categoria de la teva proposta "%{resource_title}", fes-hi una ullada:'
|
323
|
-
email_outro: Has rebut aquesta notificació perquè
|
323
|
+
email_outro: Has rebut aquesta notificació perquè ets l'autora de la proposta.
|
324
324
|
email_subject: S'ha actualitzat la categoria de la proposta %{resource_title}
|
325
325
|
notification_title: La categoria de la proposta <a href="%{resource_path}">%{resource_title}</a> ha estat actualitzada per una administradora.
|
326
326
|
proposal_update_scope:
|
327
327
|
email_intro: 'Una administradora ha actualitzat l''àmbit de la teva proposta "%{resource_title}", fes-hi una ullada:'
|
328
|
-
email_outro: Has rebut aquesta notificació perquè
|
328
|
+
email_outro: Has rebut aquesta notificació perquè ets l'autora de la proposta.
|
329
329
|
email_subject: S'ha actualitzat l'àmbit de la proposta %{resource_title}
|
330
330
|
notification_title: L'àmbit de la proposta <a href="%{resource_path}">%{resource_title}</a> ha estat actualitzat per una administradora.
|
331
331
|
voting_enabled:
|
@@ -498,7 +498,7 @@ ca:
|
|
498
498
|
title: Actualitza la proposta
|
499
499
|
update: Actualizar
|
500
500
|
form:
|
501
|
-
attachment_legend: "(Opcional)
|
501
|
+
attachment_legend: "(Opcional) Afegeix un fitxer adjunt"
|
502
502
|
created_in_meeting: Aquesta proposta prové d'una trobada
|
503
503
|
delete_attachment: Suprimeix l'adjunt
|
504
504
|
select_a_category: Selecciona una categoria
|
@@ -834,7 +834,7 @@ ca:
|
|
834
834
|
show:
|
835
835
|
answer: Resposta
|
836
836
|
changes_at_title: Esmena a "%{title}"
|
837
|
-
edit_proposal: Edita proposta
|
837
|
+
edit_proposal: Edita la proposta
|
838
838
|
estimated_cost: Cost estimat
|
839
839
|
hidden_endorsers_count:
|
840
840
|
one: i %{count} persona més
|
data/config/locales/cs.yml
CHANGED
@@ -113,7 +113,7 @@ cs:
|
|
113
113
|
'false': Návrhy
|
114
114
|
'true': Pozměňovací návrhy
|
115
115
|
scope_id_eq:
|
116
|
-
label:
|
116
|
+
label: Rozsah
|
117
117
|
state_eq:
|
118
118
|
label: Stav
|
119
119
|
values:
|
@@ -187,7 +187,7 @@ cs:
|
|
187
187
|
proposal_wizard_step_3_help_text: Text průvodce kroku nápovědy „Dokončit“ Návrh
|
188
188
|
proposal_wizard_step_4_help_text: Text nápovědy ke kroku "Zveřejnit" průvodce návrhem
|
189
189
|
resources_permissions_enabled: Pro každý návrh lze nastavit oprávnění akce
|
190
|
-
scope_id:
|
190
|
+
scope_id: Rozsah
|
191
191
|
scopes_enabled: Oblasti působnosti povoleny
|
192
192
|
threshold_per_proposal: Prah na návrh
|
193
193
|
vote_limit: Počet hlasů na uživatele
|
@@ -328,12 +328,12 @@ cs:
|
|
328
328
|
notification_title: Návrh <a href="%{resource_path}">%{resource_title}</a> byl zamítnut.
|
329
329
|
proposal_update_category:
|
330
330
|
email_intro: 'Správce aktualizoval kategorii vašeho návrhu "%{resource_title}", podívejte se na něj:'
|
331
|
-
email_outro:
|
331
|
+
email_outro: Obdrželi jste toto oznámení, protože jste autorem návrhu.
|
332
332
|
email_subject: Kategorie návrhů %{resource_title} byla aktualizována
|
333
333
|
notification_title: Kategorie návrhu <a href="%{resource_path}">%{resource_title}</a> byla aktualizována administrátorem.
|
334
334
|
proposal_update_scope:
|
335
335
|
email_intro: 'Administrátor aktualizoval rozsah vašeho návrhu "%{resource_title}", podívejte se na tuto stránku:'
|
336
|
-
email_outro:
|
336
|
+
email_outro: Obdrželi jste toto oznámení, protože jste autorem návrhu.
|
337
337
|
email_subject: Rámec návrhu %{resource_title} byl aktualizován
|
338
338
|
notification_title: Rozsah návrhu <a href="%{resource_path}">%{resource_title}</a> byl aktualizován správcem.
|
339
339
|
voting_enabled:
|
@@ -396,7 +396,7 @@ cs:
|
|
396
396
|
participatory_spaces:
|
397
397
|
highlighted_proposals:
|
398
398
|
last: Poslední návrhy
|
399
|
-
see_all: Zobrazit všechny
|
399
|
+
see_all: Zobrazit všechny
|
400
400
|
proposals:
|
401
401
|
actions:
|
402
402
|
answer_proposal: Odpověď na návrh
|
data/config/locales/de.yml
CHANGED
@@ -179,7 +179,7 @@ de:
|
|
179
179
|
proposal_wizard_step_3_help_text: Hilfetext "Fertigstellen"-Schritt im Vorschlagsassistenten
|
180
180
|
proposal_wizard_step_4_help_text: Hilfetext "Veröffentlichen"-Schritt im Vorschlagsassistenten
|
181
181
|
resources_permissions_enabled: Berechtigungen können für jeden Vorschlag festgelegt werden
|
182
|
-
scope_id:
|
182
|
+
scope_id: Umfang
|
183
183
|
scopes_enabled: Bereiche aktiviert
|
184
184
|
threshold_per_proposal: Schwellenwert pro Vorschlag
|
185
185
|
vote_limit: Unterstützungslimit pro Benutzer
|
@@ -320,12 +320,12 @@ de:
|
|
320
320
|
notification_title: Der Vorschlag <a href="%{resource_path}">%{resource_title}</a> wurde abgelehnt.
|
321
321
|
proposal_update_category:
|
322
322
|
email_intro: 'Ein Administrator hat die Kategorie Ihres Vorschlags "%{resource_title}" aktualisiert, sehen Sie es sich an:'
|
323
|
-
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie
|
323
|
+
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie diesen Vorschlag verfasst haben.
|
324
324
|
email_subject: Die Vorschlagskategorie %{resource_title} wurde aktualisiert
|
325
325
|
notification_title: Die Vorschlagskategorie <a href="%{resource_path}">%{resource_title}</a> wurde von einem Administrator aktualisiert.
|
326
326
|
proposal_update_scope:
|
327
327
|
email_intro: 'Ein Administrator hat den Bereich Ihres Vorschlags „%{resource_title}“ aktualisiert, sehen Sie es sich das auf dieser Seite an:'
|
328
|
-
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie
|
328
|
+
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie diesen Vorschlag verfasst haben.
|
329
329
|
email_subject: Der Bereich des Vorschlags %{resource_title} wurde aktualisiert
|
330
330
|
notification_title: Der Bereich des Vorschlags <a href="%{resource_path}">%{resource_title}</a> wurde von einem Administrator aktualisiert.
|
331
331
|
voting_enabled:
|
@@ -388,7 +388,7 @@ de:
|
|
388
388
|
participatory_spaces:
|
389
389
|
highlighted_proposals:
|
390
390
|
last: Letzte Vorschläge
|
391
|
-
see_all: Alle anzeigen
|
391
|
+
see_all: Alle anzeigen
|
392
392
|
proposals:
|
393
393
|
actions:
|
394
394
|
answer_proposal: Vorschlag beantworten
|
@@ -498,7 +498,7 @@ de:
|
|
498
498
|
title: Vorschlag aktualisieren
|
499
499
|
update: Aktualisieren
|
500
500
|
form:
|
501
|
-
attachment_legend: "(Optional) Anhang
|
501
|
+
attachment_legend: "(Optional) Fügen Sie einen Anhang hinzu"
|
502
502
|
created_in_meeting: Dieser Vorschlag stammt von einer Besprechung
|
503
503
|
delete_attachment: Anhang löschen
|
504
504
|
select_a_category: Kategorie auswählen
|
@@ -693,7 +693,7 @@ de:
|
|
693
693
|
error: Konnte nicht als Mitarbeiter abgelehnt werden, versuche es später erneut.
|
694
694
|
success: "@%{user} wurde als Mitwirkende erfolgreich abgelehnt."
|
695
695
|
show:
|
696
|
-
edit:
|
696
|
+
edit: Gemeinsamen Entwurf bearbeiten
|
697
697
|
final_proposal: Endgültiger Vorschlag
|
698
698
|
final_proposal_help_text: Dieser Entwurf ist fertig. Sie können den endgültigen fertigen Vorschlag sehen
|
699
699
|
hidden_authors_count:
|
@@ -742,7 +742,7 @@ de:
|
|
742
742
|
scope: Umfang
|
743
743
|
state: Status
|
744
744
|
title: Titel
|
745
|
-
valuator:
|
745
|
+
valuator: Bewertende
|
746
746
|
valuators: Bewertende
|
747
747
|
votes: Stimmen
|
748
748
|
new:
|