decidim-core 0.27.6 → 0.27.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/follow_button_cell.rb +1 -1
  3. data/app/cells/decidim/notification/moderated.erb +24 -0
  4. data/app/cells/decidim/notification_cell.rb +5 -1
  5. data/app/controllers/concerns/decidim/force_authentication.rb +1 -1
  6. data/app/controllers/concerns/decidim/use_organization_time_zone.rb +1 -1
  7. data/app/controllers/decidim/links_controller.rb +13 -1
  8. data/app/mailers/decidim/application_mailer.rb +40 -6
  9. data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -1
  10. data/app/presenters/decidim/log/resource_presenter.rb +7 -1
  11. data/app/services/decidim/log/diff_changeset_calculator.rb +1 -1
  12. data/app/views/decidim/links/new.html.erb +2 -0
  13. data/config/locales/ar.yml +0 -1
  14. data/config/locales/bg.yml +410 -1
  15. data/config/locales/ca.yml +1 -0
  16. data/config/locales/cs.yml +0 -1
  17. data/config/locales/de.yml +3 -2
  18. data/config/locales/el.yml +4 -1
  19. data/config/locales/en.yml +1 -0
  20. data/config/locales/eo.yml +3 -0
  21. data/config/locales/es-MX.yml +5 -4
  22. data/config/locales/es-PY.yml +5 -4
  23. data/config/locales/es.yml +5 -4
  24. data/config/locales/eu.yml +1 -0
  25. data/config/locales/fi-plain.yml +1 -0
  26. data/config/locales/fi.yml +1 -0
  27. data/config/locales/fr-CA.yml +3 -2
  28. data/config/locales/fr.yml +1 -0
  29. data/config/locales/ga-IE.yml +5 -0
  30. data/config/locales/hu.yml +0 -1
  31. data/config/locales/it.yml +4 -1
  32. data/config/locales/ja.yml +2 -1
  33. data/config/locales/lb.yml +4 -1
  34. data/config/locales/lt.yml +4 -1
  35. data/config/locales/lv.yml +4 -1
  36. data/config/locales/nl.yml +4 -1
  37. data/config/locales/no.yml +4 -1
  38. data/config/locales/pl.yml +31 -0
  39. data/config/locales/pt-BR.yml +0 -1
  40. data/config/locales/pt.yml +4 -1
  41. data/config/locales/ro-RO.yml +1 -0
  42. data/config/locales/ru.yml +4 -0
  43. data/config/locales/sk.yml +4 -1
  44. data/config/locales/sl.yml +5 -0
  45. data/config/locales/sv.yml +4 -1
  46. data/config/locales/tr-TR.yml +2 -0
  47. data/config/locales/uk.yml +1 -0
  48. data/config/locales/zh-CN.yml +0 -1
  49. data/config/locales/zh-TW.yml +4 -1
  50. data/lib/decidim/core/test/factories.rb +9 -3
  51. data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +3 -3
  52. data/lib/decidim/core/test/shared_examples/has_attachments.rb +1 -1
  53. data/lib/decidim/core/version.rb +1 -1
  54. data/lib/decidim/events/base_event.rb +4 -0
  55. data/lib/decidim/form_builder.rb +13 -1
  56. data/lib/decidim/organization_settings.rb +10 -2
  57. metadata +11 -10
@@ -30,6 +30,7 @@ pl:
30
30
  password_confirmation: Potwierdź swoje hasło
31
31
  personal_url: Prywatny adres URL
32
32
  remove_avatar: Usuń awatar
33
+ tos_agreement: Warunki użytkowania
33
34
  models:
34
35
  decidim/attachment_created_event: Załącznik
35
36
  decidim/component_published_event: Aktywny komponent
@@ -150,6 +151,7 @@ pl:
150
151
  actions:
151
152
  cancel: Anuluj
152
153
  password_change:
154
+ alert: Aby kontynuować, musisz zmienić hasło
153
155
  notification: Użytkownicy będący administratorami muszą zmieniać swoje hasło co %{days} dni.
154
156
  admin_log:
155
157
  area:
@@ -400,6 +402,8 @@ pl:
400
402
  authorize: Autoryzuj przy pomocy "%{authorization}"
401
403
  explanation: Aby wykonać tę akcję, musisz być autoryzowanym przy pomocy "%{authorization}".
402
404
  title: Wymagana Autoryzacja
