decidim-proposals 0.29.1 → 0.29.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +11 -11
  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/controllers/concerns/decidim/proposals/admin/filterable.rb +1 -1
  6. data/app/controllers/decidim/proposals/proposals_controller.rb +4 -8
  7. data/app/forms/decidim/proposals/admin/proposal_answer_form.rb +3 -3
  8. data/app/forms/decidim/proposals/admin/proposal_form.rb +1 -1
  9. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +6 -9
  10. data/app/forms/decidim/proposals/admin/valuation_assignment_form.rb +4 -1
  11. data/app/helpers/decidim/proposals/admin/proposal_bulk_actions_helper.rb +1 -1
  12. data/app/helpers/decidim/proposals/map_helper.rb +1 -1
  13. data/app/models/decidim/proposals/proposal.rb +2 -6
  14. data/app/packs/stylesheets/decidim/proposals/proposals.scss +1 -5
  15. data/app/permissions/decidim/proposals/permissions.rb +4 -3
  16. data/app/services/decidim/proposals/collaborative_draft_diff_renderer.rb +22 -0
  17. data/app/services/decidim/proposals/diff_renderer.rb +2 -0
  18. data/app/services/decidim/proposals/proposal_builder.rb +1 -1
  19. data/app/views/decidim/proposals/admin/proposals/index.html.erb +2 -2
  20. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +2 -2
  21. data/app/views/decidim/proposals/proposals/index.html.erb +1 -1
  22. data/app/views/decidim/proposals/proposals/index.js.erb +12 -0
  23. data/app/views/decidim/proposals/proposals/show.html.erb +1 -1
  24. data/config/locales/ar.yml +1 -3
  25. data/config/locales/bg.yml +5 -7
  26. data/config/locales/bn-BD.yml +1 -0
  27. data/config/locales/bs-BA.yml +100 -0
  28. data/config/locales/ca.yml +5 -5
  29. data/config/locales/cs.yml +19 -5
  30. data/config/locales/de.yml +7 -7
  31. data/config/locales/el.yml +3 -5
  32. data/config/locales/es-MX.yml +8 -8
  33. data/config/locales/es-PY.yml +3 -3
  34. data/config/locales/es.yml +8 -8
  35. data/config/locales/eu.yml +93 -86
  36. data/config/locales/fi-plain.yml +7 -7
  37. data/config/locales/fi.yml +24 -24
  38. data/config/locales/fr-CA.yml +4 -6
  39. data/config/locales/fr.yml +3 -5
  40. data/config/locales/gl.yml +3 -6
  41. data/config/locales/he-IL.yml +7 -0
  42. data/config/locales/hu.yml +2 -3
  43. data/config/locales/id-ID.yml +9 -4
  44. data/config/locales/is-IS.yml +0 -7
  45. data/config/locales/it.yml +7 -8
  46. data/config/locales/ja.yml +3 -5
  47. data/config/locales/lt.yml +1 -3
  48. data/config/locales/lv.yml +5 -2
  49. data/config/locales/nl.yml +7 -5
  50. data/config/locales/no.yml +1 -4
  51. data/config/locales/pl.yml +2 -4
  52. data/config/locales/pt-BR.yml +3 -5
  53. data/config/locales/pt.yml +2 -4
  54. data/config/locales/ro-RO.yml +7 -9
  55. data/config/locales/ru.yml +0 -7
  56. data/config/locales/sk.yml +6 -3
  57. data/config/locales/sl.yml +0 -4
  58. data/config/locales/sv.yml +5 -4
  59. data/config/locales/tr-TR.yml +5 -7
  60. data/config/locales/uk.yml +1 -8
  61. data/config/locales/zh-CN.yml +1 -3
  62. data/config/locales/zh-TW.yml +3 -5
  63. data/db/migrate/20240110203504_create_default_proposal_states.rb +3 -2
  64. data/decidim-proposals.gemspec +1 -1
  65. data/lib/decidim/api/proposal_type.rb +13 -0
  66. data/lib/decidim/api/proposals_type.rb +1 -3
  67. data/lib/decidim/proposals/proposal_serializer.rb +7 -4
  68. data/lib/decidim/proposals/test/factories.rb +6 -5
  69. data/lib/decidim/proposals/version.rb +1 -1
  70. metadata +24 -21
@@ -222,11 +222,8 @@
222
222
  email_subject: Nytt forslag "%{resource_title}" lagt til %{participatory_space_title}
223
223
  proposal_update_category:
224
224
  email_intro: 'En admin har oppdatert kategorien for forslaget ditt "%{resource_title}", sjekk det ut på denne siden:'
225
- email_outro: Du har mottatt denne varslingen fordi du er forfatteren av forslaget.
226
225
  email_subject: Forslags kategorien %{resource_title} ble oppdatert
227
226
  notification_title: <a href="%{resource_path}">%{resource_title}</a> forslags kategorien er blitt oppdatert av en administrator.
