decidim-budgets 0.23.1 → 0.24.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim/budgets/projects.js.es6 +30 -13
  3. data/app/cells/decidim/budgets/limit_announcement_cell.rb +2 -9
  4. data/app/cells/decidim/budgets/project_list_item/project_data_vote_button.erb +1 -0
  5. data/app/cells/decidim/budgets/project_list_item_cell.rb +4 -0
  6. data/app/commands/decidim/budgets/admin/import_proposals_to_budgets.rb +8 -1
  7. data/app/controllers/decidim/budgets/admin/budgets_controller.rb +22 -1
  8. data/app/controllers/decidim/budgets/orders_controller.rb +1 -1
  9. data/app/forms/decidim/budgets/admin/component_form.rb +57 -10
  10. data/app/forms/decidim/budgets/admin/project_form.rb +3 -2
  11. data/app/forms/decidim/budgets/admin/project_import_proposals_form.rb +11 -0
  12. data/app/helpers/decidim/budgets/projects_helper.rb +45 -1
  13. data/app/models/decidim/budgets/order.rb +96 -19
  14. data/app/permissions/decidim/budgets/admin/permissions.rb +1 -1
  15. data/app/views/decidim/budgets/admin/budgets/index.html.erb +22 -5
  16. data/app/views/decidim/budgets/admin/projects/index.html.erb +13 -6
  17. data/app/views/decidim/budgets/admin/proposals_imports/new.html.erb +6 -1
  18. data/app/views/decidim/budgets/projects/_budget_excess.html.erb +2 -2
  19. data/app/views/decidim/budgets/projects/_budget_summary.html.erb +32 -12
  20. data/app/views/decidim/budgets/projects/_filters_small_view.html.erb +1 -1
  21. data/app/views/decidim/budgets/projects/_order_progress.html.erb +1 -1
  22. data/app/views/decidim/budgets/projects/_order_total_budget.html.erb +5 -1
  23. data/app/views/decidim/budgets/projects/show.html.erb +6 -4
  24. data/config/locales/ar.yml +2 -5
  25. data/config/locales/ca.yml +36 -8
  26. data/config/locales/cs.yml +37 -9
  27. data/config/locales/de.yml +66 -27
  28. data/config/locales/el.yml +2 -6
  29. data/config/locales/en.yml +35 -7
  30. data/config/locales/es-MX.yml +35 -7
  31. data/config/locales/es-PY.yml +35 -7
  32. data/config/locales/es.yml +35 -7
  33. data/config/locales/eu.yml +4 -5
  34. data/config/locales/fi-plain.yml +34 -6
  35. data/config/locales/fi.yml +34 -6
  36. data/config/locales/fr-CA.yml +36 -7
  37. data/config/locales/fr.yml +36 -7
  38. data/config/locales/gl.yml +71 -6
  39. data/config/locales/hu.yml +2 -5
  40. data/config/locales/id-ID.yml +2 -5
  41. data/config/locales/is-IS.yml +2 -4
  42. data/config/locales/it.yml +2 -6
  43. data/config/locales/ja.yml +3 -7
  44. data/config/locales/lv.yml +2 -6
  45. data/config/locales/nl.yml +49 -7
  46. data/config/locales/no.yml +4 -6
  47. data/config/locales/pl.yml +42 -13
  48. data/config/locales/pt-BR.yml +2 -5
  49. data/config/locales/pt.yml +2 -6
  50. data/config/locales/ro-RO.yml +2 -6
  51. data/config/locales/ru.yml +2 -5
  52. data/config/locales/si-LK.yml +1 -0
  53. data/config/locales/sk.yml +2 -6
  54. data/config/locales/sr-CS.yml +0 -2
  55. data/config/locales/sv.yml +26 -7
  56. data/config/locales/sw-KE.yml +1 -0
  57. data/config/locales/tr-TR.yml +179 -31
  58. data/config/locales/uk.yml +2 -5
  59. data/config/locales/zh-CN.yml +2 -7
  60. data/db/migrate/20200804175222_votes_enabled_to_votes_choices.rb +4 -4
  61. data/lib/decidim/api/budget_type.rb +21 -0
  62. data/lib/decidim/api/budgets_type.rb +26 -0
  63. data/lib/decidim/api/project_type.rb +23 -0
  64. data/lib/decidim/budgets.rb +2 -0
  65. data/lib/decidim/budgets/api.rb +9 -0
  66. data/lib/decidim/budgets/component.rb +31 -14
  67. data/lib/decidim/budgets/project_serializer.rb +81 -0
  68. data/lib/decidim/budgets/test/factories.rb +35 -1
  69. data/lib/decidim/budgets/version.rb +1 -1
  70. data/lib/decidim/budgets/workflows/all.rb +1 -1
  71. data/lib/decidim/budgets/workflows/base.rb +3 -3
  72. data/lib/decidim/budgets/workflows/one.rb +1 -1
  73. metadata +26 -22
  74. data/app/types/decidim/budgets/budget_type.rb +0 -24
  75. data/app/types/decidim/budgets/budgets_type.rb +0 -32
  76. data/app/types/decidim/budgets/project_type.rb +0 -26