405
+ ok:
406
+ title: Zostałeś autoryzowany na tej stronie. Odśwież stronę, aby wykonać czynność
403
407
  pending:
404
408
  explanation: Aby wykonać tę akcję, musisz być autoryzowany przy pomocy "%{authorization}", ale twoja autoryzacja jest nadal w toku
405
409
  resume: Sprawdź postęp procesu autoryzacji "%{authorization}"
@@ -732,6 +736,8 @@ pl:
732
736
  email_outro: Otrzymujesz to powiadomienie, ponieważ jesteś administratorem platformy.
733
737
  email_subject: Grupa użytkowników zaktualizowała swój profil
734
738
  notification_title: Grupa użytkowników %{user_group_name} zaktualizowała swój profil, pozostawiając go niezweryfikowanym. Możesz go teraz zweryfikować w <a href="%{groups_admin_path}">panelu administratora</a>.
739
+ nickname_event:
740
+ notification_body: Skorygowaliśmy sposób, w jaki używane są pseudonimy, aby nie było duplikatów i dlatego usunęliśmy zasadę uwzględniającą wielkość liter. <br/> Twój pseudonim został utworzony po innym o tej samej nazwie, więc automatycznie zmieniliśmy jego nazwę. Możesz to zmienić z <a href="%{link_to_account_settings}">ustawień konta</a>.
735
741
  notification_event:
736
742
  notification_title: Zdarzenie miało miejsce w <a href="%{resource_path}">%{resource_title}</a>.
737
743
  reports:
@@ -845,6 +851,7 @@ pl:
845
851
  validating: Weryfikowanie...
846
852
  validation_error: Błąd walidacji!
847
853
  upload_help:
854
+ dropzone: Upuść pliki tutaj lub kliknij, aby przesłać
848
855
  explanation: Wytyczne dla %{attribute}
849
856
  gamification:
850
857
  all_badges_link: Zobacz wszystkie dostępne odznaki.
@@ -934,6 +941,7 @@ pl:
934
941
  success: Prośba o dołączenie została wysłana. Administrator sprawdzi Twoją aplikację przed zaakceptowaniem Cię do grupy.
935
942
  leave:
936
943
  error: Podczas opuszczania grupy wystąpił błąd
944
+ last_admin: Nie możesz usunąć siebie z tej grupy, ponieważ jesteś ostatnim administratorem. Aby opuścić grupę, należy uczynić innego członka administratorem.
937
945
  success: Opuszczono grupę.
938
946
  members:
939
947
  accept_or_reject_join_requests: 'Następujący użytkownicy zgłosili się, aby dołączyć do tej grupy. Zaakceptuj lub odrzuć ich prośby:'
@@ -1158,6 +1166,7 @@ pl:
1158
1166
  no_notifications: Brak powiadomień.
1159
1167
  show:
1160
1168
  missing_event: Ups, to powiadomienie należy do elementu, który nie jest już dostępny. Możesz je odrzucić.
1169
+ moderated: Zawartość moderowana
1161
1170
  notifications_digest_mailer:
1162
1171
  header:
1163
1172
  daily: Podsumowanie codziennych powiadomień
@@ -1173,6 +1182,7 @@ pl:
1173
1182
  show:
1174
1183
  administrators: Administratorzy
1175
1184
  allow_public_contact: Każdy może wysłać mi prywatną wiadomość, nawet jeśli go nie obserwuję.
1185
+ allow_push_notifications: Otrzymuj powiadomienia, aby dowiedzieć się, co się dzieje, gdy nie jesteś na platformie. Możesz je wyłączyć w dowolnym momencie.
1176
1186
  direct_messages: Przyjmuj prywatne wiadomości od każdego
1177
1187
  email_on_moderations: Chcę otrzymywać e-mail za każdym razem, gdy ktoś lub coś jest zgłaszane do moderacji.
1178
1188
  everything_followed: Dotyczące wszystkiego, co obserwuję
@@ -1188,6 +1198,7 @@ pl:
1188
1198
  notifications_sending_frequency: Jak często chcesz otrzymywać powiadomienia e-mail?
1189
1199
  own_activity: Dotyczące moich własnych działań, np. kiedy ktoś komentuje moją propozycję lub wspomina o mnie
1190
1200
  push_notifications: Wyskakujące powiadomienia
1201
+ push_notifications_reminder: Aby otrzymywać powiadomienia z platformy, musisz najpierw zezwolić na to w ustawieniach przeglądarki.
1191
1202
  receive_notifications_about: Chcę otrzymywać powiadomienia
