decidim-proposals 0.29.1 → 0.29.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.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +0 -12
  3. data/app/cells/decidim/proposals/proposal_g_cell.rb +21 -0
  4. data/app/cells/decidim/proposals/proposal_l_cell.rb +17 -18
  5. data/app/commands/decidim/proposals/admin/import_proposals.rb +7 -65
  6. data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +1 -1
  7. data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +7 -0
  8. data/app/controllers/decidim/proposals/admin/proposals_imports_controller.rb +2 -2
  9. data/app/controllers/decidim/proposals/proposals_controller.rb +4 -8
  10. data/app/controllers/decidim/proposals/versions_controller.rb +1 -1
  11. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +3 -18
  12. data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
  13. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +6 -9
  14. data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +4 -1
  15. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +1 -1
  16. data/app/helpers/decidim/proposals/application_helper.rb +1 -0
  17. data/app/helpers/decidim/proposals/map_helper.rb +1 -1
  18. data/app/helpers/decidim/proposals/proposals_helper.rb +1 -3
  19. data/app/jobs/decidim/proposals/admin/import_proposals_job.rb +91 -0
  20. data/app/mailers/decidim/proposals/admin/import_proposals_mailer.rb +30 -0
  21. data/app/models/decidim/proposals/collaborative_draft.rb +2 -3
  22. data/app/models/decidim/proposals/proposal.rb +2 -11
  23. data/app/packs/stylesheets/decidim/proposals/proposals.scss +1 -5
  24. data/app/permissions/decidim/proposals/permissions.rb +4 -3
  25. data/app/services/decidim/proposals/collaborative_draft_diff_renderer.rb +22 -0
  26. data/app/services/decidim/proposals/diff_renderer.rb +2 -0
  27. data/app/services/decidim/proposals/proposal_builder.rb +2 -1
  28. data/app/views/decidim/proposals/admin/import_proposals_mailer/notify_failure.html.erb +1 -0
  29. data/app/views/decidim/proposals/admin/import_proposals_mailer/notify_success.html.erb +2 -0
  30. data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
  31. data/app/views/decidim/proposals/admin/proposals/index.html.erb +2 -2
  32. data/app/views/decidim/proposals/admin/proposals/show.html.erb +4 -4
  33. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +2 -2
  34. data/app/views/decidim/proposals/proposals/_proposals.html.erb +1 -1
  35. data/app/views/decidim/proposals/proposals/index.html.erb +9 -2
  36. data/app/views/decidim/proposals/proposals/index.js.erb +12 -0
  37. data/app/views/decidim/proposals/proposals/show.html.erb +1 -1
  38. data/config/locales/ar.yml +8 -6
  39. data/config/locales/bg.yml +5 -12
  40. data/config/locales/bn-BD.yml +1 -0
  41. data/config/locales/bs-BA.yml +98 -0
  42. data/config/locales/ca-IT.yml +945 -0
  43. data/config/locales/ca.yml +27 -12
  44. data/config/locales/cs.yml +33 -8
  45. data/config/locales/de.yml +27 -12
  46. data/config/locales/el.yml +5 -9
  47. data/config/locales/en.yml +18 -3
  48. data/config/locales/es-MX.yml +29 -14
  49. data/config/locales/es-PY.yml +24 -9
  50. data/config/locales/es.yml +32 -17
  51. data/config/locales/eu.yml +185 -163
  52. data/config/locales/fi-plain.yml +25 -10
  53. data/config/locales/fi.yml +42 -27
  54. data/config/locales/fr-CA.yml +20 -10
  55. data/config/locales/fr.yml +19 -9
  56. data/config/locales/ga-IE.yml +2 -1
  57. data/config/locales/gl.yml +5 -6
  58. data/config/locales/he-IL.yml +7 -0
  59. data/config/locales/hu.yml +4 -9
  60. data/config/locales/id-ID.yml +12 -5
  61. data/config/locales/is-IS.yml +5 -7
  62. data/config/locales/it.yml +31 -11
  63. data/config/locales/ja.yml +22 -8
  64. data/config/locales/lt.yml +3 -8
  65. data/config/locales/lv.yml +7 -4
  66. data/config/locales/nl.yml +11 -9
  67. data/config/locales/no.yml +3 -6
  68. data/config/locales/pl.yml +2 -9
  69. data/config/locales/pt-BR.yml +3 -8
  70. data/config/locales/pt.yml +4 -6
  71. data/config/locales/ro-RO.yml +25 -11
  72. data/config/locales/ru.yml +5 -7
  73. data/config/locales/sk.yml +8 -5
  74. data/config/locales/sl.yml +0 -4
  75. data/config/locales/sr-CS.yml +0 -2
  76. data/config/locales/sv.yml +11 -8
  77. data/config/locales/tr-TR.yml +7 -9
  78. data/config/locales/uk.yml +6 -8
  79. data/config/locales/zh-CN.yml +3 -5
  80. data/config/locales/zh-TW.yml +5 -9
  81. data/db/migrate/20240110203504_create_default_proposal_states.rb +3 -2
  82. data/decidim-proposals.gemspec +1 -1
  83. data/lib/decidim/api/proposal_type.rb +13 -0
  84. data/lib/decidim/api/proposals_type.rb +1 -3
  85. data/lib/decidim/proposals/proposal_serializer.rb +7 -4
  86. data/lib/decidim/proposals/test/factories.rb +6 -5
  87. data/lib/decidim/proposals/version.rb +1 -1
  88. data/lib/tasks/proposals/upgrade/decidim_proposals_upgrade_tasks.rake +22 -0
  89. metadata +29 -21