228
- proposal_update_scope:
229
- email_outro: Du har mottatt denne varslingen fordi du er forfatteren av forslaget.
230
227
  voting_enabled:
231
228
  email_outro: Du har mottatt denne varslingen fordi du følger %{participatory_space_title}. Du kan slutte å motta varsler hvis du følger den forrige lenken.
232
229
  gamification:
@@ -271,7 +268,7 @@
271
268
  title: Forslag
272
269
  participatory_spaces:
273
270
  highlighted_proposals:
274
- see_all: Vis alle (%{count})
271
+ see_all: Vis alle
275
272
  proposals:
276
273
  actions:
277
274
  answer_proposal: Svar på forslag
@@ -145,7 +145,7 @@ pl:
145
145
  actions:
146
146
  amend: Popraw
147
147
  comment: Skomentuj
148
- create: Tworzenie
148
+ create: Utwórz
149
149
  endorse: Rekomendacje
150
150
  vote: Głosuj
151
151
  vote_comment: Poprzyj komentarz
@@ -312,12 +312,10 @@ pl:
312
312
  notification_title: Wniosek <a href="%{resource_path}">%{resource_title}</a> zmienił stan na "%{state}".
313
313
  proposal_update_category:
314
314
  email_intro: 'Administrator zaktualizował kategorię Twojej propozycji "%{resource_title}", sprawdź to:'
315
- email_outro: Otrzymałeś to powiadomienie, ponieważ jesteś autorem propozycji.
316
315
  email_subject: Kategoria %{resource_title} propozycji została zaktualizowana
317
316
  notification_title: Kategoria propozycji <a href="%{resource_path}">%{resource_title}</a> została zaktualizowana przez administratora.
318
317
  proposal_update_scope:
319
318
  email_intro: 'Administrator zaktualizował zakres Twojej propozycji „%{resource_title}”, sprawdź to na tej stronie:'
320
- email_outro: Otrzymałeś to powiadomienie, ponieważ jesteś autorem propozycji.
321
319
  email_subject: Zaktualizowano zakres propozycji %{resource_title}
322
320
  notification_title: Administrator zaktualizował zakres propozycji <a href="%{resource_path}">%{resource_title}</a>.
323
321
  voting_enabled:
@@ -380,7 +378,7 @@ pl:
380
378
  participatory_spaces:
381
379
  highlighted_proposals:
382
380
  last: Ostatnie propozycje
383
- see_all: Zobacz wszystkie propozycje (%{count})
381
+ see_all: Zobacz wszystkie propozycje
384
382
  proposals:
385
383
  actions:
386
384
  answer_proposal: Odpowiedz na propozycję
@@ -243,12 +243,10 @@ pt-BR:
243
243
  notification_title_official: A proposta oficial <a href="%{resource_path}">%{resource_title}</a> foi adicionada à %{participatory_space_title}.
244
244
  proposal_update_category:
245
245
  email_intro: 'Um administrador atualizou a categoria de sua proposta "%{resource_title}", confira:'
246
- email_outro: Você recebeu esta notificação porque você é o autor da proposta.
247
246
  email_subject: A categoria de proposta %{resource_title} foi atualizada
248
247
  notification_title: A <a href="%{resource_path}">%{resource_title}</a> categoria de proposta foi atualizada por um administrador.
249
248
  proposal_update_scope:
250
249
  email_intro: 'Um administrador atualizou o escopo de sua proposta "%{resource_title}", confira nesta página:'
251
- email_outro: Você recebeu esta notificação porque você é o autor da proposta.
252
250
  email_subject: O escopo da proposta %{resource_title} foi atualizado
253
251
  notification_title: O escopo da proposta <a href="%{resource_path}">%{resource_title}</a> foi atualizado por um administrador.
254
252
  voting_enabled:
@@ -300,7 +298,7 @@ pt-BR:
300
298
  title: Votos
301
299
  participatory_spaces:
302
300
  highlighted_proposals:
303
- see_all: Ver todos (%{count})
301
+ see_all: Ver todos
304
302
  proposals:
305
303
  actions:
306
304
  answer_proposal: Responder proposta
@@ -389,7 +387,7 @@ pt-BR:
389
387
  title: Atualizar proposta
390
388
  update: Atualizar
391
389
  form:
392
- attachment_legend: "(Opcional) Adicionar um anexo"
390
+ attachment_legend: "(Opcional) Adicione um anexo"
393
391
  created_in_meeting: Esta proposta vem de uma reunião
394
392
  delete_attachment: Excluir anexo
395
393
  select_a_category: Selecionar uma categoria
@@ -593,7 +591,7 @@ pt-BR:
593
591
  official_proposal: Proposta oficial
594
592
  published_answer: Resposta publicada
595
593
  published_at: Publicado em
596
- scope: Âmbito
594
+ scope: Escopo
597
595
  state: Estado