1192
1203
  update_notifications_settings: Zapisz zmiany
1193
1204
  update:
@@ -1195,6 +1206,7 @@ pl:
1195
1206
  success: Ustawienia powiadomień zostały zaktualizowane.
1196
1207
  offline:
1197
1208
  show:
1209
+ message: Wygląda na to, że jesteś obecnie offline. Spróbuj ponownie później.
1198
1210
  retry: Powtórz
1199
1211
  open_data:
1200
1212
  not_available_yet: Pliki Open Data nie są jeszcze dostępne. Spróbuj ponownie za kilka minut.
@@ -1249,6 +1261,7 @@ pl:
1249
1261
  agreement: Wyrażam zgodę na te warunki
1250
1262
  legend: Zgadzam się z warunkami użytkowania
1251
1263
  refuse:
1264
+ modal_body: Jeśli odmówisz, nie będziesz mógł (mogła) korzystać z platformy, możesz <a href="%{download_your_data_path}">pobrać swoje dane</a> i/lub <a href="%{delete_path}">usunąć konto</a>.
1252
1265
  modal_btn_continue: Zaakceptuj warunki i kontynuuj
1253
1266
  modal_btn_exit: Sprawdzę to później
1254
1267
  modal_button: Odrzuć warunki
@@ -1260,6 +1273,10 @@ pl:
1260
1273
  title: 'Wymagane: sprawdź aktualizacje naszych warunków korzystania z platformy'
1261
1274
  participatory_space_private_users:
1262
1275
  not_allowed: Nie możesz wyświetlać tych treści
1276
+ passwords:
1277
+ update:
1278
+ error: Wystąpił problem podczas aktualizacji hasła
1279
+ success: Hasło zostało pomyślnie zmienione
1263
1280
  profile:
1264
1281
  deleted: Usunięty użytkownik
1265
1282
  inaccessible_message: Ten profil jest niedostępny z powodu naruszenia Regulaminu!
@@ -1626,6 +1643,7 @@ pl:
1626
1643
  confirm_new_password: Potwierdź nowe hasło
1627
1644
  new_password: Nowe hasło
1628
1645
  password_help: "Minimalna liczba znaków: %{minimun_characters}; nie może być zbyt powszechne (np. 123456) i musi różnić się od Twojego pseudonimu i adresu e-mail."
1646
+ password_help_admin: "Minimalna liczba znaków: %{minimun_characters}; nie może być zbyt powszechne (np. 123456) i musi różnić się od Twojego pseudonimu i adresu e-mail, a także Twoich poprzednich haseł."
1629
1647
  title: Zmiana hasła
1630
1648
  new:
1631
1649
  forgot_your_password: Zapomniałeś hasła?
@@ -1676,6 +1694,7 @@ pl:
1676
1694
  public: Twoje informacje publiczne.
1677
1695
  errors:
1678
1696
  messages:
1697
+ allowed_file_content_types: 'dozwolone są tylko pliki z następującymi rozszerzeniami: %{types}'
1679
1698
  already_confirmed: zostało już potwierdzone
1680
1699
  confirmation_period_expired: musi być potwierdzone w ciągu %{period}, proszę poprosić o nowy
1681
1700
  content_type_allowlist_error: typ pliku jest nieprawidłowy
@@ -1693,8 +1712,11 @@ pl:
1693
1712
  few: 'Podczas przetwarzania Twojego żądania wystąpiły błędy:'
1694
1713
  many: 'Podczas przetwarzania Twojego żądania wystąpiły błędy:'
1695
1714
  other: 'Podczas przetwarzania Twojego żądania wystąpiły błędy:'
1715
+ password_confirmation_message: '"Potwierdź hasło" nie pasuje do hasła'
1696
1716
  too_many_marks: używa zbyt wielu kolejnych znaków interpunkcyjnych (np.! i?)
1697
1717
  too_much_caps: używa zbyt dużej liczby wielkich liter (ponad 25% tekstu)
1718
+ too_short: jest za krótkie (poniżej %{count} znaków)
1719
+ url_format: Ten adres URL jest w niepoprawnym formacie
1698
1720
  forms:
1699
1721
  correct_errors: Wystąpiły błędy w formularzu, popraw je, aby kontynuować.
1700
1722
  length_validator:
@@ -1713,9 +1735,16 @@ pl:
1713
1735
  data_consent:
1714
1736
  details:
1715
1737
  columns:
1738
+ description: Opis
1739
+ name: Nazwa
1740
+ service: Usługa
1716
1741
  type: Typ
1717
1742
  items:
1743
+ _session_id:
1744
+ description: Pozwala witrynom na zapamiętanie użytkownika w witrynie internetowej, gdy przenoszą się między stronami internetowymi.
1745
+ service: Ta strona internetowa
1718
1746
  decidim-consent:
1747
+ description: Przechowuje informacje o ciasteczkach dozwolonych przez użytkownika na tej stronie.
1719
1748
  service: Ta strona internetowa
1720
1749
  pwaInstallPromptSeen:
1721
1750
  description: Zachowuje status, jeśli powiadomienie o instalacji progresywnej aplikacji internetowej (PWA) zostało już wyświetlone przez użytkownika.
@@ -1776,6 +1805,8 @@ pl:
1776
1805
  notifications_dashboard:
1777
1806
  mark_all_as_read: Oznacz wszystkie jako przeczytane
1778
1807
  mark_as_read: Oznacz jako przeczytane
1808
+ offline_banner:
1809
+ cache_version_page: Ups! Twoja sieć jest offline. Jest to poprzednio buforowana wersja strony, którą odwiedzasz, być może zawartość nie jest aktualna.
1779
1810
  social_media_links:
1780
1811
  facebook: "%{organization} na Facebooku"
1781
1812
  github: "%{organization} na GitHubie"
@@ -333,7 +333,6 @@ pt-BR:
333
333
  '1': Crie sua emenda
334
334
  '2': Compare sua alteração
335
335
  '3': Completar sua alteração
336
- '4': Publique sua alteração
337
336
  anonymous_user: Anônimo
338
337
  application:
339
338
  collection:
@@ -242,7 +242,6 @@ pt:
242
242
  '1': Criar a sua modificação
243
243
  '2': Comparar a sua modificação
244
244
  '3': Concluir a sua modificação
245
- '4': Publicar a sua modificação
246
245
  anonymous_user: Anônimo
247
246
  application:
248
247
  collection:
@@ -446,6 +445,7 @@ pt:
446
445
  newsletter: Receber um boletim informativo ocasional com informações relevantes
447
446
  newsletter_title: Permissão de contacto
448
447
  nickname_help: A sua alcunha em %{organization}. Só pode conter letras, números, “-”, e “_”
448
+ sign_in: Entrar
449
449
  sign_up: Inscreva-se
450
450
  sign_up_as:
451
451
  legend: Inscreva-se como
@@ -1468,6 +1468,8 @@ pt:
1468
1468
  updated: A sua conta foi atualizada corretamente.
1469
1469
  sessions:
1470
1470
  already_signed_out: Sessão terminada corretamente.
1471
+ new:
1472
+ sign_in: Iniciar sessão
1471
1473
  signed_in: Sessão iniciada corretamente.
1472
1474
  signed_out: Sessão terminada corretamente.
1473
1475
  shared:
@@ -1476,6 +1478,7 @@ pt:
1476
1478
  didn_t_receive_confirmation_instructions: Não recebeu as instruções de confirmação?
1477
1479
  didn_t_receive_unlock_instructions: Não recebeu as instruções de desbloqueio?
1478
1480
  forgot_your_password: Esqueceu a sua palavra-passe?
1481
+ sign_in: Iniciar sessão
1479
1482
  sign_in_with_provider: Iniciar sessão com %{provider}
1480
1483
  sign_up: Inscrever-se
1481
1484
  minimum_password_length:
@@ -508,6 +508,7 @@ ro:
508
508
  newsletter: Primește un buletin informativ ocazional cu informații relevante
509
509
  newsletter_title: Drepturi privind contactele
510
510
  nickname_help: Pseudonimul tău în %{organization}. Poate conține doar litere, numere, '-' și '_'.
511
+ sign_in: Autentificare
511
512
  sign_up: Înscrie-te
512
513
  sign_up_as:
513
514
  legend: Înregistrează-te ca
@@ -292,6 +292,7 @@ ru:
292
292
  already_have_an_account?: У вас уже есть учетная запись?
293
293
  newsletter: Получать время от времени рассылку со свежими новостями
294
294
  newsletter_title: Разрешение на связь с вами
295
+ sign_in: Войти
295
296
  sign_up: Зарегистрироваться