@@ -0,0 +1 @@
1
+ sw:
@@ -1,16 +1,24 @@
1
1
  tr:
2
2
  activemodel:
3
3
  attributes:
4
+ budget:
5
+ decidim_scope_id: Kapsam
6
+ description: Açıklama
7
+ title: Başlık
8
+ total_budget: Toplam bütçe
9
+ weight: Ağırlık
4
10
  project:
11
+ budget_amount: Bütçe tutarı
5
12
  decidim_category_id: Kategori
6
- decidim_scope_id: kapsam
13
+ decidim_scope_id: Kapsam
7
14
  description: Açıklama
8
15
  proposal_ids: İlgili teklifler
16
+ selected: Uygulama için seçildi
9
17
  title: Başlık
10
18
  activerecord:
11
19
  models:
12
20
  decidim/budgets/project:
13
- one: proje
21
+ one: Proje
14
22
  other: Projeler
15
23
  decidim:
16
24
  budgets:
@@ -18,13 +26,37 @@ tr:
18
26
  attachment_collections: Klasörler
19
27
  attachments: Ekler
20
28
  confirm_destroy: Bu projeyi silmek istediğinize emin misiniz?
21
- destroy: silmek
29
+ destroy: Sil
22
30
  edit: Düzenle
23
- import: Projelere teklif alma
24
- preview: Ön izleme
31
+ edit_projects: Projeleri Yönet
32
+ import: Teklifleri projelere aktarın
33
+ new: Yeni %{name}
34
+ preview: Önizleme
25
35
  title: Eylemler
26
36
  admin:
37
+ budgets:
38
+ create:
39
+ invalid: Bu bütçe oluşturulurken bir sorunla karşılaşıldı
40
+ success: Bütçe başarıyla oluşturuldu
41
+ destroy:
42
+ invalid: Bu bütçe silinirken bir sorun oluştu
43
+ success: Bütçe başarıyla silindi
44
+ edit:
45
+ title: Bütçeyi düzenle
46
+ update: Bütçeyi güncelle
47
+ index:
48
+ title: Bütçeler
49
+ new:
50
+ create: Bütçe oluştur
51
+ title: Yeni bütçe
52
+ update:
53
+ invalid: Bu bütçe güncellenirken bir sorunla karşılaşıldı
54
+ success: Bütçe başarıyla güncellendi
55
+ exports:
56
+ projects: Projeler
27
57
  models:
58
+ budget:
59
+ name: Bütçe
28
60
  project:
29
61
  name: proje
30
62
  projects:
@@ -35,45 +67,87 @@ tr:
35
67
  success: Proje başarıyla silindi
36
68
  edit:
37
69
  title: Projeyi düzenle
38
- update: Güncelleştirme
70
+ update: Güncelle
39
71
  index:
40
72
  finished_orders: Tamamlanan oylar
41
73
  pending_orders: Bekleyen oylar
74
+ selected: Seçili
42
75
  title: Projeler
43
76
  new:
44
- create: yaratmak
77
+ create: Oluştur
45
78
  title: Yeni proje
46
79
  update:
47
80
  invalid: Bu projeyi güncellerken bir sorun oluştu
48
81
  success: Proje başarıyla güncellendi
49
82
  proposals_imports:
50
83
  create:
51
- invalid: Teklifleri projelere içe aktarırken bir sorun oluştu
52
- success: "%{number} teklif başarıyla projelere aktarıldı"
84
+ invalid: Teklifleri projelere aktarırken bir sorun oluştu
85
+ success: "%{number} adet teklif başarıyla projelere aktarıldı"
53
86
  new:
54
- create: Projelere teklif alma
87
+ create: Teklifleri projelere aktarın
55
88
  no_components: Bu katılımcı alanda teklifleri projelere aktarmak için başka bir teklif bileşeni yoktur.
56
89
  select_component: Lütfen bir bileşen seçin
90
+ title: Teklifleri içe aktar
57
91
  admin_log:
92
+ budget:
93
+ create: "%{user_name}, %{space_name} alanında %{resource_name} bütçesini oluşturdu"
94
+ delete: "%{user_name}, %{space_name} alanında %{resource_name} bütçesini sildi"
95
+ update: "%{user_name}, %{space_name} alanında %{resource_name} bütçesini güncelledi"
58
96
  project:
59
- create: "%{user_name} , %{space_name} alanda %{resource_name} proje yarattı"
60
- delete: "%{user_name} , %{space_name} uzayda %{resource_name} projeyi sildi"
61
- update: "%{user_name} , %{space_name} uzayda %{resource_name} proje güncellendi"
97
+ create: "%{user_name}, %{space_name} alanında %{resource_name} proje yarattı"
98
+ delete: "%{user_name}, %{space_name} alanında %{resource_name} projeyi sildi"
99
+ update: "%{user_name}, %{space_name} alanında %{resource_name} projesini güncellendi"
100
+ budget:
101
+ view: Tüm bütçe projelerini görüntüleyin
102
+ budget_information_modal:
103
+ back_to: '%{component_name} öğesine geri dön'
104
+ close_modal: Pencereyi kapat
105
+ continue: Devam et
106
+ more_information: Daha fazla bilgi
107
+ budgets_list:
108
+ cancel_order:
109
+ more_than_one: '%{name} üzerindeki oyunuzu silin ve baştan başlayın'
110
+ only_one: oyunuzu silin ve baştan başlayın.
111
+ finished_message: Oylama sürecini bitirdiniz. Katıldığınız için teşekkürler!
112
+ highlighted_cta: '%{name} için oy verin'
113
+ if_change_opinion: Fikrini değiştirdiysen, yapabilirsin
114
+ my_budgets: Bütçelerim
115
+ voted_on: '%{links} linkinden oy verdiniz'
116
+ limit_announcement:
117
+ cant_vote: Bu bütçeye oy veremezsiniz. <a href="%{landing_path}"> Başka bir bütçe deneyin </a>.
118
+ limit_reached: '%{links} alanında aktif oylarınız var. Bu bütçeye oy vermek için <a href="%{landing_path}"> oyunuzu silmeli ve baştan başlamalısınız </a>.'
62
119
  models:
120
+ budget:
121
+ fields:
122
+ name: Adı
123
+ projects_count: Proje sayısı
124
+ total_budget: Toplam bütçe
63
125
  project:
64
126
  fields:
65
127
  title: Başlık
128
+ order_summary_mailer:
129
+ order_summary:
130
+ selected_projects: 'Seçtiğiniz projeler şunlardır:'
131
+ subject: '%{space_name} katılımcı alanına oy verdiniz'
132
+ voted_on_space: '%{space_name} katılımcı alanı için %{budget_name} bütçesine oy verdiniz.'
133
+ voted_on_space_with_scope: '%{scope_name} (%{scope_type}) kapsamındaki %{space_name} katılımcı alanı için %{budget_name} bütçesine oy verdiniz.'
66
134
  projects:
67
135
  budget_confirm:
68
- cancel: İptal etmek
69
- confirm: Onaylamak
136
+ are_you_sure: Fikrinizi değiştirirseniz, oyunuzu daha sonra değiştirebilirsiniz.
137
+ cancel: İptal Et
138
+ confirm: Onayla
70
139
  description: Bunlar bütçenin bir parçası olmak için seçtiğiniz projeler.
71
- title: Oylamayı onayla
140
+ title: Oyu onayla
72
141
  budget_excess:
142
+ budget_excess:
143
+ description: Bu proje maksimum bütçeyi aşıyor ve eklenemez. Dilerseniz daha önce eklemeyi seçmiş olduğunuz bir projeyi silebilir veya tercihlerinize göre oyunuzu verebilirsiniz.
144
+ title: Maksimum bütçe aşıldı
73
145
  close: Kapat
