decidim-budgets 0.28.0.rc5 → 0.28.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/budgets/base_cell.rb +1 -1
  3. data/app/cells/decidim/budgets/budget_list_item/show.erb +1 -1
  4. data/app/controllers/decidim/budgets/admin/projects_controller.rb +3 -2
  5. data/app/controllers/decidim/budgets/line_items_controller.rb +15 -9
  6. data/app/helpers/decidim/budgets/projects_helper.rb +1 -1
  7. data/app/packs/src/decidim/budgets/exit_handler.js +1 -1
  8. data/app/views/decidim/budgets/admin/budgets/edit.html.erb +2 -2
  9. data/app/views/decidim/budgets/admin/budgets/index.html.erb +8 -4
  10. data/app/views/decidim/budgets/admin/budgets/new.html.erb +2 -2
  11. data/app/views/decidim/budgets/admin/projects/_project-tr.html.erb +6 -4
  12. data/app/views/decidim/budgets/admin/projects/edit.html.erb +3 -3
  13. data/app/views/decidim/budgets/admin/projects/index.html.erb +8 -6
  14. data/app/views/decidim/budgets/admin/projects/new.html.erb +3 -3
  15. data/app/views/decidim/budgets/admin/proposals_imports/new.html.erb +2 -2
  16. data/config/locales/ar.yml +7 -0
  17. data/config/locales/ca.yml +4 -1
  18. data/config/locales/cs.yml +3 -0
  19. data/config/locales/de.yml +5 -2
  20. data/config/locales/en.yml +3 -0
  21. data/config/locales/es-MX.yml +3 -0
  22. data/config/locales/es-PY.yml +3 -0
  23. data/config/locales/es.yml +4 -1
  24. data/config/locales/eu.yml +3 -0
  25. data/config/locales/fi-plain.yml +3 -0
  26. data/config/locales/fi.yml +3 -0
  27. data/config/locales/fr-CA.yml +6 -0
  28. data/config/locales/fr.yml +6 -0
  29. data/config/locales/he-IL.yml +1 -0
  30. data/config/locales/hu.yml +12 -0
  31. data/config/locales/ja.yml +6 -0
  32. data/config/locales/ko.yml +57 -0
  33. data/config/locales/pl.yml +151 -0
  34. data/config/locales/pt-BR.yml +70 -0
  35. data/config/locales/ru.yml +3 -0
  36. data/config/locales/sk.yml +3 -0
  37. data/config/locales/sq-AL.yml +50 -0
  38. data/config/locales/uk.yml +2 -0
  39. data/decidim-budgets.gemspec +41 -0
  40. data/lib/decidim/budgets/test/factories.rb +29 -14
  41. data/lib/decidim/budgets/version.rb +1 -1
  42. metadata +22 -21
  43. data/config/environment.rb +0 -3
@@ -14,8 +14,11 @@ pl:
14
14
  decidim_scope_id: Zakres
15
15
  description: Opis
16
16
  proposal_ids: Powiązane propozycje
17
+ proposals: Propozycje
17
18
  selected: Wybrane do implementacji
18
19
  title: Tytuł
20
+ proposals_import:
21
+ scope_id: Zakres
19
22
  activerecord:
20
23
  models:
21
24
  decidim/budgets/project:
@@ -24,6 +27,18 @@ pl:
24
27
  many: Projektów
25
28
  other: Projektów
26
29
  decidim:
30
+ admin:
31
+ filters:
32
+ projects:
33
+ category_id_eq:
34
+ label: Kategoria
35
+ scope_id_eq:
36
+ label: Zakres
37
+ selected_at_null:
38
+ label: Wybrane
39
+ values:
40
+ 'false': Wybrane do wykonania
41
+ 'true': Nie wybrano do implementacji
27
42
  budgets:
28
43
  actions:
29
44
  attachment_collections: Foldery
@@ -33,10 +48,19 @@ pl:
33
48
  edit: Edytuj
34
49
  edit_projects: Zarządzaj budżetem
35
50
  import: Importuj propozycje do projektów
51
+ new_budget: Nowy budżet
52
+ new_project: Nowy projekt
36
53
  preview: Podgląd
54
+ send_voting_reminders: Wyślij przypomnienia o głosowaniu
37
55
  title: Działania
38
56
  admin:
39
57
  budgets:
58
+ create:
59
+ invalid: Podczas tworzenia tego budżetu wystąpił błąd.
60
+ success: Budżet został utworzony.
61
+ destroy:
62
+ invalid: Wystąpił błąd podczas usuwania budżetu.
63
+ success: Budżet został usunięty.
40
64
  edit:
41
65
  title: Edytuj budżet