598
596
  title: Título
599
597
  valuator: Avaliador
@@ -233,12 +233,10 @@ pt:
233
233
  email_subject: Nova proposta "%{resource_title}" adicionada a %{participatory_space_title}
234
234
  proposal_update_category:
235
235
  email_intro: 'Um administrador atualizou a categoria da sua proposta "%{resource_title}", verifique nesta página:'
236
- email_outro: Recebeu esta notificação porque é o autor da proposta.
237
236
  email_subject: A categoria da proposta %{resource_title} foi atualizada
238
237
  notification_title: A categoria da proposta <a href="%{resource_path}">%{resource_title}</a> foi atualizada por um administrador.
239
238
  proposal_update_scope:
240
239
  email_intro: 'Um administrador atualizou o âmbito da sua proposta "%{resource_title}". Consulte-o nesta página:'
241
- email_outro: Recebeu esta notificação porque é o autor da proposta.
242
240
  email_subject: O âmbito da proposta %{resource_title} foi atualizado
243
241
  notification_title: O âmbito da proposta <a href="%{resource_path}">%{resource_title}</a> foi atualizado por um administrador.
244
242
  voting_enabled:
@@ -285,7 +283,7 @@ pt:
285
283
  title: Propostas
286
284
  participatory_spaces:
287
285
  highlighted_proposals:
288
- see_all: Ver todos (%{count})
286
+ see_all: Ver todos
289
287
  proposals:
290
288
  actions:
291
289
  answer_proposal: Responder a proposta
@@ -348,7 +346,7 @@ pt:
348
346
  title: Atualizar proposta
349
347
  update: Atualizar
350
348
  form:
351
- attachment_legend: "(Opcional) Adicionar um anexo"
349
+ attachment_legend: "(Opcional) Adicione um anexo"
352
350
  created_in_meeting: Esta proposta vem de uma reunião
353
351
  delete_attachment: Apagar anexo
354
352
  select_a_category: Selecione uma categoria
@@ -236,12 +236,10 @@ ro:
236
236
  email_subject: O nouă propunere "%{resource_title}" a fost adăugată la %{participatory_space_title}
237
237
  proposal_update_category:
238
238
  email_intro: 'Un administrator a actualizat categoria propunerii tale „%{resource_title}", verifică modificarea în această pagină:'
239
- email_outro: Ai primit această notificare deoarece ești autorul acestei propuneri.
240
239
  email_subject: Categoria propunerii %{resource_title} a fost actualizată
241
240
  notification_title: Categoria propunerii <a href="%{resource_path}">%{resource_title}</a> a fost actualizată de către un administrator.
242
241
  proposal_update_scope:
243
242
  email_intro: 'Un administrator a actualizat domeniul de interes al propunerii tale „%{resource_title}”, verifică modificarea în această pagină:'
244
- email_outro: Ai primit această notificare deoarece ești autorul acestei propuneri.
245
243
  email_subject: Domeniul de interes al propunerii %{resource_title} a fost actualizat
246
244
  notification_title: Domeniul de interes al propunerii <a href="%{resource_path}">%{resource_title}</a> a fost actualizat de către un administrator.
247
245
  voting_enabled:
@@ -288,7 +286,7 @@ ro:
288
286
  title: Propuneri
289
287
  participatory_spaces:
290
288
  highlighted_proposals:
291
- see_all: Afișează toate propunerile (%{count})
289
+ see_all: Afișează toate propunerile
292
290
  proposals:
293
291
  actions:
294
292
  answer_proposal: Răspundeți la propunere
@@ -300,14 +298,14 @@ ro:
300
298
  title: Acțiuni
301
299
  admin:
302
300
  actions:
303
- preview: Previzualizează
301
+ preview: Previzualizați
304
302
  exports:
305
303
  proposal_comments: Comentarii
306
304
  proposals: Propuneri
307
305
  imports:
308
306
  label:
309
- answers: Importă răspunsuri dintr-un fişier
310
- proposals: Importă propuneri dintr-un fişier
307
+ answers: Importați răspunsuri dintr-un fișier
308
+ proposals: Importați propuneri dintr-un fișier
311
309
  resources:
312
310
  answers:
313
311
  one: răspuns la propunere
@@ -335,7 +333,7 @@ ro:
335
333
  info_1: Următoarele secțiuni au fost convertite în propuneri. Acum le poți revizui și ajusta înainte de a le publica.
336
334
  publish_document: Publică documentul
337
335
  save_draft: Salvează ciorna
338
- title: Pevizualizează textul participativ
336
+ title: Previzualizați textul participativ
339
337
  new_import:
340
338
  accepted_mime_types:
341
339
  md: Markdown
@@ -400,7 +398,7 @@ ro:
400
398
  comments_count: Număr de comentarii
401
399
  documents: Documente
402
400
  endorsements_count: Număr de susțineri