@@ -63,6 +63,7 @@ module Decidim
63
63
  "created_at",
64
64
  "updated_at",
65
65
  "state",
66
+ "decidim_proposals_proposal_state_id",
66
67
  "state_published_at",
67
68
  "answer",
68
69
  "answered_at",
@@ -117,7 +118,7 @@ module Decidim
117
118
  if attachment.file.attached?
118
119
  new_attachment.file = attachment.file.blob
119
120
  else
120
- new_attachment.attached_uploader(:file).remote_url = attachment.attached_uploader(:file).url(host: original_proposal.organization.host)
121
+ new_attachment.attached_uploader(:file).remote_url = attachment.attached_uploader(:file).url
121
122
  end
122
123
 
123
124
  new_attachment.save!
@@ -0,0 +1 @@
1
+ <p><%= t(".body", origin_component_name: translated_attribute(@origin_component.name), target_component_name: translated_attribute(@target_component.name)) %></p>
@@ -0,0 +1,2 @@
1
+ <p><%= t(".body", origin_component_name: translated_attribute(@origin_component.name), target_component_name: translated_attribute(@target_component.name)) %></p>
2
+ <p><%= t(".added_proposals", count: @count) %></p>
@@ -20,7 +20,7 @@
20
20
  </div>
21
21
  <% end %>
22
22
  <% if @form.component_suggested_hashtags.any? %>
23
- <div>
23
+ <div class="row column">
24
24
  <%= form.label :suggested_hashtags %>
25
25
  <div class="hashtags">
26
26
  <%= form.collection_check_boxes :suggested_hashtags, @form.component_suggested_hashtags.map { |hashtag| [hashtag.downcase, "##{hashtag}"] }, :first, :last do |option|
@@ -25,7 +25,7 @@
25
25
  <%= check_box_tag "proposals_bulk", "all", false, class: "js-check-all" %>
26
26
  </th>
27
27
  <th class="!text-left">
28
- <%= sort_link(query, :title, t("models.proposal.fields.title", scope: "decidim.proposals") ) %>
28
+ <%= sort_link(query, :translated_title, t("models.proposal.fields.title", scope: "decidim.proposals") ) %>
29
29
  </th>
30
30
  <th>
31
31
  <%= sort_link(query, :published_at, t("models.proposal.fields.published_at", scope: "decidim.proposals") ) %>
@@ -58,7 +58,7 @@
58
58
  </th>
59
59
 
60
60
  <th>
61
- <%= sort_link(query, :state, [:state, :is_emendation], t("models.proposal.fields.state", scope: "decidim.proposals") ) %>
61
+ <%= t("models.proposal.fields.state", scope: "decidim.proposals") %>
62
62
  </th>
63
63
 
64
64
  <th><%= t("actions.title", scope: "decidim.proposals") %></th>
@@ -53,20 +53,20 @@
53
53
 
54
54
  <% presented_endorsers = endorsers_presenters_for(proposal) %>
55
55
  <% if presented_endorsers.any? %>
56
- <%= render partial: "endorsers", locals: { presented_endorsers:, proposal: } %>
56
+ <%= render partial: "decidim/proposals/admin/proposals/endorsers", locals: { presented_endorsers:, proposal: } %>
57
57
  <% end %>
58
58
 
59
59
  <% if proposal.documents.any? %>
60
- <%= render partial: "documents", locals: { proposal: } %>
60
+ <%= render partial: "decidim/proposals/admin/proposals/documents", locals: { proposal: } %>
61
61
  <% end %>
62
62
 
63
63
  <% if proposal.photos.any? %>
64
- <%= render partial: "photos", locals: { proposal: } %>
64
+ <%= render partial: "decidim/proposals/admin/proposals/photos", locals: { proposal: } %>
65
65
  <% end %>
66
66
 
67
67
  <% proposal_meetings = proposal.linked_resources(:meetings, "proposals_from_meeting") %>
68
68
  <% if proposal_meetings.any? %>