42
66
  update: Aktualizuj budżet
@@ -49,6 +73,9 @@ pl:
49
73
  new:
50
74
  create: Utwórz budżet
51
75
  title: Nowy budżet
76
+ update:
77
+ invalid: Podczas aktualizowania budżetu wystąpił błąd.
78
+ success: Budżet został zaktualizowany.
52
79
  exports:
53
80
  projects: Projekty
54
81
  models:
@@ -57,23 +84,77 @@ pl:
57
84
  project:
58
85
  name: Projekt
59
86
  projects:
87
+ create:
88
+ invalid: Podczas tworzenia tego projektu wystąpił błąd.
89
+ success: Projekt został utworzony.
90
+ destroy:
91
+ success: Projekt został usunięty.
60
92
  edit:
61
93
  title: Edytuj projekt
62
94
  update: Aktualizuj
63
95
  index:
96
+ actions: Działania
97
+ cancel: Anuluj
98
+ change_budget: Zmień budżet
99
+ change_category: Zmień kategorię
100
+ change_scope: Zmień zakres
64
101
  change_selected: Zmień wybrany status
102
+ deselect_implementation: Odznacz ze wdrożenia
65
103
  finished_orders: Ukończone głosowania
66
104
  pending_orders: Głosowania oczekujące
105
+ select_for_implementation: Zaznacz do wdrożenia
67
106
  selected: Wybrano
107
+ selected_options:
108
+ 'no': 'Nie'
109
+ 'yes': 'Tak'
68
110
  title: Projekty
111
+ update: Aktualizuj
112
+ update_budget_button: Aktualizuj budżet projektu
113
+ update_scope_button: Aktualizuj zakres
69
114
  new:
70
115
  create: Utwórz
71
116
  title: Nowy projekt
117
+ update:
118
+ invalid: Podczas aktualizacji tego projektu wystąpił błąd.
119
+ success: Zaktualizowano projekt.
120
+ update_budget:
121
+ invalid: 'Te projekty są już w tym samym budżecie lub ich budżety są większe niż maksymalny dozwolony: %{projects}.'
122
+ select_a_project: Proszę wybrać projekt.
123
+ success: 'Projekty zaktualizowane do budżetu o nazwie %{subject_name}: %{projects}.'
124
+ update_category:
125
+ invalid: 'Te projekty już miały kategorię %{subject_name}: %{projects}.'
126
+ select_a_category: Proszę wybrać kategorię.
127
+ select_a_project: Proszę wybrać projekt.
128
+ success: 'Projekty zostały zaktualizowane do kategorii %{subject_name}: %{projects}.'
129
+ update_scope:
130
+ invalid: 'Te projekty już miały zakres %{subject_name}: %{projects}.'
131
+ select_a_project: Proszę wybrać projekt.
132
+ select_a_scope: Proszę wybrać zakres.
133
+ success: 'Projekty zostały zaktualizowane do zakresu o nazwie %{subject_name}: %{projects}.'
134
+ update_selected:
135
+ invalid:
136
+ selected: 'Te projekty zostały już wybrane do wdrożenia: %{projects}.'
137
+ unselected: 'Te projekty zostały już odznaczone od wdrożenia: %{projects}.'
138
+ select_a_project: Proszę wybrać projekt.
139
+ select_a_selection: Proszę wybrać stan wdrożenia.
140
+ success:
141
+ selected: 'Te projekty zostały pomyślnie wybrane do wdrożenia: %{projects}.'
142
+ unselected: 'Te projekty zostały pomyślnie odznaczone od wdrożenia: %{projects}.'
72
143
  proposals_imports:
144
+ create:
145
+ invalid: Wystąpił błąd podczas importowania propozycji do projektów.
146
+ success: "%{number} propozycji pomyślnie zaimportowano do projektów."
73
147
  new:
74
148
  create: Importuj propozycje do projektów
149
+ default_budget: Domyślny budżet
150
+ import_all_accepted_proposals: Importuj wszystkie zaakceptowane propozycje
75
151
  no_components: W tej przestrzeni partycypacyjnej nie ma innych komponentów do zaimportowania propozycji jako projektów.
152
+ origin_component_id: Źródłowy komponent
76
153
  select_component: Wybierz komponent
154
+ title: Importuj propozycje do projektów
155
+ reminders:
156
+ orders:
157
+ description: Użytkownicy otrzymają e-mail z linkami do budżetów tam, gdzie mają oczekujące zlecenie.
77
158
  admin_log:
78
159
  budget:
79
160
  create: "%{user_name} utworzył(a) budżet %{resource_name} w przestrzeni %{space_name}"