403
- endorsers: Susţinători
401
+ endorsers: Susținători
404
402
  n_more_endorsers:
405
403
  one: și încă 1
406
404
  few: și încă %{count}
@@ -592,7 +590,7 @@ ro:
592
590
  edit_draft:
593
591
  discard: Renunță la această ciornă
594
592
  discard_confirmation: Sigur dorești să renunți la această ciornă de propunere?
595
- send: Previzualizează
593
+ send: Previzualizați
596
594
  edit_form_fields:
597
595
  marker_added: Marker adăugat pe hartă.
598
596
  filters:
@@ -102,11 +102,8 @@ ru:
102
102
  email_outro: Вы получили это уведомление, потому что вы следите за «%{participatory_space_title}». Вы можете перестать за ним следить, перейдя по приведенной выше ссылке.
103
103
  proposal_update_category:
104
104
  email_intro: 'Администратор обновил категорию вашего предложения «%{resource_title}», проверьте её:'
105
- email_outro: Вы получили это уведомление, потому что вы являетесь автором предложения.
106
105
  email_subject: Обновлена категория предложений %{resource_title}
107
106
  notification_title: Категория предложений <a href="%{resource_path}">%{resource_title}</a> была обновлена ​​администратором.
108
- proposal_update_scope:
109
- email_outro: Вы получили это уведомление, потому что вы являетесь автором предложения.
110
107
  voting_enabled:
111
108
  email_intro: 'Теперь вы можете голосовать по предложениям в %{participatory_space_title}! Начните со страницы:'
112
109
  email_outro: Вы получили это уведомление, потому что вы следите за «%{participatory_space_title}». Вы можете отписаться от уведомлений, перейдя по приведенной выше ссылке.
@@ -136,7 +133,6 @@ ru:
136
133
  title: Частные примечания
137
134
  proposals:
138
135
  form:
139
- attachment_legend: "(Необязательно) Прикрепить файл"
140
136
  select_a_category: Выберите категорию
141
137
  index:
142
138
  actions: Действия
@@ -180,13 +176,11 @@ ru:
180
176
  models:
181
177
  proposal:
182
178
  fields:
183
- category: Категория
184
179
  comments: Комментарии
185
180
  id: Псевдоним
186
181
  notes: Примечания
187
182
  official_proposal: Служебное предложение
188
183
  published_at: 'Обнародовано:'
189
- scope: Охват
190
184
  state: Cостояние
191
185
  title: Заголовок
192
186
  votes: Голоса
@@ -230,7 +224,6 @@ ru:
230
224
  title: Обнародуйте свое предложение
231
225
  show:
232
226
  answer: Ответить
233
- edit_proposal: Редактировать предложение
234
227
  proposal_accepted_reason: 'Это предложение было принято, поскольку:'
235
228
  proposal_in_evaluation_reason: Это предложение сейчас рассматривается
236
229
  proposal_rejected_reason: 'Это предложение было отклонено, поскольку:'
@@ -79,6 +79,10 @@ sk:
79
79
  admin:
80
80
  filters:
81
81
  proposals:
82
+ category_id_eq:
83
+ label: Kategória
84
+ scope_id_eq:
85
+ label: Rozsah
82
86
  valuator_role_ids_has:
83
87
  label: Priradené ku hodnotiteľov
84
88
  search_placeholder:
@@ -113,6 +117,7 @@ sk:
113
117
  proposal_limit: Limit návrhu na užívateľa
114
118
  proposal_wizard_step_1_help_text: Pomocný text Sprievodcu "Vytvoriť" návrh
115
119
  resources_permissions_enabled: Pre každý návrh možno nastaviť povolenia akcie
120
+ scope_id: Rozsah
116
121
  threshold_per_proposal: Maximálny limit na návrh
117
122
  step:
118
123
  amendment_creation_enabled: Umožniť tvorbu Pozmeňovacích návrhov
@@ -176,12 +181,10 @@ sk:
176
181
  email_subject: Nový návrh "%{resource_title}" bol pridaný k%{participatory_space_title}
177
182
  proposal_update_category:
178
183
  email_intro: 'Správca aktualizoval kategórii vášho návrhu "%{resource_title}", pozrite sa na neho:'
179
- email_outro: Toto oznámenie ste dostali, pretože ste autorom návrhu.
180
184
  email_subject: Kategória návrhov %{resource_title} bola aktualizovaná
181
185
  notification_title: Kategória návrhu <a href="%{resource_path}">%{resource_title} </a> bola aktualizovaná administrátorom.
182
186
  proposal_update_scope:
183
187
  email_intro: 'Admin upravil rozsah Vašeho návrhu %{resource_title}, pozrite sa na to na tejto stránke:'
184
- email_outro: Toto oznámenie ste dostali, pretože ste autorom návrhu.
185
188
  email_subject: Rozsah návrhu %{resource_title} bol aktualizovaný