74
- description: Bu proje azami bütçeyi aşıyor ve eklenemiyor. İsterseniz, eklemek için önceden seçtiğiniz bir projeyi silebilir veya tercihlerinize oy verebilirsiniz.
75
- ok: tamam
76
- title: Maksimum bütçe aşıldı
146
+ description: Bu proje maksimum bütçeyi aşıyor ve eklenemez. Dilerseniz daha önce eklemeyi seçmiş olduğunuz bir projeyi silebilir veya tercihlerinize göre oyunuzu verebilirsiniz.
147
+ ok: TAMAM
148
+ projects_excess:
149
+ description: Bu proje maksimum proje sayısını aşıyor ve eklenemez. Dilerseniz daha önce eklemeyi seçmiş olduğunuz bir projeyi silebilir veya tercihlerinize göre oyunuzu verebilirsiniz.
150
+ title: Maksimum proje sınırını aştı
77
151
  budget_summary:
78
152
  are_you_sure: Oyunuzu iptal etmek istediğinizden emin misiniz?
79
153
  assigned: 'atanan:'
@@ -81,31 +155,71 @@ tr:
81
155
  checked_out:
82
156
  description: Bütçeye zaten oy verdiniz. Fikrinizi değiştirdiyseniz, %{cancel_link}yapabilirsiniz.
83
157
  title: Bütçe oyu tamamlandı
84
- description: Hangi projeler için bütçe ayırmamız gerektiğini düşünüyorsunuz? İstediğiniz projelere en az %{minimum_budget} atayın ve bütçeyi belirlemek için tercihleriniz doğrultusunda oy kullanın.
158
+ minimum_projects_rule:
159
+ description: Sizce hangi projeler için bütçe ayırmalıyız? Bütçeyi belirlemek için istediğiniz en az %{minimum_number} proje seçin ve tercihlerinize göre oy verin.
160
+ instruction: "<li> İstediğiniz en az %{minimum_number} proje seçin ve bütçeyi belirlemek için tercihlerinize göre oylayın. </li>"
161
+ projects_rule:
162
+ description: Sizce hangi projeler için bütçe ayırmalıyız? İstediğiniz en az %{minimum_number} ve en fazla %{maximum_number} proje seçin ve bütçeyi belirlemek için tercihlerinize göre oy verin.
163
+ instruction: "<li> İstediğiniz en az %{minimum_number} ve en fazla %{maximum_number} proje seçin ve bütçeyi belirlemek için tercihlerinize göre oylayın. </li>"
164
+ projects_rule_maximum_only:
165
+ description: Sizce hangi projeler için bütçe ayırmalıyız? İstediğiniz en fazla %{maximum_number} proje seçin ve bütçeyi belirlemek için tercihlerinize göre oylayın.
166
+ instruction: "<li> İstediğiniz en fazla %{maximum_number} proje seçin ve bütçeyi belirlemek için tercihlerinize göre oylayın. </li>"
167
+ rules:
168
+ title: Bütçe kuralları
85
169
  title: Bütçeye siz karar verin
170
+ total_budget: Toplam bütçe
171
+ total_projects: Toplam Oy
172
+ vote_threshold_percent_rule:
173
+ description: Sizce hangi projeler için bütçe ayırmalıyız? Bütçeyi belirlemek için istediğiniz projelere en az %{minimum_budget} atayın ve tercihlerinize göre oy verin.
174
+ instruction: "<li> İstediğiniz projelere en az %{minimum_budget} atayın ve bütçeyi belirlemek için tercihlerinize göre oy verin. </li>"
86
175
  count:
87
176
  projects_count:
88
177
  one: 1 proje
89
178
  other: "%{count} proje"
90
179
  filters:
91
180
  category: Kategori
92
- scope: kapsam
181
+ scope: Kapsam
93
182
  search: Arama
183
+ status: Durum
184
+ status_values:
185
+ all: Tümü
186
+ not_selected: Seçili değil
187
+ selected: Seçili
94
188
  filters_small_view:
95
- close_modal: Kalıcı modal
96
- filter: filtre
97
- filter_by: Tarafından filtre
98
- unfold: açılmak
189
+ close_modal: Pencereyi kapat
190
+ filter: Filtrele
191
+ filter_by: Şuna göre filtrele
192
+ unfold:
99
193
  order_progress:
100
- vote: Oy
194
+ vote: Oy ver
101
195
  order_selected_projects:
102
196
  remove: Kaldır
103
197
  selected_projects:
104
- one: proje seçildi
198
+ one: seçilen proje
105
199
  other: seçilen projeler
106
200
  view: Görünüm
201
+ orders:
202
+ highest_cost: En yüksek maliyet
203
+ label: Projeleri buna göre sırala
204
+ lowest_cost: En düşük maliyet
205
+ most_voted: En çok oylanan
206
+ random: Rasgele sırala
207
+ selected: Seçili
107
208
  project:
209
+ add: Oyunuza %{resource_name} projesini ekleyin
210
+ remove: '%{resource_name} projesini oyunuzdan çıkarın'
211
+ selected: Seçili
108
212
  view: Görünüm
213
+ votes:
214
+ one: oy
215
+ other: oylar
216
+ you_voted: Buna oy verdin
217
+ project_budget_button:
218
+ add: Oyunuza ekleyin
219
+ add_descriptive: Oyunuza %{resource_name} projesini ekleyin
220
+ added: Oyunuza eklendi
221
+ added_descriptive: '%{resource_name} projesi oyunuza eklendi'
222
+ projects_for: '%{name} için projeler'
109
223
  show:
110
224
  budget: Bütçe
111
225
  view_all_projects: Tüm projeleri görüntüle
@@ -116,18 +230,53 @@ tr:
116
230
  name: Bütçeler
117
231
  settings:
118
232
  global:
119
- announcement: duyuru
233
+ announcement: Duyurular
120
234
  comments_enabled: Yorumlar etkin
235
+ comments_max_length: Maksimum yorum uzunluğu (Varsayılan değer için 0 bırakın)
236
+ form:
237
+ errors:
238
+ budget_voting_rule_only_one: Yalnızca bir oylama kuralı etkinleştirilmelidir
239
+ budget_voting_rule_required: Bir oylama kuralı gerekli
240
+ landing_page_content: Bütçeler ana sayfası
241
+ more_information_modal: Daha fazla bilgi
121
242
  projects_per_page: Sayfa başına projeler
122
- resources_permissions_enabled: Her toplantı için eylem izinleri ayarlanabilir
243
+ resources_permissions_enabled: Her proje için eylem izinleri ayarlanabilir
244
+ scope_id: Kapsam
245
+ scopes_enabled: Kapsamlar etkinleştirildi
246
+ title: Başlık
123
247
  total_budget: Toplam bütçe
248
+ vote_minimum_budget_projects_number: Oy verilecek minimum proje sayısı
249
+ vote_rule_minimum_budget_projects_enabled: 'Kuralı etkinleştir: Oylanacak minimum proje sayısı'
250
+ vote_rule_selected_projects_enabled: 'Kuralı etkinleştir: Oylanacak minimum ve maksimum sayıda projeye sahip seçilen projeler'
251
+ vote_rule_threshold_percent_enabled: 'Kuralı etkinleştir: Minimum bütçe yüzdesi'
252
+ vote_selected_projects_maximum: Seçilecek maksimum proje sayısı
253
+ vote_selected_projects_minimum: Seçilecek minimum proje sayısı
124
254
  vote_threshold_percent: Oy eşiği yüzde
255
+ workflow: İş Akışı
256
+ workflow_choices:
257
+ all: 'Hepsinde oy ver: Katılımcıların tüm bütçelerde oy kullanmasına olanak tanır.'
258
+ one: 'Birinde oy verin: Katılımcıların herhangi bir bütçede, ancak yalnızca bir bütçede oy kullanmasına izin verir.'
125
259
  step:
126
- announcement: duyuru
260
+ announcement: Duyuru
127
261
  comments_blocked: Yorumlar engellendi
262
+ highlighted_heading: Vurgulanan başlık
263
+ landing_page_content: Bütçeler ana sayfası
264
+ list_heading: Liste başlığı
265
+ more_information_modal: Daha fazla bilgi
128
266
  show_votes: Oyları göster
267
+ title: Başlık
268
+ votes: Oylama
129
269
  votes_choices:
270
+ disabled: Oylama devre dışı
130
271
  enabled: Oylama etkin