296
297
  sign_up_as:
297
298
  legend: Зарегистрироваться как
@@ -759,6 +760,8 @@ ru:
759
760
  signed_up_but_inactive: Вы успешно зарегистрировались. Однако вы не можете войти в систему, потому что учетная запись еще не активирована.
760
761
  signed_up_but_locked: Вы успешно зарегистрировались. Однако вы не можете войти в систему, потому что ваша учетная запись заблокирована.
761
762
  sessions:
763
+ new:
764
+ sign_in: Войти
762
765
  signed_in: Вход выполнен успешно.
763
766
  signed_out: Вы вышли.
764
767
  shared:
@@ -767,6 +770,7 @@ ru:
767
770
  didn_t_receive_confirmation_instructions: Не получили инструкцию по подтверждению?
768
771
  didn_t_receive_unlock_instructions: Не получили инструкцию по разблокировке?
769
772
  forgot_your_password: Забыли пароль?
773
+ sign_in: Войти
770
774
  sign_in_with_provider: Войти с помощью %{provider}
771
775
  sign_up: Зарегистрироваться
772
776
  unlocks:
@@ -227,7 +227,6 @@ sk:
227
227
  '1': Vytvorte svoj pozmeňovací návrh
228
228
  '2': Porovnajte váš pozmeňovací návrh
229
229
  '3': Dokončite váš pozmeňovací návrh
230
- '4': Zverejniť svoj pozmeňovací návrh
231
230
  anonymous_user: Anonymné
232
231
  application:
233
232
  collection:
@@ -401,6 +400,7 @@ sk:
401
400
  already_have_an_account?: Už máte účet?
402
401
  newsletter: Dostávajte príležitostný spravodajca s relevantnými informáciami
403
402
  newsletter_title: Povolenie kontaktu
403
+ sign_in: Prihlásiť sa
404
404
  sign_up: Zaregistrovať sa
405
405
  sign_up_as:
406
406
  legend: Zaregistrovať sa ako
@@ -1204,6 +1204,8 @@ sk:
1204
1204
  updated: Účet bol úspešne aktualizovaný.
1205
1205
  sessions:
1206
1206
  already_signed_out: Bolo úspešne odhlási.
1207
+ new:
1208
+ sign_in: Prihlásiť sa
1207
1209
  signed_in: Úspešne ste sa prihlásili.
1208
1210
  signed_out: Odhlásenie prebehlo úspešne.
1209
1211
  shared:
@@ -1212,6 +1214,7 @@ sk:
1212
1214
  didn_t_receive_confirmation_instructions: Nedostali ste pokyny na potvrdenie?
1213
1215
  didn_t_receive_unlock_instructions: Nezískali ste pokyny k odomknutiu?
1214
1216
  forgot_your_password: Zabudli ste heslo?
1217
+ sign_in: Prihlásiť sa
1215
1218
  sign_in_with_provider: Prihlásiť sa cez%{provider}
1216
1219
  sign_up: Prihlásiť sa
1217
1220
  minimum_password_length:
@@ -11,6 +11,7 @@ sl:
11
11
  devise:
12
12
  registrations:
13
13
  new:
14
+ sign_in: Prijava
14
15
  sign_up: Registracija
15
16
  filters:
16
17
  linked_classes:
@@ -51,8 +52,12 @@ sl:
51
52
  new:
52
53
  sign_up: Registracija
53
54
  signed_up: Dobrodošli! Uspešno ste se vpisali.
55
+ sessions:
56
+ new:
57
+ sign_in: Prijava
54
58
  shared:
55
59
  links:
60
+ sign_in: Prijava
56
61
  sign_up: Registracija
57
62
  layouts:
58
63
  decidim:
@@ -287,7 +287,6 @@ sv:
287
287
  '1': Skapa ändringsförslag
288
288
  '2': Jämför ändringsförslag
289
289
  '3': Slutför ändringsförslaget
290
- '4': Publicera ändringsförslaget
291
290
  anonymous_user: Anonym
292
291
  application:
293
292
  collection:
@@ -493,6 +492,7 @@ sv:
493
492
  newsletter: Få enstaka nyhetsbrev med relevant information
494
493
  newsletter_title: Kontakttillstånd
495
494
  nickname_help: Ditt alias i %{organization}. Kan bara innehålla bokstäver, siffror, '-' och '_'.
495
+ sign_in: Logga in
496
496
  sign_up: Registrera dig