186
189
  notification_title: Rozsah návrhu <a href="%{resource_path}">%{resource_title}</a> bol aktualizovaný administrátorom.
187
190
  voting_enabled:
@@ -228,7 +231,7 @@ sk:
228
231
  title: Návrhy
229
232
  participatory_spaces:
230
233
  highlighted_proposals:
231
- see_all: Zobraziť všetky (%{count})
234
+ see_all: Zobraziť všetky
232
235
  proposals:
233
236
  actions:
234
237
  answer_proposal: Odpoveď na návrh
@@ -8,15 +8,11 @@ sl:
8
8
  admin:
9
9
  filters:
10
10
  proposals:
11
- category_id_eq:
12
- label: Kategorija
13
11
  is_emendation_true:
14
12
  label: Tip
15
13
  values:
16
14
  'false': Predlogi
17
15
  'true': Amandmaji
18
- scope_id_eq:
19
- label: Obseg
20
16
  state_eq:
21
17
  values:
22
18
  accepted: Sprejeto
@@ -19,6 +19,7 @@ sv:
19
19
  automatic_hashtags: Hashtags läggs till automatiskt
20
20
  body: Innehåll
21
21
  category_id: Kategori
22
+ decidim_proposals_proposal_state_id: Status
22
23
  decidim_scope_id: Indelning
23
24
  has_address: Har adress
24
25
  scope_id: Indelning
@@ -192,7 +193,7 @@ sv:
192
193
  resources_permissions_enabled: Behörigheter kan ställas in för varje förslag
193
194
  scope_id: Indelning
194
195
  scopes_enabled: Aktivera indelningar
195
- threshold_per_proposal: Minsta antal per förslag
196
+ threshold_per_proposal: Minst antal stöd per förslag
196
197
  vote_limit: Antal röster per deltagare
197
198
  step:
198
199
  amendment_creation_enabled: Skapa ändringar är aktiverat
@@ -309,12 +310,12 @@ sv:
309
310
  notification_title: Förslaget <a href="%{resource_path}">%{resource_title}</a> har ändrat status till "%{state}".
310
311
  proposal_update_category:
311
312
  email_intro: 'En administratör har uppdaterat kategorin för ditt förslag "%{resource_title}", ta en titt på följande sida:'
312
- email_outro: Du har fått det här meddelandet eftersom du är författare till förslaget.
313
+ email_outro: Du har fått det här meddelandet eftersom du har skrivit förslaget.
313
314
  email_subject: Förslagskategorin %{resource_title} har uppdaterats
314
315
  notification_title: Förslagskategorin <a href="%{resource_path}">%{resource_title}</a> har uppdaterats av en administratör.
315
316
  proposal_update_scope:
316
317
  email_intro: 'En administratör har uppdaterat indelningen för ditt förslag "%{resource_title}", ta en titt på följande sida:'
317
- email_outro: Du har fått det här meddelandet eftersom du är författare till förslaget.
318
+ email_outro: Du har fått det här meddelandet eftersom du har skrivit förslaget.
318
319
  email_subject: Indelningen för förslaget %{resource_title} har uppdaterats
319
320
  notification_title: Indelningen för förslaget <a href="%{resource_path}">%{resource_title}</a> har uppdaterats av en administratör.
320
321
  voting_enabled:
@@ -376,7 +377,7 @@ sv:
376
377
  title: Röster
377
378
  participatory_spaces:
378
379
  highlighted_proposals:
379
- last: Senaste förslag
380
+ last: Senaste förslagen
380
381
  see_all: Visa alla förslag
381
382
  proposals:
382
383
  actions:
@@ -98,7 +98,7 @@ tr:
98
98
  proposal_state_id_eq:
99
99
  label: Durum
100
100
  scope_id_eq:
101
- label: Kapsam
101
+ label: kapsam
102
102
  state_eq:
103
103
  label: Durum
104
104
  values:
@@ -144,7 +144,7 @@ tr:
144
144
  proposal_wizard_step_1_help_text: Teklif sihirbazı "Oluştur" adımı yardım metni
145
145
  proposal_wizard_step_2_help_text: Teklif "Yayınlama" sihirbazı yardım metni
146
146
  resources_permissions_enabled: Her teklif için işlem izinleri ayarlanabilir
147
- scope_id: Kapsam
147
+ scope_id: kapsam
148
148
  scopes_enabled: Kapsamlar etkinleştirildi
149
149
  threshold_per_proposal: Teklif başına eşik
150
150
  step:
@@ -227,12 +227,10 @@ tr:
227
227
  notification_title: Takip ettiğiniz bir teklifin durumu (%{state}) olarak değiştirimiştir.
228
228
  proposal_update_category:
229
229
  email_intro: 'Bir yönetici "%{resource_title}" teklifinizin kategorisini güncelledi, bu sayfada kontrol edin:'