@@ -89,13 +170,24 @@ pl:
89
170
  continue: Dalej
90
171
  more_information: Więcej informacji
91
172
  budgets_list:
173
+ budgets: Budżety
92
174
  cancel_order:
93
175
  more_than_one: usuń swój głos na %{name} i zacznij od nowa
94
176
  only_one: usuń głos i zacznij od nowa.
177
+ empty: Nie ma jeszcze żadnych budżetów
178
+ finished_message: Zakończyłeś proces głosowania. Dziękujemy za udział!
95
179
  highlighted_cta: Głosuj na %{name}
180
+ if_change_opinion: W przypadku zmiany zdania można
96
181
  progress: Zakończ głosowanie
182
+ remove_vote: Usuń głos
97
183
  show: Zobacz projekty
184
+ vote: Głos
185
+ voted_budgets: Budżety poddane pod głosowanie
186
+ voted_on: Zagłosowano na %{links}.
187
+ last_activity:
188
+ new_vote_at: Głosowanie w budżecie na
98
189
  limit_announcement:
190
+ cant_vote: Nie możesz zagłosować na ten budżet. <a href="%{landing_path}">Spróbuj wybrać inny budżet</a>.
99
191
  limit_reached: 'Masz aktywne głosy: %{links}. Aby zagłosować na ten budżet, musisz <a href="%{landing_path}">usunąć swój głos i zacząć od nowa</a>.'
100
192
  models:
101
193
  budget:
@@ -105,6 +197,8 @@ pl:
105
197
  total_budget: Całkowity budżet
106
198
  project:
107
199
  fields:
200
+ category: Kategoria
201
+ id: Identyfikator
108
202
  title: Tytuł
109
203
  order_summary_mailer:
110
204
  order_summary:
@@ -121,21 +215,32 @@ pl:
121
215
  title: Potwierdź głosowanie
122
216
  budget_excess:
123
217
  budget_excess:
218
+ description: Ten projekt przekracza maksymalny budżet i nie można go dodać. Jeśli chcesz, możesz usunąć wybrany projekt, aby móc zagłosować ponownie zgodnie ze swoimi preferencjami.
124
219
  title: Przekroczono maksymalny budżet
220
+ description: Ten projekt przekracza maksymalny budżet i nie można go dodać. Jeśli chcesz, możesz usunąć wybrany projekt, aby móc zagłosować ponownie zgodnie ze swoimi preferencjami.
125
221
  ok: ok
126
222
  projects_excess:
223
+ description: Ten projekt przekracza maksymalną ilość projektów i nie można go dodać. Jeśli chcesz, możesz usunąć wybrany projekt, aby móc zagłosować ponownie zgodnie ze swoimi preferencjami.
127
224
  title: Maksymalna liczba projektów została przekroczona
128
225
  budget_summary:
129
226
  are_you_sure: Czy na pewno chcesz anulować swój głos?
130
227
  cancel_order: usuń głos i zacznij od nowa
131
228
  checked_out:
229
+ description: Już głosowałeś/aś na budżet. Jeśli zmieniłeś/aś zdanie, możesz usunąć swój głos.
132
230
  title: Ukończono głosowanie dot. budżetu
231
+ vote: Budżet poddany pod głosowanie
133
232
  count:
134
233
  projects_count:
135
234
  one: 1 projekt
136
235
  few: "%{count} projekty"
137
236
  many: "%{count} projektów"
138
237
  other: "%{count} projektów"
238
+ empty: Nie ma jeszcze żadnych projektów
239
+ exit_modal:
240
+ cancel: Powrót do głosowania
241
+ exit: Wyjdź z głosowania
242
+ message: Twój głos nie został zarejestrowany, ponieważ nie ukończyłeś/aś jeszcze procesu głosowania. Czy na pewno chcesz zakończyć głosowanie?
243
+ title: Jeszcze nie głosowałeś/aś
139
244
  filters:
140
245
  category: Kategoria
141
246
  scope: Zakres
@@ -145,6 +250,22 @@ pl:
145
250
  all: Wszystkie
146
251
  not_selected: Nie wybrano
147
252
  selected: Wybrano