69
- <%= render partial: "meetings", locals: { proposal_meetings: } %>
69
+ <%= render partial: "decidim/proposals/admin/proposals/meetings", locals: { proposal_meetings: } %>
70
70
  <% end %>
71
71
 
72
72
  <% if allowed_to?(:create, :proposal_note, proposal: proposal) %>
@@ -17,9 +17,9 @@
17
17
  </div>
18
18
  <div class="row column">
19
19
  <%= f.label t(".select_states") %>
20
- <%= f.collection_check_boxes :states, @form.states_collection, :value, :name do |b| %>
20
+ <%= f.collection_check_boxes :states, @form.states_collection, :token, :title do |b| %>
21
21
  <div>
22
- <%= b.label { b.check_box + b.text } %>
22
+ <%= b.label { b.check_box + translated_attribute(b.text) } %>
23
23
  </div>
24
24
  <% end %>
25
25
  </div>
@@ -8,7 +8,7 @@
8
8
  <%= cell("decidim/announcement", params[:filter].present? ? t(".empty_filters") : t(".empty")) %>
9
9
  <% else %>
10
10
  <div class="flex items-center justify-between">
11
- <h2 class="h5 md:h3 decorator"><%= t("count", scope: "decidim.proposals.proposals.index", count: @proposals.total_count) %></h2>
11
+ <h2 class="h5 md:h3 decorator" aria-live="polite" aria-atomic="true"><%= t("count", scope: "decidim.proposals.proposals.index", count: @proposals.total_count) %></h2>
12
12
  <div class="view-layout__links flex view_mode__links">
13
13
  <%= toggle_view_mode_link(@view_mode, "list", t("list_mode", scope: "decidim.proposals.proposals.index"), params) %>
14
14
  <%= toggle_view_mode_link(@view_mode, "grid", t("grid_mode", scope: "decidim.proposals.proposals.index"), params) %>
@@ -1,4 +1,11 @@
1
- <% add_decidim_page_title(t("name", scope: "decidim.components.proposals")) %>
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(@all_geocoded_proposals) do %>
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 %>
@@ -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: الاحتفاظ بالحالة والإجابات
@@ -262,12 +268,10 @@ ar:
262
268
  email_subject: تمت إضافة اقتراح جديد "%{resource_title}" إلى %{participatory_space_title}
263
269
  proposal_update_category:
264
270
  email_intro: 'قام المشرف بتحديث فئة اقتراحك "%{resource_title}" ، تحقق من ذلك في هذه الصفحة:'
265
- email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
266
271
  email_subject: تم تحديث فئة %{resource_title} اقتراح
267
272
  notification_title: تم تحديث فئة اقتراح <a href="%{resource_path}">%{resource_title}</a> بواسطة مسؤول.
268
273
  proposal_update_scope:
269
274
  email_intro: 'قام مدير بتحديث نطاق اقتراحك "%{resource_title}" ، يرجى التحقق منه على هذه الصفحة:'
270
- email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
271
275
  email_subject: تم تحديث نطاق الاقتراح %{resource_title}
272
276
  notification_title: نطاق الاقتراح <a href="%{resource_path}">%{resource_title}</a> تم تحديثه من قبل مدير.
273
277
  voting_enabled:
@@ -314,9 +318,10 @@ ar:
314
318
  title: اقتراحات
315
319
  votes:
316
320
  object: أصوات
321
+ title: الأصوات
317
322
  participatory_spaces:
318
323
  highlighted_proposals:
319
- see_all: شاهد الكل (%{count})
324
+ see_all: شاهد الكل
320
325
  proposals:
321
326
  actions:
322
327
  answer_proposal: الرد على المُقتَرَح
@@ -422,7 +427,6 @@ ar:
422
427
  index:
423
428
  actions: أفعال
424
429
  assign_to_valuator: أسنِده إلى مُقيِّم
425
- assign_to_valuator_button: تعيين
426
430
  cancel: إلغاء
427
431
  change_category: تغيير الفئة
428
432
  change_scope: تغيير النطاق
@@ -436,7 +440,6 @@ ar:
436
440
  split_button: انشق، مزق
437
441
  title: اقتراحات
438
442
  unassign_from_valuator: إلغاء الإسناد مِن المُقيِّم
439
- unassign_from_valuator_button: إلغاء الإسناد
440
443
  update: تحديث
441
444
  update_scope_button: تحديث النطاق
442
445
  new:
@@ -687,7 +690,6 @@ ar:
687
690
  text_banner: أنت تتطلع على قائمة الاقتراحات المسحوبة من قبل مؤلفيها. %{go_back_link}.
688
691
  new:
689
692
  send: استمر
690
- title: إنشاء اقتراحك
691
693
  orders:
692
694
  label: 'ترتيب المقترحات حسب:'