272
+ finished: Oylama bitti
273
+ events:
274
+ budgets:
275
+ budget_published:
276
+ email_intro: '%{resource_title} bütçesi artık %{participatory_space_title} için aktif. Bu sayfadan görebilirsiniz:'
277
+ email_outro: Bu bildirimi, %{participatory_space_title} adlı kişiyi takip ettiğiniz için aldınız. Önceki bağlantıyı izleyerek bildirim almayı durdurabilirsiniz.
278
+ email_subject: '%{resource_title} bütçesi artık %{participatory_space_title} için aktif.'
279
+ notification_title: <a href="%{resource_path}">%{resource_title} </a> bütçesi artık %{participatory_space_title} için aktif.
131
280
  orders:
132
281
  checkout:
133
282
  error: Oyunuzu işleme koymada bir sorun oluştu
@@ -140,4 +289,3 @@ tr:
140
289
  project_proposal: 'Bu projede yer alan teklifler:'
141
290
  index:
142
291
  confirmed_orders_count: Oy sayısı
143
- total_budget: Toplam bütçe
@@ -72,10 +72,10 @@ uk:
72
72
  description: Ось проекти, які ви обрали складовими бюджету.
73
73
  title: Підтвердьте голос
74
74
  budget_excess:
75
+ budget_excess:
76
+ title: Перевищено граничний бюджет
75
77
  close: Закрити
76
- description: Додавання цього проекту перевищить максимальний бюджет, і тому його не можна зараз додати. За бажанням ви можете видалити якийсь з тих проектів, що ви раніше вибрали для додавання, або проголосувати згідно ваших уподобань.
77
78
  ok: Гаразд
78
- title: Перевищено граничний бюджет
79
79
  budget_summary:
80
80
  are_you_sure: Ви дійсно бажаєте скасувати ваш голос?
81
81
  assigned: 'Надано:'
@@ -83,7 +83,6 @@ uk:
83
83
  checked_out:
84
84
  description: Ви вже проголосували за бюджет. Якщо ви змінили свою думку, ви можете %{cancel_link}.
85
85
  title: Голосування щодо бюджету завершено
86
- description: На які проекти, на вашу думку, ми маємо виділити кошти? Надавайте принаймні %{minimum_budget} бажаним для вас проектам та голосуйте згідно своїх уподобань, щоб визначити бюджет.
87
86
  title: Ви визначаєте бюджет
88
87
  count:
89
88
  projects_count:
@@ -125,7 +124,6 @@ uk:
125
124
  announcement: Оголошення
126
125
  comments_enabled: Коментарі увімкнено
127
126
  projects_per_page: Проектів на сторінку
128
- resources_permissions_enabled: Для кожної зустрічі можна встановити ті чи інші дозволи на дії
129
127
  total_budget: Загальний бюджет
130
128
  vote_threshold_percent: Мінімальний відсоток бюджету для голосування
131
129
  step:
@@ -146,4 +144,3 @@ uk:
146
144
  project_proposal: 'Пропозиції, включені до цього проекту:'
147
145
  index:
148
146
  confirmed_orders_count: Кількість голосів
149
- total_budget: Загальний бюджет
@@ -133,10 +133,10 @@ zh-CN:
133
133
  description: 这些是你选择作为预算一部分的项目。
134
134
  title: 确认投票
135
135
  budget_excess:
136
+ budget_excess:
137
+ title: 超出最大预算
136
138
  close: 关闭
137
- description: 此项目超出了最大预算,无法添加。 如果你想要,你可以删除一个你已经选择添加的项目,或者选择你的首选项投票。
138
139
  ok: 好的
139
- title: 超出最大预算
140
140
  budget_summary:
141
141
  are_you_sure: 您确定要取消您的投票吗?
142
142
  assigned: '已指派:'
@@ -144,8 +144,6 @@ zh-CN:
144
144
  checked_out:
145
145
  description: 您已经投票给了预算。如果您改变了主意,您可以 %{cancel_link}。
146
146
  title: 预算投票完成
147
- description: 你认为我们应该为哪些项目分配预算? 给您想要的项目分配至少 %{minimum_budget} ,并且以您的首选项投票来定义预算。
148
- description_minimum_projects_rule: 你认为我们应该为哪些项目分配预算? 选择至少 %{minimum_number} 个项目,您想要并以您的首选项投票来定义预算。
149
147
  title: 您决定预算