253
+ order_progress:
254
+ assigned: Przypisany
255
+ budget: Budżet
256
+ dynamic_help:
257
+ keep_adding_projects: Kontynuuj dodawanie projektów
258
+ minimum_reached: Osiągnąłeś/aś minimum, aby móc głosować
259
+ start_adding_projects: Zacznij dodawać projekty
260
+ minimum: Minimum
261
+ minimum_projects_rule:
262
+ description: Wybierz co najmniej %{minimum_number} projektów i zagłosuj zgodnie ze swoimi preferencjami w celu zdefiniowania budżetu.
263
+ projects_rule:
264
+ description: Wybierz co najmniej %{minimum_number} i maksymalnie %{maximum_number} projektów i głosuj zgodnie ze swoimi preferencjami w celu zdefiniowania budżetu.
265
+ projects_rule_maximum_only:
266
+ description: Wybierz do %{maximum_number} projektów i głosuj zgodnie ze swoimi preferencjami w celu zdefiniowania budżetu.
267
+ vote_threshold_percent_rule:
268
+ description: Przypisz co najmniej %{minimum_budget} do projektów i głosuj zgodnie ze swoimi preferencjami w celu zdefiniowania budżetu.
148
269
  orders:
149
270
  highest_cost: Najwyższy koszt
150
271
  label: Uporządkuj projekty według
@@ -153,18 +274,34 @@ pl:
153
274
  random: Kolejność losowa
154
275
  selected: Wybrano
155
276
  project:
277
+ add: Dodaj projekt %{resource_name} do swojego głosu.
278
+ remove: Usuń projekt %{resource_name} ze swojego głosu.
156
279
  selected: Wybrano
157
280
  votes:
158
281
  one: głos
159
282
  few: głosów
160
283
  many: głosów
161
284
  other: głosów
285
+ you_voted: Zagłosowałeś/aś na to
162
286
  project_budget_button:
163
287
  add: Dodaj do swojego głosu
288
+ add_descriptive: Dodaj projekt %{resource_name} do swojego głosu.
164
289
  added: Dodano do Twojego głosu
290
+ added_descriptive: Projekt %{resource_name} został dodany do Twojego głosu.
291
+ project_filter:
292
+ added: Dodano
293
+ all: Wszystkie
165
294
  projects_for: Projekty dla %{name}
295
+ select_projects: Wybierz projekty
166
296
  show:
167
297
  budget: Budżet
298
+ prompt: Wybierz budżet
299
+ vote_reminder_mailer:
300
+ vote_reminder:
301
+ email_budgets: 'Obszary, w których masz niedokończone głosowanie:'
302
+ email_intro: Rozpocząłeś(aś) głosowanie w budżecie partycypacyjnym, ale nie ukończyłeś(aś) go.
303
+ email_link: Przejdź do kontynuowania głosowania
304
+ email_outro: Pamiętaj, aby zakończyć głosowanie. Aby głosować, musisz najpierw wybrać jedną lub więcej propozycji, nad którymi chcesz głosować, a następnie potwierdzić swój głos za pomocą przycisku "Głosuj".
168
305
  components:
169
306
  budgets:
170
307
  actions:
@@ -176,6 +313,11 @@ pl:
176
313
  announcement: Ogłoszenie
177
314
  comments_enabled: Komentarze włączone
178
315
  comments_max_length: Maksymalna długość komentarzy (Pozostaw 0 dla wartości domyślnej)
316
+ form:
317
+ errors:
318
+ budget_voting_rule_only_one: Może być włączona tylko jedna reguła głosowania.
319
+ budget_voting_rule_required: Wymagana jest jedna reguła głosowania.
320
+ geocoding_enabled: Włączono geokodowanie
179
321
  landing_page_content: Strona główna budżetów
180
322
  more_information_modal: Więcej informacji
181
323
  projects_per_page: Projektów na stronie
@@ -186,6 +328,7 @@ pl:
186
328
  total_budget: Całkowity budżet
187
329
  vote_minimum_budget_projects_number: Minimalna liczba projektów, na które można głosować
188
330
  vote_rule_minimum_budget_projects_enabled: 'Włącz regułę: minimalna liczba projektów, na które można głosować'
331
+ vote_rule_selected_projects_enabled: 'Aktywuj zasadę: Minimalna liczba projektów, na które można głosować'
189
332
  vote_rule_threshold_percent_enabled: 'Włącz regułę: minimalny procent budżetu'
190
333
  vote_selected_projects_maximum: Maksymalna liczba wybranych projektów
191
334
  vote_selected_projects_minimum: Minimalna liczba wybranych projektów
@@ -215,6 +358,14 @@ pl:
215
358
  email_outro: Otrzymałeś to powiadomienie, ponieważ obserwujesz %{participatory_space_title}. Możesz przestać otrzymywać powiadomienia po kliknięciu w poprzedni link.
216
359
  email_subject: Budżet %{resource_title} jest teraz aktywny w %{participatory_space_title}.
217
360
  notification_title: Budżet <a href="%{resource_path}">%{resource_title}</a> jest teraz aktywny w %{participatory_space_title}.