693
695
  most_commented: الأكثر تعليقًا عليها
@@ -117,7 +117,7 @@ bg:
117
117
  proposal_state_id_eq:
118
118
  label: Състояние
119
119
  scope_id_eq:
120
- label: Обхват
120
+ label: Сфера
121
121
  state_eq:
122
122
  label: Състояние
123
123
  values:
@@ -142,7 +142,7 @@ bg:
142
142
  actions:
143
143
  amend: Промяна
144
144
  comment: Коментар
145
- create: Създай
145
+ create: Създаване
146
146
  endorse: Одобри
147
147
  vote: Глас
148
148
  vote_comment: Оцени коментара
@@ -190,7 +190,7 @@ bg:
190
190
  proposal_wizard_step_1_help_text: Текст на помощника за стъпка "Създай"
191
191
  proposal_wizard_step_2_help_text: Помощен текст на стъпка "Публикуване" на съветника за предложения
192
192
  resources_permissions_enabled: Позволените действия могат да се задават за всяко предложение
193
- scope_id: Обхват
193
+ scope_id: Сфера
194
194
  scopes_enabled: Обхватите са активирани
195
195
  threshold_per_proposal: Праг за предложенията
196
196
  vote_limit: Лимит за гласуване на участник
@@ -309,12 +309,10 @@ bg:
309
309
  notification_title: Вашето предложение <a href="%{resource_path}">%{resource_title}</a> промени състоянието си на „%{state}“.
310
310
  proposal_update_category:
311
311
  email_intro: 'Администратор актуализира категорията на Вашето предложение „%{resource_title}“. Вижте повече на тази страница:'
312
- email_outro: Получавате това известие, защото сте авторът на предложението.
313
312
  email_subject: Категорията на предложението %{resource_title} беше актуализирана
314
313
  notification_title: Категорията на предложението <a href="%{resource_path}">%{resource_title}</a> беше актуализирана от администратор.
315
314
  proposal_update_scope:
316
315
  email_intro: 'Администратор актуализира обхвата на Вашето предложение „%{resource_title}“. Вижте повече на тази страница:'
317
- email_outro: Получавате това известие, защото сте авторът на предложението.
318
316
  email_subject: Обхватът на предложението %{resource_title} беше актуализиран
319
317
  notification_title: Обхватът на предложението <a href="%{resource_path}">%{resource_title}</a> беше актуализиран от администратор.
320
318
  voting_enabled:
@@ -376,7 +374,6 @@ bg:
376
374
  title: Гласове
377
375
  participatory_spaces:
378
376
  highlighted_proposals:
379
- last: Позледни предложения
380
377
  see_all: Виж всички предложения
381
378
  proposals:
382
379
  actions:
@@ -514,7 +511,6 @@ bg:
514
511
  index:
515
512
  actions: Активности
516
513
  assign_to_valuator: Възлагане на оценител
517
- assign_to_valuator_button: Възлагане
518
514
  cancel: Отказ
519
515
  change_category: Промяна на категория
520
516
  change_scope: Промяна на обхвата
@@ -530,7 +526,6 @@ bg:
530
526
  statuses: Статуси
531
527
  title: Предложения
532
528
  unassign_from_valuator: Отнемане възложеното на оценителя
533
- unassign_from_valuator_button: Отнемане на възложеното
534
529
  update: Актуализация
535
530
  update_scope_button: Актуализиране на обхвата
536
531
  new:
@@ -571,7 +566,6 @@ bg:
571
566
  proposals_imports:
572
567
  create:
573
568
  invalid: Възникна проблем при импортирането на предложенията.
574
- success: "%{number} предложения бяха импортирани успешно."
575
569
  new:
576
570
  create: Импортиране на предложения
577
571
  no_components: Няма други компоненти на предложения в това пространство за участие, от които да се импортират предложенията.
@@ -660,7 +654,7 @@ bg:
660
654
  open: Отворен
661
655
  published: Публикувано
662
656
  related_to: Свързано с
663
- scope: Обхват
657
+ scope: Сфера
664
658
  search: Търсене
665
659
  state: Статус
666
660
  withdrawn: Оттеглено
@@ -746,7 +740,7 @@ bg:
746
740
  official_proposal: Официално предложение
747
741
  published_answer: Публикуван отговор
748
742
  published_at: Публикувано на
749
- scope: Обхват
743
+ scope: Сфера
750
744
  state: Статус
751
745
  title: Заглавие
752
746
  valuator: Оценител
@@ -810,7 +804,6 @@ bg:
810
804
  text_banner: Разглеждате списъка с предложения, оттеглени от своите автори. %{go_back_link}.
811
805
  new:
812
806
  send: Продължи
813
- title: Създайте Ваше предложение
814
807
  orders:
815
808
  label: 'Подреждане на предложенията по:'
816
809
  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.