497
497
  sign_up_as:
498
498
  legend: Registrera dig som
@@ -1560,6 +1560,8 @@ sv:
1560
1560
  updated: Ditt konto har uppdaterats.
1561
1561
  sessions:
1562
1562
  already_signed_out: Du har loggats ut.
1563
+ new:
1564
+ sign_in: Logga in
1563
1565
  signed_in: Inloggningen är klar.
1564
1566
  signed_out: Du är utloggad.
1565
1567
  shared:
@@ -1568,6 +1570,7 @@ sv:
1568
1570
  didn_t_receive_confirmation_instructions: Fick du inte anvisningar om bekräftelse?
1569
1571
  didn_t_receive_unlock_instructions: Fick du inte anvisningar om att låsa upp?
1570
1572
  forgot_your_password: Glömt ditt lösenord?
1573
+ sign_in: Logga in
1571
1574
  sign_in_with_provider: Logga in med %{provider}
1572
1575
  sign_up: Registrera dig
1573
1576
  minimum_password_length:
@@ -998,6 +998,8 @@ tr:
998
998
  subject: '%{organization_name} ile ilgili bilgileri almaya devam etmek istiyor musunuz?'
999
999
  notifications:
1000
1000
  no_notifications: Henüz bildirim yok.
1001
+ show:
1002
+ moderated: İçerik Denetlendi
1001
1003
  notifications_settings:
1002
1004
  show:
1003
1005
  allow_public_contact: Takip etmesem bile herkesin bana doğrudan mesaj göndermesine izin ver.
@@ -226,6 +226,7 @@ uk:
226
226
  already_have_an_account?: Вже маєте обліковий запис?
227
227
  newsletter: Отримувати іноді розсилання зі свіжими новинами
228
228
  newsletter_title: Дозвіл на зв'язок
229
+ sign_in: Увійти
229
230
  sign_up: Зареєструватися
230
231
  sign_up_as:
231
232
  legend: Зареєструватися як
@@ -212,7 +212,6 @@ zh-CN:
212
212
  '1': 创建您的修改
213
213
  '2': 比较您的修改
214
214
  '3': 完成您的修改
215
- '4': 发布您的修改
216
215
  anonymous_user: 匿名的
217
216
  application:
218
217
  collection:
@@ -314,7 +314,6 @@ zh-TW:
314
314
  '1': 創建您的修正案
315
315
  '2': 比較您的修正案
316
316
  '3': 完成您的修正案
317
- '4': 發佈您的修正案
318
317
  anonymous_user: 匿名
319
318
  application:
320
319
  collection:
@@ -516,6 +515,7 @@ zh-TW:
516
515
  newsletter: 偶爾收到包含相關信息的時事通訊。
517
516
  newsletter_title: 聯絡人權限
518
517
  nickname_help: 在 %{organization} 中的別名。只能包含字母、數字、'-' 和 '_'。
518
+ sign_in: 登入
519
519
  sign_up: 註冊登記
520
520
  sign_up_as:
521
521
  legend: 註冊登記為
@@ -1633,6 +1633,8 @@ zh-TW:
1633
1633
  updated: 您的帳號已成功升級。
1634
1634
  sessions:
1635
1635
  already_signed_out: 已成功登出。
1636
+ new:
1637
+ sign_in: 登入
1636
1638
  signed_in: 已成功登入。
1637
1639
  signed_out: 已成功登出。
1638
1640
  shared:
@@ -1641,6 +1643,7 @@ zh-TW:
1641
1643
  didn_t_receive_confirmation_instructions: 沒有收到確認的說明嗎?
1642
1644
  didn_t_receive_unlock_instructions: 沒有收到解鎖說明?
1643
1645
  forgot_your_password: 忘記密碼了嗎?
1646
+ sign_in: 登入
1644
1647
  sign_in_with_provider: 用%{provider} 登錄
1645
1648
  sign_up: 註冊登記
1646
1649
  minimum_password_length:
@@ -9,7 +9,7 @@ require "decidim/assemblies/test/factories"
9
9
  require "decidim/comments/test/factories"
10
10
 
11
11
  def generate_component_name(locales, manifest_name, skip_injection: false)
12
- prepend = skip_injection ? "" : "<script>alert(\"#{manifest_name}\");</script>"
12
+ prepend = skip_injection ? "" : "<script>alert('#{manifest_name}');</script>"
13
13
 