361
+ orders:
362
+ checkout:
363
+ error: Podczas przetwarzania Twojego głosu wystąpił błąd.
364
+ success_html: <p>Twój głos został zaakceptowany.</p> <p class="text-sm font-normal">Możesz zobaczyć <a class="text-secondary underline" href="%{rest_of_budgets_link}">pozostałe budżety</a>.</p>
365
+ success_no_left_budgets_html: Twój głos został przyjęty.
366
+ destroy:
367
+ error: Podczas anulowania Twojego głosu wystąpił błąd.
368
+ success: Twój głos został anulowany.
218
369
  resource_links:
219
370
  included_proposals:
220
371
  project_proposal: Propozycje zawarte w tym projekcie
@@ -21,6 +21,9 @@ pt-BR:
21
21
  scope_id: Escopo
22
22
  activerecord:
23
23
  models:
24
+ decidim/budgets/budget:
25
+ one: Orçamento
26
+ other: Orçamentos
24
27
  decidim/budgets/project:
25
28
  one: Projeto
26
29
  other: Projetos
@@ -46,6 +49,8 @@ pt-BR:
46
49
  edit: Editar
47
50
  edit_projects: Gerenciar projetos
48
51
  import: Importar propostas para os projetos
52
+ new_budget: Novo orçamento
53
+ new_project: Novo projeto
49
54
  preview: Pré-visualização
50
55
  send_voting_reminders: Enviar lembretes de votação
51
56
  title: Ações
@@ -91,21 +96,63 @@ pt-BR:
91
96
  index:
92
97
  actions: Ações
93
98
  cancel: Cancelar
99
+ change_budget: Alterar orçamento
94
100
  change_category: Mudar categoria
95
101
  change_scope: Mudar escopo
96
102
  change_selected: Alterar estado selecionado
103
+ deselect_implementation: Desselecionar da implementação
97
104
  finished_orders: Votos finais
98
105
  pending_orders: Votações pendentes
106
+ select_for_implementation: Selecionado para implementação
99
107
  selected: Selecionado
108
+ selected_options:
109
+ 'no': 'Não'
110
+ 'yes': 'Sim'
100
111
  title: Projetos
112
+ update: Atualizar
113
+ update_budget_button: Atualizar orçamento do projeto
114
+ update_scope_button: Atualizar escopo
101
115
  new:
102
116
  create: Criar
103
117
  title: Novo projeto
118
+ update:
119
+ invalid: Houve um problema ao atualizar este projeto.
120
+ success: Projeto atualizado com sucesso.
121
+ update_budget:
122
+ invalid: 'Esses projetos já estão no mesmo orçamento ou seus orçamentos são mais que o máximo permitido: %{projects}.'
123
+ select_a_project: Por favor, selecione um projeto.
124
+ update_category:
125
+ invalid: 'Estes projetos já tinham a categoria %{subject_name}: %{projects}.'
126
+ select_a_category: Por favor, selecione uma categoria.
127
+ select_a_project: Por favor, selecione um projeto.
128
+ success: 'Projetos atualizados com sucesso para a categoria %{subject_name}: %{projects}.'
129
+ update_scope:
130
+ invalid: 'Estes projetos já tinham o escopo %{subject_name}: %{projects}.'
131
+ select_a_project: Por favor, selecione um projeto.
132
+ select_a_scope: Por favor, selecione um escopo.
133
+ success: 'Projetos atualizados com sucesso no scopo %{subject_name}: %{projects}.'
134
+ update_selected:
135
+ invalid:
136
+ selected: 'Estes projetos já foram selecionados para a implementação: %{projects}.'
137
+ unselected: 'Estes projetos já foram desselecionados da implementação: %{projects}.'
138
+ select_a_project: Por favor, selecione um projeto.
139
+ select_a_selection: Por favor, selecione um estado de implementação.
140
+ success:
141
+ selected: 'Estes projetos foram selecionados com sucesso para a implementação: %{projects}.'
142
+ unselected: 'Estes projetos foram desselecionados da implementação com sucesso: %{projects}.'
104
143
  proposals_imports:
105
144
  new:
106
145
  create: Importar propostas para projetos
146
+ default_budget: Orçamento padrão
107
147
  no_components: Não há outros componentes da proposta neste espaço participativo para importar as propostas para projetos.
148
+ origin_component_id: Componente de origem
108
149
  select_component: Selecione um componente
150
+ reminders:
151
+ orders:
152
+ description: Os usuários receberão um e-mail com links para os orçamentos em que tenham pedido pendente.
153
+ title:
154
+ one: Você está prestes a enviar um lembrete por email para o usuário %{count}
155
+ other: Você está prestes a enviar um lembrete por email para %{count} usuários
109
156
  admin_log:
110
157
  budget:
111
158
  create: "%{user_name} criou o orçamento %{resource_name} no espaço %{space_name}"
@@ -125,6 +172,9 @@ pt-BR:
125
172
  more_than_one: exclua seu voto em %{name} e comece de novo
126
173
  only_one: exclua seu voto e comece novamente.
127
174
  highlighted_cta: Votar em %{name}
175
+ vote: Voto
176
+ last_activity:
177
+ new_vote_at: Nova votação sobre orçamentação em
128
178
  limit_announcement:
129
179
  limit_reached: Você tem votos ativos em %{links}. Para votar neste orçamento você deve <a href="%{landing_path}">excluir seu voto e começar do zero</a>.
130
180
  models:
@@ -151,9 +201,12 @@ pt-BR:
151
201
  title: Confirmar votação
152
202
  budget_excess:
153
203
  budget_excess:
204
+ description: Este projecto excede o orçamento máximo e não pode ser adicionado. Se você quiser, você pode excluir um projeto que você já selecionou, a fim de poder votar novamente de acordo com suas preferências.
154
205
  title: O orçamento máximo excedeu
206
+ description: Este projecto excede o orçamento máximo e não pode ser adicionado. Se você quiser, você pode excluir um projeto que você já selecionou, a fim de poder votar novamente de acordo com suas preferências.
155
207
  ok: OK
156
208
  projects_excess:
209
+ description: Este projeto excede o número máximo de projetos e não pode ser adicionado. Se você quiser, você pode excluir um projeto que você já selecionou, a fim de poder votar novamente de acordo com suas preferências.
157
210
  title: Máximo de projetos excedido
158
211
  budget_summary:
159
212
  are_you_sure: Deseja mesmo cancelar o seu voto?
@@ -164,6 +217,10 @@ pt-BR:
164
217
  projects_count:
165
218
  one: 1 projeto
166
219
  other: "%{count} projetos"
220
+ exit_modal:
221
+ cancel: Voltar à votação
222
+ message: Seu voto não foi registrado porque você ainda não concluiu o processo de votação. Tem certeza que deseja sair da votação?
223
+ title: Você ainda não votou
167
224
  filters:
168
225
  category: Categoria
169
226
  scope: Âmbito
@@ -185,15 +242,26 @@ pt-BR:
185
242
  votes:
186
243
  one: voto
187
244
  other: votos
245
+ you_voted: Você votou nisto
188
246
  project_budget_button:
189
247
  add: Adicione ao seu voto
190
248
  added: Adicionado ao seu voto
191
249
  projects_for: Projetos para %{name}
192
250
  show:
193
251
  budget: Orçamento
252
+ vote_reminder_mailer:
253
+ vote_reminder:
254
+ email_budgets: 'Áreas onde você tem uma votação inacabada:'
255
+ email_intro: Você iniciou a votação sobre o orçamento participativo, mas não a concluíu.
256
+ email_link: Ir para continuar a votação
257
+ email_outro: Por favor, lembre-se de concluir a votação. Para votar, primeiro selecione a proposta ou as propostas que deseja votar e, em seguida, confirme o seu voto com o botão "Votar".
258
+ email_subject:
259
+ one: Você tem um voto inacabado na votação do orçamento participativo
260
+ other: Você tem votos inacabados na votação do orçamento participativo
194
261
  components:
195
262
  budgets:
196
263
  actions:
264
+ comment: Comentar
197
265
  vote: Voto
198
266
  name: Orçamentos
199
267
  settings:
@@ -201,6 +269,7 @@ pt-BR:
201
269
  announcement: Anúncio
202
270
  comments_enabled: Comentários ativados
203
271
  comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
272
+ geocoding_enabled: Geocoding habilitado
204
273
  landing_page_content: Página inicial dos orçamentos
205
274
  more_information_modal: Modal de mais informação
206
275
  projects_per_page: Projetos por página
@@ -211,6 +280,7 @@ pt-BR:
211
280
  total_budget: Orçamento total
212
281
  vote_minimum_budget_projects_number: Número mínimo de projetos para votar
213
282
  vote_rule_minimum_budget_projects_enabled: 'Habilitar regra: Número mínimo de projetos a serem votados em'
283
+ vote_rule_selected_projects_enabled: 'Habilitar regra: Número mínimo e máximo de projetos a serem votados'
214
284
  vote_rule_threshold_percent_enabled: 'Ativar regra: Porcentagem mínima do orçamento'
215
285
  vote_selected_projects_maximum: Quantidade máxima de projetos a serem selecionados
216
286
  vote_selected_projects_minimum: Quantidade mínima de projetos a serem selecionados