150
148
  count:
151
149
  projects_count:
@@ -185,7 +183,6 @@ zh-CN:
185
183
  view: 查看
186
184
  votes:
187
185
  other: 投票
188
- you_voted: 您投票了
189
186
  project_budget_button:
190
187
  add: 添加到您的投票
191
188
  add_descriptive: 将项目 %{resource_name} 添加到您的投票
@@ -212,7 +209,6 @@ zh-CN:
212
209
  landing_page_content: 预算登陆页
213
210
  more_information_modal: 更多信息模式
214
211
  projects_per_page: 每页项目数
215
- resources_permissions_enabled: 每次会议都可以设置动作权限
216
212
  scope_id: 范围
217
213
  scopes_enabled: 范围已启用
218
214
  title: 标题
@@ -257,4 +253,3 @@ zh-CN:
257
253
  project_proposal: '本项目中的建议:'
258
254
  index:
259
255
  confirmed_orders_count: 所得票数
260
- total_budget: 预算总额
@@ -7,12 +7,12 @@ class VotesEnabledToVotesChoices < ActiveRecord::Migration[5.2]
7
7
 
8
8
  def up
9
9
  budget_components.each do |component|
10
- steps = component["settings"] && component["settings"].dig("steps")
11
- default_step = component["settings"] && component["settings"].dig("default_step")
10
+ steps = component["settings"] && component["settings"]["steps"]
11
+ default_step = component["settings"] && component["settings"]["default_step"]
12
12
 
13
13
  if steps.present?
14
14
  new_steps_settings = component["settings"]["steps"].each_with_object({}) do |(step, config), new_config|
15
- votes_value = config.dig("votes_enabled") ? "enabled" : "disabled"
15
+ votes_value = config["votes_enabled"] ? "enabled" : "disabled"
16
16
 
17
17
  new_config[step] = config.merge("votes": votes_value).except("votes_enabled")
18
18
  new_config
@@ -20,7 +20,7 @@ class VotesEnabledToVotesChoices < ActiveRecord::Migration[5.2]
20
20
  component["settings"]["steps"] = new_steps_settings
21
21
  component.save!
22
22
  elsif default_step.present?
23
- votes_value = component["settings"]["default_step"].dig("votes_enabled") ? "enabled" : "disabled"
23
+ votes_value = component["settings"]["default_step"]["votes_enabled"] ? "enabled" : "disabled"
24
24
 
25
25
  new_default_step_settings = component["settings"]["default_step"].merge("votes": votes_value).except("votes_enabled")
26
26
  component["settings"]["default_step"] = new_default_step_settings
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Budgets
5
+ class BudgetType < Decidim::Api::Types::BaseObject
6
+ implements Decidim::Core::ScopableInterface
7
+ implements Decidim::Core::TraceableInterface
8
+
9
+ description "A budget"
10
+
11
+ field :id, GraphQL::Types::ID, "The internal ID of this budget", null: false
12
+ field :title, Decidim::Core::TranslatedFieldType, "The title for this budget", null: false
13
+ field :description, Decidim::Core::TranslatedFieldType, "The description for this budget", null: false
14
+ field :total_budget, GraphQL::Types::Int, "The total budget", null: false, camelize: false
15
+ field :created_at, Decidim::Core::DateTimeType, "When this budget was created", null: true
16
+ field :updated_at, Decidim::Core::DateTimeType, "When this budget was updated", null: true
17
+
18
+ field :projects, [Decidim::Budgets::ProjectType, { null: true }], "The projects for this budget", null: false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Budgets
5
+ class BudgetsType < Decidim::Api::Types::BaseObject
6
+ implements Decidim::Core::ComponentInterface
7
+
8
+ graphql_name "Budgets"
9
+ description "A budget component of a participatory space."
10
+
11
+ field :budgets, Decidim::Budgets::BudgetType.connection_type, null: true, connection: true
12
+
13
+ def budgets
14
+ Budget.where(component: object).includes(:component)
15
+ end
16
+
17
+ field :budget, Decidim::Budgets::BudgetType, null: true do
18
+ argument :id, GraphQL::Types::ID, required: true
19
+ end
20
+
21
+ def budget(**args)
22
+ Budget.where(component: object).find_by(id: args[:id])
23
+ end
24
+ end
25
+ end
26
+ end