230
- email_outro: Bu bildirimi, teklifin yazarı olduğunuz için aldınız.
231
230
  email_subject: '%{resource_title} teklif kategorisi güncellendi'
232
231
  notification_title: <a href="%{resource_path}">%{resource_title}</a> teklif kategorisi bir yönetici tarafından güncellendi.
233
232
  proposal_update_scope:
234
233
  email_intro: 'Bir yönetici, "%{resource_title}" teklifinizin kapsamını güncelledi, bu sayfada göz atın:'
235
- email_outro: Bu bildirimi, teklifin yazarı olduğunuz için aldınız.
236
234
  email_subject: '%{resource_title} teklif kapsamı güncellendi'
237
235
  notification_title: <a href="%{resource_path}">%{resource_title} </a> teklif kapsamı bir yönetici tarafından güncellendi.
238
236
  voting_enabled:
@@ -279,7 +277,7 @@ tr:
279
277
  title: Teklifler
280
278
  participatory_spaces:
281
279
  highlighted_proposals:
282
- see_all: Tüm teklifleri görün (%{count})
280
+ see_all: Tüm teklifleri görün
283
281
  proposals:
284
282
  actions:
285
283
  answer_proposal: Cevap önerisi
@@ -490,7 +488,7 @@ tr:
490
488
  open: Aç
491
489
  published: Yayınlandı
492
490
  related_to: İle ilgili
493
- scope: Kapsam
491
+ scope: kapsam
494
492
  search: Arama
495
493
  state: Statü
496
494
  withdrawn: Geri çekildi
@@ -563,7 +561,7 @@ tr:
563
561
  official_proposal: Resmi teklif
564
562
  published_answer: Yayınlanan cevap
565
563
  published_at: Yayınlandı
566
- scope: Kapsam
564
+ scope: kapsam
567
565
  state: Durum
568
566
  title: Başlık
569
567
  valuator: Bilirkişi
@@ -52,7 +52,7 @@ uk:
52
52
  components:
53
53
  proposals:
54
54
  actions:
55
- create: Додати
55
+ create: Внести
56
56
  endorse: Підтримати
57
57
  vote: Голосувати
58
58
  withdraw: Відкликати голос
@@ -102,11 +102,8 @@ uk:
102
102
  email_outro: Ви отримали це сповіщення, тому що ви стежите за "%{participatory_space_title}". Ви можете припинити стежити за ним, перейшовши за наведеним вище посиланням.
103
103
  proposal_update_category:
104
104
  email_intro: 'Адміністратор оновив категорію вашої пропозиції "%{resource_title}", перевірте її:'
105
- email_outro: Ви отримали це сповіщення, оскільки ви є автором цієї пропозиції.
106
105
  email_subject: Категорію пропозиції %{resource_title} було оновлено
107
106
  notification_title: Адміністратор оновив категорію пропозиції <a href="%{resource_path}">%{resource_title}</a>.
108
- proposal_update_scope:
109
- email_outro: Ви отримали це сповіщення, оскільки ви є автором цієї пропозиції.
110
107
  voting_enabled:
111
108
  email_intro: 'Ви можете голосувати щодо пропозицій у %{participatory_space_title}! Почніть брати участь зі сторінки:'
112
109
  email_outro: Ви отримали це сповіщення, тому що ви стежите за %{participatory_space_title}. Ви можете відписатися від цих сповіщень, перейшовши за наведеним вище посиланням.
@@ -136,7 +133,6 @@ uk:
136
133
  title: Приватні примітки
137
134
  proposals:
138
135
  form:
139
- attachment_legend: "(Необов'язково) Додати вкладений файл"
140
136
  select_a_category: Оберіть категорію
141
137
  index:
142
138
  actions: Дії
@@ -180,13 +176,11 @@ uk:
180
176
  models:
181
177
  proposal:
182
178
  fields:
183
- category: Категорія
184
179
  comments: Коментарі
185
180
  id: Псевдонім
186
181
  notes: Примітки
187
182
  official_proposal: Службова пропозиція
188
183
  published_at: 'Оприлюднено:'
189
- scope: Обсяг
190
184
  state: Стан
191
185
  title: Назва
192
186
  votes: Голоси
@@ -230,7 +224,6 @@ uk:
230
224
  title: Оприлюднити свою пропозицію
231
225
  show:
232
226
  answer: Відповісти
233
- edit_proposal: Редагувати пропозицію
234
227
  proposal_accepted_reason: 'Ця пропозиція була прийнята, тому що:'
235
228
  proposal_in_evaluation_reason: Ця пропозиція розглядається
236
229
  proposal_rejected_reason: 'Ця пропозиція була відхилена, оскільки:'
@@ -190,12 +190,10 @@ zh-CN:
190
190
  email_subject: 新提议 "%{resource_title}" 已添加到 %{participatory_space_title}
191
191
  proposal_update_category:
192
192
  email_intro: '管理员更新了您的提议 "%{resource_title}"的类别,在此页面查看:'