@@ -80,6 +80,9 @@ ru:
80
80
  category: Категория
81
81
  scope: Охват
82
82
  search: Поиск
83
+ project_budget_button:
84
+ add: Добавить
85
+ added: Добавлено
83
86
  show:
84
87
  budget: Бюджет
85
88
  components:
@@ -90,6 +90,9 @@ sk:
90
90
  lowest_cost: Najnižšie náklady
91
91
  most_voted: Najviac hlasov
92
92
  random: Náhodné poradie
93
+ project_budget_button:
94
+ add: Pridať
95
+ added: Pridané
93
96
  show:
94
97
  budget: Rozpočet
95
98
  components:
@@ -1 +1,51 @@
1
+ ---
1
2
  sq:
3
+ activemodel:
4
+ attributes:
5
+ budget:
6
+ decidim_scope_id: Fushëveprimi
7
+ description: Përshkrimi
8
+ title: Titulli
9
+ total_budget: Buxheti total
10
+ weight: Rendit pozicionet
11
+ project:
12
+ budget_amount: Shuma buxhetore
13
+ decidim_category_id: Kategori
14
+ decidim_scope_id: Fushëveprim
15
+ description: Përshkrimi
16
+ proposal_ids: Propozime të ngjashme
17
+ proposals: Propozimet
18
+ selected: Përzgjedhur për zbatim
19
+ title: Titulli
20
+ proposals_import:
21
+ scope_id: Fushëveprim
22
+ activerecord:
23
+ models:
24
+ decidim/budgets/project:
25
+ one: Projekt
26
+ other: Projektet
27
+ decidim:
28
+ admin:
29
+ filters:
30
+ projects:
31
+ category_id_eq:
32
+ label: Kategori
33
+ scope_id_eq:
34
+ label: Qëllimi
35
+ selected_at_null:
36
+ label: E përzgjedhur
37
+ values:
38
+ 'false': Përzgjedhur për zbatim
39
+ 'true': Nuk është përzgjedhur për zbatim
40
+ budgets:
41
+ actions:
42
+ attachment_collections: Dosjet
43
+ attachments: Bashkëngjitjet
44
+ confirm_destroy: A je i sigurt që do ta fshish këtë projekt?
45
+ destroy: Fshi
46
+ edit: Përpuno
47
+ edit_projects: Menaxho projektet
48
+ import: Importo propozimet ne projekte
49
+ new_budget: Buxhet i ri
50
+ new_project: Projekt i ri
51
+ preview: Pamje paraprake
@@ -80,6 +80,8 @@ uk:
80
80
  category: Категорія
81
81
  scope: Обсяг
82
82
  search: Шукати
83
+ project_budget_button:
84
+ added: Додано
83
85
  show:
84
86
  budget: Бюджет
85
87
  components:
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path("lib", __dir__)
4
+
5
+ # Maintain your gem's version:
6
+ require "decidim/budgets/version"
7
+
8
+ # Describe your gem and declare its dependencies:
9
+ Gem::Specification.new do |s|
10
+ s.version = Decidim::Budgets.version
11
+ s.authors = ["Josep Jaume Rey Peroy", "Marc Riera Casals", "Oriol Gual Oliva"]
12
+ s.email = ["josepjaume@gmail.com", "mrc2407@gmail.com", "oriolgual@gmail.com"]
13
+ s.license = "AGPL-3.0"
14
+ s.homepage = "https://decidim.org"
15
+ s.metadata = {
16
+ "bug_tracker_uri" => "https://github.com/decidim/decidim/issues",
17
+ "documentation_uri" => "https://docs.decidim.org/",
18
+ "funding_uri" => "https://opencollective.com/decidim",
19
+ "homepage_uri" => "https://decidim.org",
20
+ "source_code_uri" => "https://github.com/decidim/decidim"
21
+ }
22
+ s.required_ruby_version = "~> 3.1.0"
23
+
24
+ s.name = "decidim-budgets"
25
+ s.summary = "Decidim budgets module"
26
+ s.description = "A budgets component for decidim's participatory spaces."
27
+
28
+ s.files = Dir.chdir(__dir__) do
29
+ `git ls-files -z`.split("\x0").select do |f|
30
+ (File.expand_path(f) == __FILE__) ||
31
+ f.start_with?(*%w(app/ config/ db/ lib/ Rakefile README.md))
32
+ end
33
+ end
34
+
35
+ s.add_dependency "decidim-comments", Decidim::Budgets.version
36
+ s.add_dependency "decidim-core", Decidim::Budgets.version
37
+
38
+ s.add_development_dependency "decidim-admin", Decidim::Budgets.version
39
+ s.add_development_dependency "decidim-dev", Decidim::Budgets.version
40
+ s.add_development_dependency "decidim-proposals", Decidim::Budgets.version
41
+ end
@@ -9,9 +9,12 @@ require "decidim/participatory_processes/test/factories"
9
9
 
