decidim-proposals 0.28.4 → 0.28.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +0 -12
- data/app/cells/decidim/proposals/proposal_l_cell.rb +17 -18
- data/app/controllers/decidim/proposals/proposals_controller.rb +4 -8
- data/app/controllers/decidim/proposals/versions_controller.rb +1 -1
- 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/collaborative_draft.rb +2 -3
- data/app/models/decidim/proposals/proposal.rb +2 -11
- 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/_form.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/show.html.erb +4 -4
- data/app/views/decidim/proposals/proposals/_proposals.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/index.html.erb +9 -2
- 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 +7 -6
- data/config/locales/bg.yml +5 -11
- data/config/locales/bn-BD.yml +1 -0
- data/config/locales/bs-BA.yml +98 -0
- data/config/locales/ca-IT.yml +931 -0
- data/config/locales/ca.yml +15 -10
- data/config/locales/cs.yml +12 -7
- data/config/locales/de.yml +15 -10
- data/config/locales/el.yml +3 -8
- data/config/locales/en.yml +7 -2
- data/config/locales/es-MX.yml +13 -8
- data/config/locales/es-PY.yml +13 -8
- data/config/locales/es.yml +16 -11
- data/config/locales/eu.yml +165 -160
- data/config/locales/fi-plain.yml +10 -5
- data/config/locales/fi.yml +30 -25
- data/config/locales/fr-CA.yml +12 -9
- data/config/locales/fr.yml +11 -8
- data/config/locales/ga-IE.yml +0 -1
- data/config/locales/gl.yml +3 -6
- data/config/locales/he-IL.yml +4 -0
- data/config/locales/hu.yml +3 -8
- data/config/locales/id-ID.yml +10 -5
- data/config/locales/is-IS.yml +3 -7
- data/config/locales/it.yml +35 -11
- data/config/locales/ja.yml +12 -7
- data/config/locales/lt.yml +1 -7
- data/config/locales/lv.yml +5 -4
- data/config/locales/nl.yml +9 -9
- data/config/locales/no.yml +1 -6
- data/config/locales/pl.yml +2 -8
- data/config/locales/pt-BR.yml +3 -8
- data/config/locales/pt.yml +2 -6
- data/config/locales/ro-RO.yml +10 -11
- data/config/locales/ru.yml +3 -7
- data/config/locales/sk.yml +6 -5
- data/config/locales/sl.yml +0 -4
- data/config/locales/sr-CS.yml +0 -2
- data/config/locales/sv.yml +11 -7
- data/config/locales/tr-TR.yml +5 -9
- data/config/locales/uk.yml +4 -8
- data/config/locales/zh-CN.yml +1 -5
- data/config/locales/zh-TW.yml +3 -8
- 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 +25 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63f02eb870fe0f3b26efdfb4b561f9414b69088c57501c8a560836f4580fd587
|
4
|
+
data.tar.gz: 72ab69147738585ed8699e8f037854862d57710efd14da0d5ead38a6ca5ba362
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4101cf611f39a640e9847ef15453ba995ddb961b72f60f64b909227cb3a4e5f93e3eb2012bebfaba9368ec03418e83e60d099dafaab35c93247e8b27a88fafc
|
7
|
+
data.tar.gz: 51125fff4a9d5e07483e6d741388aace1a3c6a719eba50bbe7d157d42124b98b75cc4a338cca0ed4da29f6cfda182199953c47732b068177774a97ac1df3aa13
|
@@ -10,22 +10,10 @@
|
|
10
10
|
<% end %>
|
11
11
|
<% end %>
|
12
12
|
</div>
|
13
|
-
|
14
13
|
<div class="flex items-start justify-between">
|
15
14
|
<div class="grow space-y-6">
|
16
|
-
<span class="content-block__span">
|
17
|
-
<%= t("decidim.participatory_spaces.highlighted_proposals.last") %>
|
18
|
-
</span>
|
19
|
-
|
20
15
|
<% proposals_to_render.each do |p| %>
|
21
16
|
<%= card_for p, link_whole_card: true, title_tag: :h3, **options.slice(:show_space) %>
|
22
17
|
<% end %>
|
23
18
|
</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
19
|
</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
|
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
def versioned_resource
|
12
12
|
@versioned_resource ||=
|
13
13
|
if params[:proposal_id]
|
14
|
-
present(Proposal.where(component: current_component).find(params[:proposal_id]))
|
14
|
+
present(Proposal.not_hidden.published.where(component: current_component).find(params[:proposal_id]))
|
15
15
|
else
|
16
16
|
CollaborativeDraft.where(component: current_component).find(params[:collaborative_draft_id])
|
17
17
|
end
|
@@ -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
|
@@ -45,9 +45,8 @@ module Decidim
|
|
45
45
|
authored_by?(user)
|
46
46
|
end
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
ResourceLocatorPresenter.new(self).url
|
48
|
+
def presenter
|
49
|
+
Decidim::Proposals::CollaborativeDraftPresenter.new(self)
|
51
50
|
end
|
52
51
|
|
53
52
|
# Public: Overrides the `reported_attributes` Reportable concern method.
|
@@ -251,11 +251,6 @@ module Decidim
|
|
251
251
|
state == "evaluating"
|
252
252
|
end
|
253
253
|
|
254
|
-
# Public: Overrides the `reported_content_url` Reportable concern method.
|
255
|
-
def reported_content_url
|
256
|
-
ResourceLocatorPresenter.new(self).url
|
257
|
-
end
|
258
|
-
|
259
254
|
# Returns the presenter for this author, to be used in the views.
|
260
255
|
# Required by ResourceRenderer.
|
261
256
|
def presenter
|
@@ -347,12 +342,8 @@ module Decidim
|
|
347
342
|
where(query, value:)
|
348
343
|
end
|
349
344
|
|
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]
|
345
|
+
def self.ransackable_scopes(_auth_object = nil)
|
346
|
+
[:with_any_origin, :with_any_state, :voted_by, :coauthored_by, :related_to, :with_any_scope, :with_any_category, :valuator_role_ids_has]
|
356
347
|
end
|
357
348
|
|
358
349
|
# 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!
|
@@ -20,7 +20,7 @@
|
|
20
20
|
</div>
|
21
21
|
<% end %>
|
22
22
|
<% if @form.component_suggested_hashtags.any? %>
|
23
|
-
<div class="
|
23
|
+
<div class="row column">
|
24
24
|
<%= form.label :suggested_hashtags %>
|
25
25
|
<div class="checkboxes hashtags">
|
26
26
|
<%= form.collection_check_boxes :suggested_hashtags, @form.component_suggested_hashtags.map { |hashtag| [hashtag.downcase, "##{hashtag}"] }, :first, :last do |option|
|
@@ -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>
|
@@ -52,20 +52,20 @@
|
|
52
52
|
|
53
53
|
<% presented_endorsers = endorsers_presenters_for(proposal) %>
|
54
54
|
<% if presented_endorsers.any? %>
|
55
|
-
<%= render partial: "endorsers", locals: { presented_endorsers:, proposal: } %>
|
55
|
+
<%= render partial: "decidim/proposals/admin/proposals/endorsers", locals: { presented_endorsers:, proposal: } %>
|
56
56
|
<% end %>
|
57
57
|
|
58
58
|
<% if proposal.documents.any? %>
|
59
|
-
<%= render partial: "documents", locals: { proposal: } %>
|
59
|
+
<%= render partial: "decidim/proposals/admin/proposals/documents", locals: { proposal: } %>
|
60
60
|
<% end %>
|
61
61
|
|
62
62
|
<% if proposal.photos.any? %>
|
63
|
-
<%= render partial: "photos", locals: { proposal: } %>
|
63
|
+
<%= render partial: "decidim/proposals/admin/proposals/photos", locals: { proposal: } %>
|
64
64
|
<% end %>
|
65
65
|
|
66
66
|
<% proposal_meetings = proposal.linked_resources(:meetings, "proposals_from_meeting") %>
|
67
67
|
<% if proposal_meetings.any? %>
|
68
|
-
<%= render partial: "meetings", locals: { proposal_meetings: } %>
|
68
|
+
<%= render partial: "decidim/proposals/admin/proposals/meetings", locals: { proposal_meetings: } %>
|
69
69
|
<% end %>
|
70
70
|
|
71
71
|
<% if allowed_to?(:create, :proposal_note, proposal: proposal) %>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<% if @proposals.empty? %>
|
8
8
|
<%= cell("decidim/announcement", params[:filter].present? ? t(".empty_filters") : t(".empty")) %>
|
9
9
|
<% else %>
|
10
|
-
<h2 class="h5 md:h3 decorator"><%= t("count", scope: "decidim.proposals.proposals.index", count: @proposals.total_count) %></h2>
|
10
|
+
<h2 class="h5 md:h3 decorator" aria-live="polite" aria-atomic="true"><%= t("count", scope: "decidim.proposals.proposals.index", count: @proposals.total_count) %></h2>
|
11
11
|
|
12
12
|
<%= order_selector available_orders, i18n_scope: "decidim.proposals.proposals.orders" %>
|
13
13
|
|
@@ -1,4 +1,11 @@
|
|
1
|
-
<%
|
1
|
+
<% add_decidim_meta_tags(
|
2
|
+
description: translated_attribute(current_participatory_space.short_description),
|
3
|
+
title: t("decidim.components.pagination.page_title",
|
4
|
+
component_name:,
|
5
|
+
current_page: @proposals.current_page,
|
6
|
+
total_pages: @proposals.total_pages ),
|
7
|
+
url: proposals_url,
|
8
|
+
resource: current_component) %>
|
2
9
|
|
3
10
|
<% append_stylesheet_pack_tag "decidim_proposals", media: "all" %>
|
4
11
|
<% append_javascript_pack_tag "decidim_proposals" %>
|
@@ -31,7 +38,7 @@
|
|
31
38
|
|
32
39
|
<% if Decidim::Map.available?(:geocoding, :dynamic) && component_settings.geocoding_enabled? %>
|
33
40
|
<div class="proposal-list__map">
|
34
|
-
<%= dynamic_map_for proposals_data_for_map(@
|
41
|
+
<%= dynamic_map_for proposals_data_for_map(@proposals) do %>
|
35
42
|
<template id="marker-popup">
|
36
43
|
<div class="space-y-6">
|
37
44
|
<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
@@ -12,6 +12,8 @@ ar:
|
|
12
12
|
state: حالة
|
13
13
|
title: عنوان
|
14
14
|
user_group_id: إنشاء مسودة تعاونية كـ
|
15
|
+
import_participatory_text:
|
16
|
+
document: مستند
|
15
17
|
proposal:
|
16
18
|
address: عنوان
|
17
19
|
answer: إجابة
|
@@ -21,6 +23,8 @@ ar:
|
|
21
23
|
category_id: الفئة
|
22
24
|
decidim_scope_id: النطاق
|
23
25
|
has_address: لديه عنوان
|
26
|
+
latitude: خط العرض
|
27
|
+
longitude: خط الطول
|
24
28
|
scope_id: نطاق
|
25
29
|
state: حالة
|
26
30
|
suggested_hashtags: الهاشتاج المقترحة
|
@@ -33,6 +37,8 @@ ar:
|
|
33
37
|
execution_period: فترة التنفيذ
|
34
38
|
proposals_copy:
|
35
39
|
origin_component_id: مكون لنسخ المقترحات من
|
40
|
+
proposals_file_import:
|
41
|
+
file: ملف
|
36
42
|
proposals_import:
|
37
43
|
import_proposals: مقترحات الاستيراد
|
38
44
|
keep_answers: الاحتفاظ بالحالة والإجابات
|
@@ -311,12 +317,10 @@ ar:
|
|
311
317
|
notification_title: تم رفض الاقتراح <a href="%{resource_path}">%{resource_title}</a>.
|
312
318
|
proposal_update_category:
|
313
319
|
email_intro: 'قام المشرف بتحديث فئة اقتراحك "%{resource_title}" ، تحقق من ذلك في هذه الصفحة:'
|
314
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
|
315
320
|
email_subject: تم تحديث فئة %{resource_title} اقتراح
|
316
321
|
notification_title: تم تحديث فئة اقتراح <a href="%{resource_path}">%{resource_title}</a> بواسطة مسؤول.
|
317
322
|
proposal_update_scope:
|
318
323
|
email_intro: 'قام مدير بتحديث نطاق اقتراحك "%{resource_title}" ، يرجى التحقق منه على هذه الصفحة:'
|
319
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
|
320
324
|
email_subject: تم تحديث نطاق الاقتراح %{resource_title}
|
321
325
|
notification_title: نطاق الاقتراح <a href="%{resource_path}">%{resource_title}</a> تم تحديثه من قبل مدير.
|
322
326
|
voting_enabled:
|
@@ -376,7 +380,7 @@ ar:
|
|
376
380
|
title: الدعم
|
377
381
|
participatory_spaces:
|
378
382
|
highlighted_proposals:
|
379
|
-
see_all: شاهد الكل
|
383
|
+
see_all: شاهد الكل
|
380
384
|
proposals:
|
381
385
|
actions:
|
382
386
|
answer_proposal: الرد على المُقتَرَح
|
@@ -486,7 +490,6 @@ ar:
|
|
486
490
|
index:
|
487
491
|
actions: أفعال
|
488
492
|
assign_to_valuator: أسنِده إلى مُقيِّم
|
489
|
-
assign_to_valuator_button: تعيين
|
490
493
|
cancel: إلغاء
|
491
494
|
change_category: تغيير الفئة
|
492
495
|
change_scope: تغيير النطاق
|
@@ -500,7 +503,6 @@ ar:
|
|
500
503
|
split_button: انشق، مزق
|
501
504
|
title: اقتراحات
|
502
505
|
unassign_from_valuator: إلغاء الإسناد مِن المُقيِّم
|
503
|
-
unassign_from_valuator_button: إلغاء الإسناد
|
504
506
|
update: تحديث
|
505
507
|
update_scope_button: تحديث النطاق
|
506
508
|
new:
|
@@ -766,7 +768,6 @@ ar:
|
|
766
768
|
text_banner: أنت تتطلع على قائمة الاقتراحات المسحوبة من قبل مؤلفيها. %{go_back_link}.
|
767
769
|
new:
|
768
770
|
send: استمر
|
769
|
-
title: إنشاء اقتراحك
|
770
771
|
orders:
|
771
772
|
label: 'ترتيب المقترحات حسب:'
|
772
773
|
most_commented: الأكثر تعليقًا عليها
|
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:
|
@@ -387,7 +385,6 @@ bg:
|
|
387
385
|
title: Подкрепа
|
388
386
|
participatory_spaces:
|
389
387
|
highlighted_proposals:
|
390
|
-
last: Позледни предложения
|
391
388
|
see_all: Виж всички предложения
|
392
389
|
proposals:
|
393
390
|
actions:
|
@@ -506,7 +503,6 @@ bg:
|
|
506
503
|
index:
|
507
504
|
actions: Активности
|
508
505
|
assign_to_valuator: Възлагане на оценител
|
509
|
-
assign_to_valuator_button: Възлагане
|
510
506
|
cancel: Отказ
|
511
507
|
change_category: Промяна на категория
|
512
508
|
change_scope: Промяна на обхвата
|
@@ -520,7 +516,6 @@ bg:
|
|
520
516
|
split_button: Разделяне
|
521
517
|
title: Предложения
|
522
518
|
unassign_from_valuator: Отнемане възложеното на оценителя
|
523
|
-
unassign_from_valuator_button: Отнемане на възложеното
|
524
519
|
update: Актуализация
|
525
520
|
update_scope_button: Актуализиране на обхвата
|
526
521
|
new:
|
@@ -653,7 +648,7 @@ bg:
|
|
653
648
|
open: Отворен
|
654
649
|
published: Публикувано
|
655
650
|
related_to: Свързано с
|
656
|
-
scope:
|
651
|
+
scope: Сфера
|
657
652
|
search: Търсене
|
658
653
|
state: Статус
|
659
654
|
withdrawn: Оттеглено
|
@@ -739,7 +734,7 @@ bg:
|
|
739
734
|
official_proposal: Официално предложение
|
740
735
|
published_answer: Публикуван отговор
|
741
736
|
published_at: Публикувано на
|
742
|
-
scope:
|
737
|
+
scope: Сфера
|
743
738
|
state: Статус
|
744
739
|
title: Заглавие
|
745
740
|
valuator: Оценител
|
@@ -803,7 +798,6 @@ bg:
|
|
803
798
|
text_banner: Разглеждате списъка с предложения, оттеглени от своите автори. %{go_back_link}.
|
804
799
|
new:
|
805
800
|
send: Продължи
|
806
|
-
title: Създайте Ваше предложение
|
807
801
|
orders:
|
808
802
|
label: 'Подреждане на предложенията по:'
|
809
803
|
most_commented: Най-коментирани
|
@@ -0,0 +1 @@
|
|
1
|
+
bn:
|
@@ -0,0 +1,98 @@
|
|
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
|
+
change_scope: Promeni opseg
|
55
|
+
publish_answers: Objavi odgovore
|
56
|
+
unassign_from_valuator: Oduzmi od procenjivača
|
57
|
+
update_scope_button: Ažuriraj opseg
|
58
|
+
show:
|
59
|
+
amendments_count: Broj izmena
|
60
|
+
assigned_valuators: Dodeljeni procenjivači
|
61
|
+
comments_count: Broj komentara
|
62
|
+
documents: Dokumenti
|
63
|
+
endorsements_count: Broj podržavanja
|
64
|
+
endorsers: Podržavaoci
|
65
|
+
n_more_endorsers:
|
66
|
+
one: i još 1
|
67
|
+
few: i još %{count}
|
68
|
+
other: i još %{count}
|
69
|
+
photos: Slike
|
70
|
+
ranking: "%{ranking} od %{total}"
|
71
|
+
related_meetings: Slični sastanci
|
72
|
+
remove_assignment: Ukloni zadatak
|
73
|
+
remove_assignment_confirmation: Da li ste sigurni da želite da uklonite procenjivača sa ovog predloga?
|
74
|
+
valuators: Procenjivači
|
75
|
+
update_category:
|
76
|
+
invalid: 'Ovi predlozi već imaju %{subject_name} kategoriju: %{proposals}.'
|
77
|
+
success: 'Predlozi uspešno dodati u kategoriju %{subject_name}: %{proposals}.'
|
78
|
+
update_scope:
|
79
|
+
invalid: 'Ovi predlozi već imaju %{subject_name} opseg: %{proposals}.'
|
80
|
+
success: 'Predlozi kojima je uspešno dodat opseg %{subject_name}: %{proposals}.'
|
81
|
+
admin_log:
|
82
|
+
proposal:
|
83
|
+
publish_answer: "%{user_name} je objavio odgovor na predlog %{resource_name} u prostoru %{space_name}"
|
84
|
+
valuation_assignment:
|
85
|
+
create: "%{user_name} je dodao predlog %{resource_name} procenjivaču"
|
86
|
+
models:
|
87
|
+
proposal:
|
88
|
+
fields:
|
89
|
+
published_answer: Objavljeni odgovor
|
90
|
+
valuator: Procenjivač
|
91
|
+
valuators: Procenjivači
|
92
|
+
proposals:
|
93
|
+
show:
|
94
|
+
estimated_cost: Procenjen trošak
|
95
|
+
proposals_picker:
|
96
|
+
choose_proposals: Izaberi predloge
|
97
|
+
publish_answers:
|
98
|
+
success: Odgovori na predloge uspešno objavljeni.
|