14
14
  Decidim::Components::Namer.new(locales, manifest_name).i18n_name.transform_values { |v| [prepend, v].compact_blank.join(" ") }
15
15
  end
@@ -26,7 +26,7 @@ def generate_localized_word(field = nil, skip_injection: false)
26
26
  if skip_injection
27
27
  Faker::Lorem.word
28
28
  else
29
- "<script>alert(\"#{field}\");</script> #{Faker::Lorem.word}"
29
+ "<script>alert('#{field}');</script> #{Faker::Lorem.word}"
30
30
  end
31
31
  end
32
32
  end
@@ -38,7 +38,7 @@ def generate_localized_title(field = nil, skip_injection: false)
38
38
  if skip_injection
39
39
  generate(:title)
40
40
  else
41
- "<script>alert(\"#{field}\");</script> #{generate(:title)}"
41
+ "<script>alert('#{field}');</script> #{generate(:title)}"
42
42
  end
43
43
  end
44
44
  end
@@ -605,6 +605,12 @@ FactoryBot.define do
605
605
  end
606
606
  end
607
607
  end
608
+
609
+ trait :moderated do
610
+ after(:create) do |resource, evaluator|
611
+ create(:moderation, reportable: resource, hidden_at: 2.days.ago, skip_injection: evaluator.skip_injection)
612
+ end
613
+ end
608
614
  end
609
615
 
610
616
  factory :nested_dummy_resource, class: "Decidim::DummyResources::NestedDummyResource" do
@@ -39,9 +39,9 @@ shared_examples_for "has attachment collections" do
39
39
 
40
40
  it "shows them ordered" do
41
41
  within ".attachments .documents" do
42
- expect(decidim_escape_translated(first_attachment_collection.name).gsub("&quot;",
43
- "\"")).to appear_before(decidim_escape_translated(last_attachment_collection.name).gsub("&quot;",
44
- "\""))
42
+ expect(decidim_escape_translated(first_attachment_collection.name).gsub("&#39;",
43
+ "\'")).to appear_before(decidim_escape_translated(last_attachment_collection.name).gsub("&#39;",
44
+ "\'"))
45
45
  end
46
46
  end
47
47
  end
@@ -35,7 +35,7 @@ shared_examples_for "has attachments" do
35
35
 
36
36
  it "shows them ordered" do
37
37
  within "div.wrapper .documents" do
38
- expect(decidim_escape_translated(first_document.title).gsub("&quot;", "\"")).to appear_before(decidim_escape_translated(last_document.title).gsub("&quot;", "\""))
38
+ expect(decidim_escape_translated(first_document.title).gsub("&#39;", "\'")).to appear_before(decidim_escape_translated(last_document.title).gsub("&#39;", "\'"))
39
39
  end
40
40
 
41
41
  within "div.wrapper .images" do
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.27.6"
7
+ "0.27.7"
8
8
  end
9
9
  end
10
10
  end
@@ -114,6 +114,10 @@ module Decidim
114
114
  Decidim::ContentProcessor.render_without_format(title, links: false).html_safe
115
115
  end
116
116
 
117
+ def hidden_resource?
118
+ resource.respond_to?(:hidden?) && resource.hidden?
119
+ end
120
+
117
121
  private
118
122
 
119
123
  def component
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "foundation_rails_helper/form_builder"
4
+ require_relative "../../app/helpers/decidim/sanitize_helper"
4
5
 
5
6
  module Decidim
6
7
  # This custom FormBuilder adds fields needed to deal with translatable fields,
@@ -9,6 +10,7 @@ module Decidim
9
10
  include ActionView::Context
10
11
  include Decidim::TranslatableAttributes
11
12
  include Decidim::Map::Autocomplete::FormBuilder
13
+ include Decidim::SanitizeHelper
12
14
 
13
15
  # Public: generates a check boxes input from a collection and adds help
14
16
  # text and errors.
@@ -192,11 +194,12 @@ module Decidim
192
194
  options.delete(:required)
193
195
  hashtaggable = options.delete(:hashtaggable)
194
196
  hidden_options = extract_validations(name, options).merge(options)
197
+ sanitized_value = sanitize_editor_value(object.send(name))
195
198
 
196
199
  content_tag(:div, class: "editor #{"hashtags__container" if hashtaggable}") do
197
200
  template = ""
198
201
  template += label(name, label_text + required_for_attribute(name)) if options.fetch(:label, true)