10
10
  FactoryBot.define do
11
11
  factory :budgets_component, parent: :component do
12
- name { Decidim::Components::Namer.new(participatory_space.organization.available_locales, :budgets).i18n_name }
12
+ transient do
13
+ skip_injection { false }
14
+ end
15
+ name { generate_component_name(participatory_space.organization.available_locales, :budgets, skip_injection:) }
13
16
  manifest_name { :budgets }
14
- participatory_space { create(:participatory_process, :with_steps, organization:) }
17
+ participatory_space { create(:participatory_process, :with_steps, skip_injection:, organization:) }
15
18
 
16
19
  trait :with_geocoding_enabled do
17
20
  settings do
@@ -110,10 +113,13 @@ FactoryBot.define do
110
113
  end
111
114
 
112
115
  factory :budget, class: "Decidim::Budgets::Budget" do
113
- title { generate_localized_title }
114
- description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
116
+ transient do
117
+ skip_injection { false }
118
+ end
119
+ title { generate_localized_title(:budget_title, skip_injection:) }
120
+ description { generate_localized_description(:budget_description, skip_injection:) }
115
121
  total_budget { 100_000_000 }
116
- component { create(:budgets_component) }
122
+ component { create(:budgets_component, skip_injection:) }
117
123
 
118
124
  trait :with_projects do
119
125
  transient do
@@ -121,19 +127,22 @@ FactoryBot.define do
121
127
  end
122
128
 
123
129
  after(:create) do |budget, evaluator|
124
- create_list(:project, evaluator.projects_number, budget:)
130
+ create_list(:project, evaluator.projects_number, skip_injection: evaluator.skip_injection, budget:)
125
131
  end
126
132
  end
127
133
  end
128
134
 
129
135
  factory :project, class: "Decidim::Budgets::Project" do
130
- title { generate_localized_title }
131
- description { Decidim::Faker::Localized.wrapped("<p>", "</p>") { generate_localized_title } }
136
+ transient do
137
+ skip_injection { false }
138
+ end
139
+ title { generate_localized_title(:project_title, skip_injection:) }
140
+ description { generate_localized_description(:project_description, skip_injection:) }
132
141
  address { "#{Faker::Address.street_name}, #{Faker::Address.city}" }
133
142
  latitude { Faker::Address.latitude }
134
143
  longitude { Faker::Address.longitude }
135
144
  budget_amount { Faker::Number.number(digits: 8) }
136
- budget { create(:budget) }
145
+ budget { create(:budget, skip_injection:) }
137
146
 
138
147
  trait :selected do
139
148
  selected_at { Time.current }
@@ -145,14 +154,17 @@ FactoryBot.define do
145
154
  end
146
155
 
147
156
  after :create do |project, evaluator|
148
- project.attachments = create_list(:attachment, evaluator.photos_number, :with_image, attached_to: project)
157
+ project.attachments = create_list(:attachment, evaluator.photos_number, :with_image, attached_to: project, skip_injection: evaluator.skip_injection)
149
158
  end
150
159
  end
151
160
  end
152
161
 
153
162
  factory :order, class: "Decidim::Budgets::Order" do
154
- budget { create(:budget) }
155
- user { create(:user, organization: component.organization) }
163
+ transient do
164
+ skip_injection { false }
165
+ end
166
+ budget { create(:budget, skip_injection:) }
167
+ user { create(:user, organization: component.organization, skip_injection:) }
156
168
 
157
169
  trait :with_projects do
158
170
  transient do
@@ -161,14 +173,17 @@ FactoryBot.define do
161
173
 
162
174
  after(:create) do |order, evaluator|
163
175
  project_budget = (order.maximum_budget / evaluator.projects_number).to_i
164
- order.projects << create_list(:project, evaluator.projects_number, budget_amount: project_budget, budget: order.budget)
176
+ order.projects << create_list(:project, evaluator.projects_number, budget_amount: project_budget, budget: order.budget, skip_injection: evaluator.skip_injection)
165
177
  order.save!
166
178
  end
167
179
  end
168
180
  end
169
181
 
170
182
  factory :line_item, class: "Decidim::Budgets::LineItem" do
183
+ transient do
184
+ skip_injection { false }
185
+ end
171
186
  order
172
- project { create(:project, budget: order.budget) }
187
+ project { create(:project, budget: order.budget, skip_injection:) }
173
188
  end
174
189
  end