193
- email_outro: 您收到此通知是因为您是提案的作者。
194
193
  email_subject: '%{resource_title} 建议类别已更新'
195
194
  notification_title: <a href="%{resource_path}">%{resource_title}</a> 提议类别已被管理员更新。
196
195
  proposal_update_scope:
197
196
  email_intro: '管理员更新了您的提议 "%{resource_title}"的范围,在此页面查看:'
198
- email_outro: 您收到此通知是因为您是提案的作者。
199
197
  email_subject: '%{resource_title} 建议范围已更新'
200
198
  notification_title: <a href="%{resource_path}">%{resource_title}</a> 提议范围已被管理员更新。
201
199
  voting_enabled:
@@ -242,7 +240,7 @@ zh-CN:
242
240
  title: 建议
243
241
  participatory_spaces:
244
242
  highlighted_proposals:
245
- see_all: 查看所有建议 (%{count})
243
+ see_all: 查看所有建议
246
244
  proposals:
247
245
  actions:
248
246
  answer_proposal: 答复建议
@@ -87,7 +87,7 @@ zh-TW:
87
87
  filters:
88
88
  proposals:
89
89
  category_id_eq:
90
- label: 分類
90
+ label: 類別
91
91
  is_emendation_true:
92
92
  label: 類別
93
93
  values:
@@ -254,12 +254,10 @@ zh-TW:
254
254
  notification_title_official: 官方提案 <a href="%{resource_path}">%{resource_title}</a> 已經被添加到 %{participatory_space_title}.
255
255
  proposal_update_category:
256
256
  email_intro: '管理員已更新您的提案 "%{resource_title}" 的分類,請前往此頁面查看:'
257
- email_outro: 您收到此通知是因為您是該提案的作者。
258
257
  email_subject: '「%{resource_title}」提案的分類已更新'
259
258
  notification_title: <a href="%{resource_path}">%{resource_title}</a> 提案類別已由管理員更新。
260
259
  proposal_update_scope:
261
260
  email_intro: '一位管理員已更新您的提案"%{resource_title}" 的範圍,您可以在此頁面檢查:'
262
- email_outro: 您收到此通知是因為您是該提案的作者。
263
261
  email_subject: '%{resource_title} 提案範圍已更新'
264
262
  notification_title: <a href="%{resource_path}">%{resource_title}</a> 提案範圍已由管理員更新。
265
263
  voting_enabled:
@@ -307,7 +305,7 @@ zh-TW:
307
305
  title: 提案
308
306
  participatory_spaces:
309
307
  highlighted_proposals:
310
- see_all: 檢視所有提案 (%{count})
308
+ see_all: 檢視所有提案
311
309
  proposals:
312
310
  actions:
313
311
  answer_proposal: 回覆提案
@@ -627,7 +625,7 @@ zh-TW:
627
625
  models:
628
626
  proposal:
629
627
  fields:
630
- category: 分類
628
+ category: 類別
631
629
  comments: 評論
632
630
  id: ID
633
631
  notes: 備註
@@ -18,12 +18,13 @@ class CreateDefaultProposalStates < ActiveRecord::Migration[6.1]
18
18
  Decidim::Proposals::ProposalState.reset_column_information
19
19
  Decidim::Component.where(manifest_name: "proposals").find_each do |component|
20
20
  admin_user = component.organization.admins.first
21
- Decidim::Proposals.create_default_states!(component, admin_user)
21
+ default_states = Decidim::Proposals.create_default_states!(component, admin_user)
22
22
 
23
23
  CustomProposal.where(decidim_component_id: component.id).find_each do |proposal|
24
24
  next if proposal.old_state == "not_answered"
25
25
 
26
- proposal.update!(proposal_state: Decidim::Proposals::ProposalState.where(component:, token: proposal.old_state).first!)
26
+ token = default_states[proposal.old_state.to_sym][:object]&.token
27
+ proposal.update!(proposal_state: Decidim::Proposals::ProposalState.where(component:, token:).first!)
27
28
  end
28
29
  end
29
30
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.version = Decidim::Proposals.version
11
11
  s.authors = ["Josep Jaume Rey Peroy", "Marc Riera Casals", "Oriol Gual Oliva"]
12
12
  s.email = ["josepjaume@gmail.com", "mrc2407@gmail.com", "oriolgual@gmail.com"]
13
- s.license = "AGPL-3.0"
13
+ s.license = "AGPL-3.0-or-later"
14
14
  s.homepage = "https://decidim.org"