199
- template += hidden_field(name, hidden_options)
202
+ template += hidden_field(name, hidden_options.merge(value: sanitized_value))
200
203
  template += content_tag(:div, nil, class: "editor-container #{"js-hashtags" if hashtaggable}", data: {
201
204
  toolbar: toolbar,
202
205
  disabled: options[:disabled],
@@ -941,5 +944,14 @@ module Decidim
941
944
 
942
945
  object.class
943
946
  end
947
+
948
+ # Private: Sanitize editor values to prevent malformed values being display in the
949
+ # WYSIWYG editor
950
+ #
951
+ def sanitize_editor_value(value)
952
+ sanitized_value = decidim_sanitize_editor_admin(value)
953
+
954
+ sanitized_value == %(<div class="ql-editor-display"></div>) ? "" : sanitized_value
955
+ end
944
956
  end
945
957
  end
@@ -130,12 +130,20 @@ module Decidim
130
130
  )
131
131
  },
132
132
  "maximum_file_size" => {
133
- "default" => 10.0,
134
- "avatar" => 5.0
133
+ "default" => default_maximum_attachment_size,
134
+ "avatar" => default_maximum_avatar_size
135
135
  }
136
136
  }
137
137
  }
138
138
  end
139
+
140
+ def default_maximum_attachment_size
141
+ (Rails.application.secrets.decidim[:maximum_attachment_size].presence || 10).to_f
142
+ end
143
+
144
+ def default_maximum_avatar_size
145
+ (Rails.application.secrets.decidim[:maximum_avatar_size].presence || 5).to_f
146
+ end
139
147
  end
140
148
 
141
149
  def initialize(organization)
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.6
4
+ version: 0.27.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
8
8
  - Marc Riera Casals
9
9
  - Oriol Gual Oliva
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-04-30 00:00:00.000000000 Z
13
+ date: 2024-07-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -732,28 +732,28 @@ dependencies:
732
732
  requirements:
733
733
  - - '='
734
734
  - !ruby/object:Gem::Version
735
- version: 0.27.6
735
+ version: 0.27.7
736
736
  type: :development
737
737
  prerelease: false
738
738
  version_requirements: !ruby/object:Gem::Requirement
739
739
  requirements:
740
740
  - - '='
741
741
  - !ruby/object:Gem::Version
742
- version: 0.27.6
742
+ version: 0.27.7
743
743
  - !ruby/object:Gem::Dependency
744
744
  name: decidim-dev
745
745
  requirement: !ruby/object:Gem::Requirement
746
746
  requirements:
747
747
  - - '='
748
748
  - !ruby/object:Gem::Version
749
- version: 0.27.6
749
+ version: 0.27.7
750
750
  type: :development
751
751
  prerelease: false
752
752
  version_requirements: !ruby/object:Gem::Requirement
753
753
  requirements:
754
754
  - - '='
755
755
  - !ruby/object:Gem::Version
756
- version: 0.27.6
756
+ version: 0.27.7
757
757
  description: Adds core features so other engines can hook into the framework.
758
758
  email:
759
759
  - josepjaume@gmail.com
@@ -898,6 +898,7 @@ files:
898
898
  - app/cells/decidim/newsletter_templates/image_text_cta_cell.rb
899
899
  - app/cells/decidim/newsletter_templates/image_text_cta_settings_form/show.erb
900
900
  - app/cells/decidim/newsletter_templates/image_text_cta_settings_form_cell.rb
901
+ - app/cells/decidim/notification/moderated.erb
901
902
  - app/cells/decidim/notification/show.erb
902
903
  - app/cells/decidim/notification_cell.rb
903
904
  - app/cells/decidim/notifications/show.erb
@@ -2700,7 +2701,7 @@ homepage: https://github.com/decidim/decidim
2700
2701
  licenses:
2701
2702
  - AGPL-3.0
2702
2703
  metadata: {}
2703
- post_install_message:
2704
+ post_install_message:
2704
2705
  rdoc_options: []
2705
2706
  require_paths:
2706
2707
  - lib
@@ -2715,8 +2716,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2715
2716
  - !ruby/object:Gem::Version
2716
2717
  version: '0'
2717
2718
  requirements: []
2718
- rubygems_version: 3.2.22
2719
- signing_key:
2719
+ rubygems_version: 3.5.14
2720
+ signing_key:
2720
2721
  specification_version: 4
2721
2722
  summary: The core of the Decidim framework.
2722
2723
  test_files: []