15
15
  s.metadata = {
16
16
  "bug_tracker_uri" => "https://github.com/decidim/decidim/issues",
@@ -55,6 +55,19 @@ module Decidim
55
55
  current_component = object.component
56
56
  object.proposal_votes_count unless current_component.current_settings.votes_hidden?
57
57
  end
58
+
59
+ def self.authorized?(object, context)
60
+ context[:proposal] = object
61
+
62
+ chain = [
63
+ allowed_to?(:read, :proposal, object, context),
64
+ object.published?
65
+ ].all?
66
+
67
+ super && chain
68
+ rescue Decidim::PermissionAction::PermissionNotSetError
69
+ false
70
+ end
58
71
  end
59
72
  end
60
73
  end
@@ -16,9 +16,7 @@ module Decidim
16
16
  end
17
17
  end
18
18
 
19
- class ProposalsType < Decidim::Api::Types::BaseObject
20
- implements Decidim::Core::ComponentInterface
21
-
19
+ class ProposalsType < Decidim::Core::ComponentType
22
20
  graphql_name "Proposals"
23
21
  description "A proposals component of a participatory space."
24
22
 
@@ -44,7 +44,8 @@ module Decidim
44
44
  reference: proposal.reference,
45
45
  answer: ensure_translatable(proposal.answer),
46
46
  answered_at: proposal.answered_at,
47
- votes: proposal.proposal_votes_count,
47
+ votes: (proposal.proposal_votes_count unless
48
+ proposal.component.current_settings.votes_hidden?),
48
49
  endorsements: {
49
50
  total_count: proposal.endorsements.size,
50
51
  user_endorsements:
@@ -132,7 +133,7 @@ module Decidim
132
133
 
133
134
  def author_url(author)
134
135
  if author.respond_to?(:nickname)
135
- profile_url(author.nickname) # is a Decidim::User or Decidim::UserGroup
136
+ profile_url(author) # is a Decidim::User or Decidim::UserGroup
136
137
  elsif author.respond_to?(:title)
137
138
  meeting_url(author) # is a Decidim::Meetings::Meeting
138
139
  else
@@ -140,8 +141,10 @@ module Decidim
140
141
  end
141
142
  end
142
143
 
143
- def profile_url(nickname)
144
- Decidim::Core::Engine.routes.url_helpers.profile_url(nickname, host:)
144
+ def profile_url(author)
145
+ return "" if author.respond_to?(:deleted?) && author.deleted?
146
+
147
+ Decidim::Core::Engine.routes.url_helpers.profile_url(author.nickname, host:)
145
148
  end
146
149
 
147
150
  def meeting_url(meeting)
@@ -356,7 +356,7 @@ FactoryBot.define do
356
356
  trait :participant_author do
357
357
  after :build do |proposal, evaluator|
358
358
  proposal.coauthorships.clear
359
- user = build(:user, organization: proposal.component.participatory_space.organization, skip_injection: evaluator.skip_injection)
359
+ user = build(:user, :confirmed, organization: proposal.component.participatory_space.organization, skip_injection: evaluator.skip_injection)
360
360
  proposal.coauthorships.build(author: user)
361
361
  end
362
362
  end
@@ -380,8 +380,8 @@ FactoryBot.define do
380
380
  trait :official_meeting do
381
381
  after :build do |proposal, evaluator|
382
382
  proposal.coauthorships.clear
383
- component = build(:meeting_component, participatory_space: proposal.component.participatory_space, skip_injection: evaluator.skip_injection)
384
- proposal.coauthorships.build(author: build(:meeting, component:, skip_injection: evaluator.skip_injection))
383
+ component = build(:meeting_component, :published, participatory_space: proposal.component.participatory_space, skip_injection: evaluator.skip_injection)
384
+ proposal.coauthorships.build(author: build(:meeting, :published, component:, skip_injection: evaluator.skip_injection))
385
385
  end
386
386
  end
387
387
 
@@ -444,7 +444,8 @@ FactoryBot.define do
444
444
  trait :with_endorsements do
445
445
  after :create do |proposal, evaluator|
446
446
  5.times.collect do
447
- create(:endorsement, resource: proposal, author: build(:user, organization: proposal.participatory_space.organization, skip_injection: evaluator.skip_injection),
447
+ create(:endorsement, resource: proposal,
448
+ author: build(:user, :confirmed, organization: proposal.participatory_space.organization, skip_injection: evaluator.skip_injection),
448
449
  skip_injection: evaluator.skip_injection)
449
450
  end
450
451
  end
@@ -489,7 +490,7 @@ FactoryBot.define do
489
490
  end
490
491
  amendable { build(:proposal, skip_injection:) }
491
492
  emendation { build(:proposal, component: amendable.component, skip_injection:) }
492
- amender { build(:user, organization: amendable.component.participatory_space.organization, skip_injection:) }
493
+ amender { build(:user, :confirmed, organization: amendable.component.participatory_space.organization, skip_injection:) }
493
494
  state { Decidim::Amendment::STATES.keys.sample }
494
495
  end
495
496
 
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds decidim-proposals version.
5
5
  module Proposals
6
6
  def self.version
7
- "0.29.1"
7
+ "0.29.2"
8
8
  end
9
9
  end
10
10
  end