decidim-core 0.27.0.rc2 → 0.27.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/cells/decidim/amendable/announcement_cell.rb +1 -1
- data/app/cells/decidim/card_m_cell.rb +1 -1
- data/app/controllers/decidim/devise/invitations_controller.rb +9 -2
- data/app/controllers/decidim/last_activities_controller.rb +5 -2
- data/app/forms/decidim/account_form.rb +2 -2
- data/app/forms/decidim/amendable/form.rb +2 -1
- data/app/forms/decidim/registration_form.rb +2 -2
- data/app/forms/decidim/upload_validation_form.rb +51 -7
- data/app/helpers/decidim/layout_helper.rb +12 -4
- data/app/helpers/decidim/sanitize_helper.rb +1 -1
- data/app/mailers/decidim/notification_mailer.rb +1 -0
- data/app/mailers/decidim/notifications_digest_mailer.rb +1 -0
- data/app/packs/src/decidim/editor/clipboard_override.js +143 -0
- data/app/packs/src/decidim/editor/clipboard_utilities.js +119 -0
- data/app/packs/src/decidim/editor/linebreak_module.js +0 -8
- data/app/packs/src/decidim/editor.js +9 -2
- data/app/packs/stylesheets/decidim/_editor.scss +129 -0
- data/app/packs/stylesheets/decidim/extras/_quill.scss +0 -6
- data/app/presenters/decidim/home_stats_presenter.rb +11 -4
- data/app/presenters/decidim/stats_presenter.rb +7 -8
- data/app/presenters/decidim/user_presenter.rb +9 -4
- data/app/queries/decidim/public_activities.rb +1 -0
- data/app/validators/etiquette_validator.rb +7 -3
- data/app/validators/file_content_type_validator.rb +103 -0
- data/app/validators/passthru_validator.rb +11 -0
- data/app/validators/uploader_content_type_validator.rb +22 -0
- data/app/views/decidim/notification_mailer/event_received.html.erb +1 -1
- data/app/views/decidim/notifications_digest_mailer/_email_content.html.erb +1 -1
- data/config/locales/ar.yml +0 -15
- data/config/locales/bg.yml +1 -14
- data/config/locales/ca.yml +7 -15
- data/config/locales/cs.yml +14 -22
- data/config/locales/de.yml +1 -14
- data/config/locales/el.yml +0 -13
- data/config/locales/en.yml +5 -13
- data/config/locales/es-MX.yml +6 -14
- data/config/locales/es-PY.yml +6 -14
- data/config/locales/es.yml +11 -19
- data/config/locales/eu.yml +7 -16
- data/config/locales/fi-plain.yml +5 -13
- data/config/locales/fi.yml +5 -13
- data/config/locales/fr-CA.yml +6 -14
- data/config/locales/fr.yml +6 -14
- data/config/locales/ga-IE.yml +1 -3
- data/config/locales/gl.yml +0 -15
- data/config/locales/gn-PY.yml +1 -0
- data/config/locales/hu.yml +21 -14
- data/config/locales/id-ID.yml +0 -15
- data/config/locales/is-IS.yml +2 -1
- data/config/locales/it.yml +2 -15
- data/config/locales/ja.yml +6 -14
- data/config/locales/lb.yml +0 -13
- data/config/locales/lo-LA.yml +1 -0
- data/config/locales/lt.yml +0 -13
- data/config/locales/lv.yml +0 -13
- data/config/locales/nl.yml +2 -15
- data/config/locales/no.yml +0 -13
- data/config/locales/oc-FR.yml +1 -0
- data/config/locales/pl.yml +1 -14
- data/config/locales/pt-BR.yml +2 -15
- data/config/locales/pt.yml +1 -14
- data/config/locales/ro-RO.yml +0 -13
- data/config/locales/ru.yml +0 -4
- data/config/locales/sk.yml +0 -16
- data/config/locales/sv.yml +0 -13
- data/config/locales/tr-TR.yml +2 -15
- data/config/locales/uk.yml +1 -2
- data/config/locales/zh-CN.yml +0 -13
- data/lib/decidim/attributes/localized_date.rb +1 -1
- data/lib/decidim/attributes/time_with_zone.rb +5 -2
- data/lib/decidim/core/engine.rb +7 -5
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/editor_shared_examples.rb +30 -0
- data/lib/decidim/core/test/shared_examples/mcell_examples.rb +17 -0
- data/lib/decidim/core/test.rb +2 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/file_validator_humanizer.rb +1 -1
- data/lib/decidim/form_builder.rb +10 -3
- data/lib/decidim/resourceable.rb +5 -4
- data/lib/decidim/settings_manifest.rb +1 -1
- metadata +16 -9
- data/app/packs/images/decidim/gamification/badges/decidim_gamification_badges_invitations.svg +0 -1
data/config/locales/pl.yml
CHANGED
@@ -846,18 +846,6 @@ pl:
|
|
846
846
|
how: Jak ją zdobyć
|
847
847
|
page_description: Odznaki są wyrazem uznania dla działań użytkowników i ich rozwoju na platformie. Gdy zaczniesz odkrywać, uczestniczyć i wchodzić w interakcje na platformie, otrzymasz różne odznaki. Oto lista odznak i kilka sposobów na ich zdobycie.
|
848
848
|
title: Odznaki
|
849
|
-
invitations:
|
850
|
-
conditions:
|
851
|
-
- Użyj linku "zaproś znajomych" na swojej stronie użytkownika, aby zaprosić znajomych
|
852
|
-
- Dostosuj, jeśli chcesz, wiadomość, którą wysyłasz
|
853
|
-
- Możesz awansować na wyższy poziom, wysyłając zaproszenia i gdy zostaną one przyjęte.
|
854
|
-
description: Ta odznaka jest przyznawana, gdy zapraszasz ludzi i gdy oni poświęcą trochę czasu, aby zarejestrować się w %{organization_name} i zostać użytkownikami. Dziękujemy za udostępnienie %{organization_name} innym osobom i pomoc w rozbudowywaniu społeczności!
|
855
|
-
description_another: Ten użytkownik zaprosił %{score} osób.
|
856
|
-
description_own: Zaprosiłeś %{score} osób.
|
857
|
-
name: Zaproszenia
|
858
|
-
next_level_in: Zaproś %{score} kolejnych użytkowników, aby przejść do następnego poziomu!
|
859
|
-
unearned_another: Ten użytkownik jeszcze nikogo nie zaprosił.
|
860
|
-
unearned_own: Jeszcze nikogo nie zaproszono.
|
861
849
|
description: Odznaki są wyrazem uznania dla działań użytkowników i ich rozwoju na platformie. Gdy zaczniesz odkrywać, uczestniczyć i wchodzić w interakcje na platformie, otrzymasz różne odznaki.
|
862
850
|
level: Poziom %{level}
|
863
851
|
reached_top: Osiągnąłeś najwyższy poziom tej odznaki.
|
@@ -1069,7 +1057,7 @@ pl:
|
|
1069
1057
|
title: Konwersacja z %{usernames}
|
1070
1058
|
start:
|
1071
1059
|
send: Wyślij
|
1072
|
-
title:
|
1060
|
+
title: Rozpocznij konwersację
|
1073
1061
|
update:
|
1074
1062
|
error: Wiadomość nie została wysłana z powodu błędu
|
1075
1063
|
metrics:
|
@@ -1641,7 +1629,6 @@ pl:
|
|
1641
1629
|
other: 'Podczas przetwarzania Twojego żądania wystąpiły błędy:'
|
1642
1630
|
too_many_marks: używa zbyt wielu kolejnych znaków interpunkcyjnych (np.! i?)
|
1643
1631
|
too_much_caps: używa zbyt dużej liczby wielkich liter (ponad 25% tekstu)
|
1644
|
-
too_short: jest za krótkie
|
1645
1632
|
forms:
|
1646
1633
|
correct_errors: Wystąpiły błędy w formularzu, popraw je, aby kontynuować.
|
1647
1634
|
length_validator:
|
data/config/locales/pt-BR.yml
CHANGED
@@ -740,18 +740,6 @@ pt-BR:
|
|
740
740
|
how: Como você pode ganhar
|
741
741
|
page_description: Crachás são reconhecimentos para ações dos participantes e progresso na plataforma. Ao começar a descobrir, participar e interagir na plataforma, você ganhará distintivos diferentes. Aqui está a lista de crachás e algumas maneiras de ganhá-los.
|
742
742
|
title: Distintivos
|
743
|
-
invitations:
|
744
|
-
conditions:
|
745
|
-
- Use o link "convidar amigos" na sua página de usuário para convidar seus amigos
|
746
|
-
- Personalize, se quiser, a mensagem que você está enviando
|
747
|
-
- Você vai subir de nível enviando convites e recebendo-os registrados.
|
748
|
-
description: Esse selo é concedido quando você convidou algumas pessoas e elas gastaram um pouco de tempo para se inscrever em %{organization_name} e se tornarem participantes. Obrigado por fazer %{organization_name} a conhecer aos outros e ajudando a expandir a comunidade!
|
749
|
-
description_another: Este usuário convidou %{score} usuários.
|
750
|
-
description_own: Você convidou %{score} usuários.
|
751
|
-
name: Convites
|
752
|
-
next_level_in: Convide mais %{score} usuários para alcançar o próximo nível!
|
753
|
-
unearned_another: Este usuário ainda não convidou nenhum usuário.
|
754
|
-
unearned_own: Você não convidou nenhum usuário ainda.
|
755
743
|
description: Crachás são reconhecimentos para ações dos participantes e progresso na plataforma. Ao começar a descobrir, participar e interagir na plataforma, você ganhará distintivos diferentes.
|
756
744
|
level: Nível %{level}
|
757
745
|
reached_top: Você atingiu o nível superior para este selo.
|
@@ -958,7 +946,7 @@ pt-BR:
|
|
958
946
|
title: Conversas
|
959
947
|
reply:
|
960
948
|
placeholder: Sua resposta...
|
961
|
-
send:
|
949
|
+
send: Enviar
|
962
950
|
title: Resposta
|
963
951
|
show:
|
964
952
|
back: Voltar para todas as conversas
|
@@ -967,7 +955,7 @@ pt-BR:
|
|
967
955
|
title: Conversa com %{usernames}
|
968
956
|
start:
|
969
957
|
send: Enviar
|
970
|
-
title:
|
958
|
+
title: Iniciar uma conversa
|
971
959
|
update:
|
972
960
|
error: A mensagem não foi enviada devido a um erro
|
973
961
|
metrics:
|
@@ -1533,7 +1521,6 @@ pt-BR:
|
|
1533
1521
|
other: 'Houve erros múltiplos ao processar sua solicitação:'
|
1534
1522
|
too_many_marks: está usando muitos sinais de pontuação consecutivos (por exemplo,! e?)
|
1535
1523
|
too_much_caps: está usando muitas letras maiúsculas (mais de 25% do texto)
|
1536
|
-
too_short: é muito curto (menos de 15 caracteres)
|
1537
1524
|
forms:
|
1538
1525
|
correct_errors: Há erros no formulário, por favor corrija-os para continuar.
|
1539
1526
|
length_validator:
|
data/config/locales/pt.yml
CHANGED
@@ -739,18 +739,6 @@ pt:
|
|
739
739
|
how: Como pode ganhar
|
740
740
|
page_description: Distintivos são reconhecimentos para ações dos participantes e progresso na plataforma. Ao começar a descobrir, participar e interagir na plataforma, ganhará distintivos diferentes. Aqui está a lista de distintivos e algumas maneiras de ganhá-los.
|
741
741
|
title: Distintivos
|
742
|
-
invitations:
|
743
|
-
conditions:
|
744
|
-
- Use a hiperligação "convidar amigos" na sua página de utilizador para convidar os seus amigos
|
745
|
-
- Personalize, se quiser, a mensagem que está a enviar
|
746
|
-
- Subirá de nível ao enviar convites e obtendo registos.
|
747
|
-
description: Este distintivo é concedido quando convidou algumas pessoas e elas despenderam um pouco de tempo para se inscrever em %{organization_name} e se tornarem participantes. Obrigado por dar a conhecer %{organization_name} aos outros e ajudar a expandir a comunidade!
|
748
|
-
description_another: Este participante convidou %{score} utilizadores.
|
749
|
-
description_own: Convidou %{score} utilizadores.
|
750
|
-
name: Convites
|
751
|
-
next_level_in: Convide mais %{score} utilizadores para alcançar o próximo nível!
|
752
|
-
unearned_another: Este participante ainda não convidou alguém.
|
753
|
-
unearned_own: Ainda não convidou alguém.
|
754
742
|
description: Distintivos são reconhecimentos para ações dos participantes e progresso na plataforma. Ao começar a descobrir, participar e interagir na plataforma, ganhará distintivos diferentes.
|
755
743
|
level: Nível %{level}
|
756
744
|
reached_top: Atingiu o nível superior para este distintivo.
|
@@ -957,7 +945,7 @@ pt:
|
|
957
945
|
title: Conversas
|
958
946
|
reply:
|
959
947
|
placeholder: A sua resposta...
|
960
|
-
send:
|
948
|
+
send: Enviar
|
961
949
|
title: Responder
|
962
950
|
show:
|
963
951
|
back: Retroceder a todas as conversas
|
@@ -1532,7 +1520,6 @@ pt:
|
|
1532
1520
|
other: 'Ocorreram diversos erros ao processar o seu pedido:'
|
1533
1521
|
too_many_marks: está a usar muitos sinais de pontuação consecutivos (por exemplo, ! e ?)
|
1534
1522
|
too_much_caps: está a usar muitas letras maiúsculas (acima de 25% do texto)
|
1535
|
-
too_short: é muito curto (abaixo de 15 caracteres)
|
1536
1523
|
forms:
|
1537
1524
|
correct_errors: Existem erros no formulário, por favor corrija-os para continuar.
|
1538
1525
|
length_validator:
|
data/config/locales/ro-RO.yml
CHANGED
@@ -761,18 +761,6 @@ ro:
|
|
761
761
|
how: Cum poți să o câștigi
|
762
762
|
page_description: Insignele sunt recunoașterea acțiunilor participanților și progresele înregistrate în cadrul platformei. Pe măsură ce începi să descoperi, să participi și să interacționezi în platformă, vei câștiga diferite insigne. Aici este lista de insigne și câteva modalități prin care le poți câștiga.
|
763
763
|
title: Insigne
|
764
|
-
invitations:
|
765
|
-
conditions:
|
766
|
-
- Folosește link-ul "invită prieteni" de pe pagina ta de utilizator pentru a-ți invita prietenii
|
767
|
-
- Personalizează, dacă dorești, mesajul pe care îl trimiți
|
768
|
-
- Vei crește în nivel trimițând invitații și primindu-le înregistrate.
|
769
|
-
description: Această insignă este acordată atunci când ai invitat câțiva oameni și aceștia au petrecut puțin timp să se înregistreze în %{organization_name} și să devină participanți. Îți mulțumim că ai făcut %{organization_name} cunoscută și altora existența comunității și ai ajutat la extinderea ei!
|
770
|
-
description_another: Acest participant a invitat %{score} persoane.
|
771
|
-
description_own: Ai invitat %{score} persoane.
|
772
|
-
name: Invitații
|
773
|
-
next_level_in: Invită încă %{score} persoane să ajungă la următorul nivel!
|
774
|
-
unearned_another: Acest participant nu a invitat încă pe nimeni.
|
775
|
-
unearned_own: Nu ai invitat încă pe nimeni.
|
776
764
|
description: Insignele sunt recunoașterea acțiunilor participanților și progresele înregistrate în cadrul platformei. Pe măsură ce începi să descoperi, să participi și să interacționezi în platformă, vei câștiga diferite insigne.
|
777
765
|
level: Nivelul %{level}
|
778
766
|
reached_top: Ai atins nivelul maxim pentru această insignă.
|
@@ -1570,7 +1558,6 @@ ro:
|
|
1570
1558
|
other: 'Au existat mai multe erori la procesarea cererii dvs.:'
|
1571
1559
|
too_many_marks: folosește prea multe semne consecutive de punctuație (de ex. ! și ?)
|
1572
1560
|
too_much_caps: utilizează prea multe majuscule (peste 25% din text)
|
1573
|
-
too_short: este prea scurt (sub 15 caractere)
|
1574
1561
|
forms:
|
1575
1562
|
correct_errors: Există erori în formular, vă rugăm să le corectaţi pentru a continua.
|
1576
1563
|
length_validator:
|
data/config/locales/ru.yml
CHANGED
@@ -427,8 +427,6 @@ ru:
|
|
427
427
|
index:
|
428
428
|
how: Как вы можете его получить
|
429
429
|
title: Значки
|
430
|
-
invitations:
|
431
|
-
name: Приглашения
|
432
430
|
level: Уровень %{level}
|
433
431
|
group_admins:
|
434
432
|
actions:
|
@@ -508,10 +506,8 @@ ru:
|
|
508
506
|
no_conversations: У вас еще нет бесед
|
509
507
|
reply:
|
510
508
|
send: Отправить
|
511
|
-
title: Ответить
|
512
509
|
start:
|
513
510
|
send: Отправить
|
514
|
-
title: Начать беседу
|
515
511
|
newsletter_mailer:
|
516
512
|
newsletter:
|
517
513
|
note: Вы получили это электронное письмо, потому что подписались на новостные рассылки %{organization_name}. Вы можете изменить свои настройки на своей <a href="%{link}">странице уведомлений</a>.
|
data/config/locales/sk.yml
CHANGED
@@ -649,18 +649,6 @@ sk:
|
|
649
649
|
how: Ako ho môžete získať
|
650
650
|
page_description: Odznaky sú uznaním aktivity účastníkov a ich pokroku na platforme. Keď začnete objavovať platformu, zúčastňovať sa na nej a pracovať na nej, získate rôzne odznaky. Tu je zoznam odznakov a spôsoby, ako ich môžete získať.
|
651
651
|
title: Odznaky
|
652
|
-
invitations:
|
653
|
-
conditions:
|
654
|
-
- Použite odkaz "pozvať priateľov" na Vašej osobnej stránke pre pozvanie priateľov.
|
655
|
-
- Upravte, ak chcete, správu, ktorú posielate.
|
656
|
-
- Na ďalšiu úroveň sa dostanete rozosielaním a prijatím pozvánok.
|
657
|
-
description: Tento odznak obdržíte, ak ste pozvali pár ľudí, ktorí strávili čas registráciou v %{organization_name} a stali sa účastníkmi. Ďakujeme, že ste ostatným ukázali %{organization_name} a pomohli rozšíriť komunitu!
|
658
|
-
description_another: Tento účastník pozval %{score} ľudí.
|
659
|
-
description_own: Pozvali ste %{score} ľudí.
|
660
|
-
name: Pozvánky
|
661
|
-
next_level_in: Pozvite o %{score} ľudí viac pre dosiahnutie ďalšej úrovne!
|
662
|
-
unearned_another: Tento účastník zatiaľ nikoho nepozval.
|
663
|
-
unearned_own: Zatial ste nikoho nepozvali.
|
664
652
|
description: Odznaky sú uznanie akciou účastníkov a pokrok v platforme. Akonáhle začnete objavovať, zúčastniť sa a spolupracovať v platforme, získate rôzne odznaky.
|
665
653
|
level: Úroveň%{level}
|
666
654
|
reached_top: Dosiahli ste najvyššej úrovne tohto odznaku.
|
@@ -815,15 +803,12 @@ sk:
|
|
815
803
|
no_conversations: Nemáte zatím žádné konverzace
|
816
804
|
title: Konverzace
|
817
805
|
reply:
|
818
|
-
placeholder: Vaša odpoveď...
|
819
806
|
send: Poslat
|
820
|
-
title: Odpověď
|
821
807
|
show:
|
822
808
|
chat_with: Konverzácia s
|
823
809
|
title: Konverzace s číslem %{usernames}
|
824
810
|
start:
|
825
811
|
send: Poslat
|
826
|
-
title: Spusťte konverzaci
|
827
812
|
metrics:
|
828
813
|
followers:
|
829
814
|
description: Počet účastníkov, ktorí sledujú tento participatívny priestor
|
@@ -1266,7 +1251,6 @@ sk:
|
|
1266
1251
|
other: 'Pri spracovaní vašej požiadavky došlo k nejakým chybám:'
|
1267
1252
|
too_many_marks: používa príliš veľa po sebe idúcich interpunkčných znamienok (napr.! a?)
|
1268
1253
|
too_much_caps: používa príliš veľa veľkých písmen (viac ako 25% textu)
|
1269
|
-
too_short: je príliš krátka (pod 15 znakov)
|
1270
1254
|
forms:
|
1271
1255
|
required: Povinný
|
1272
1256
|
invisible_captcha:
|
data/config/locales/sv.yml
CHANGED
@@ -805,18 +805,6 @@ sv:
|
|
805
805
|
how: Hur kan du få det
|
806
806
|
page_description: Märken visar att du varit aktiv som deltagare på plattformen och deltagit i behandlingen. Medan du upptäcker, deltar och samverkar på plattformen får du olika märken. Här är listan med märken och hur du kan få dem.
|
807
807
|
title: Märken
|
808
|
-
invitations:
|
809
|
-
conditions:
|
810
|
-
- Bjud in dina vänner med länken "bjud in vänner" på din användarsida
|
811
|
-
- Om du vill kan du anpassa meddelandet som du skickar
|
812
|
-
- Nå nästa nivå genom att skicka inbjudningar till andra och få dem att registrera sig.
|
813
|
-
description: Du får detta märke när när du har bjudit in några personer, de har registrerat sig i %{organization_name} och blivit deltagare. Tack för att du gör %{organization_name} mer välkänt och gör vår gemenskap större!
|
814
|
-
description_another: Den här deltagaren har bjudit in %{score} personer.
|
815
|
-
description_own: Du har bjudit in %{score} personer.
|
816
|
-
name: Inbjudningar
|
817
|
-
next_level_in: Nå nästa nivå genom att bjuda in %{score} personer till!
|
818
|
-
unearned_another: Denna deltagare har inte bjudit in någon användare än.
|
819
|
-
unearned_own: Du har inte ännu bjudit in någon annan.
|
820
808
|
description: Märken visar att du varit aktiv som deltagare på plattformen och deltagit i behandlingen. Medan du upptäcker, deltar och samverkar på plattformen får du olika märken.
|
821
809
|
level: Nivå %{level}
|
822
810
|
reached_top: Du har nått den högsta nivån för detta märke.
|
@@ -1619,7 +1607,6 @@ sv:
|
|
1619
1607
|
other: 'Det finns flera fel i din begäran:'
|
1620
1608
|
too_many_marks: använder för många på varandra följande skiljetecken (t.ex. ! och ?)
|
1621
1609
|
too_much_caps: använder för många stora bokstäver (över 25% av texten)
|
1622
|
-
too_short: är för kort (under 15 tecken)
|
1623
1610
|
forms:
|
1624
1611
|
correct_errors: Det finns fel på formuläret, vänligen korrigera dem för att fortsätta.
|
1625
1612
|
length_validator:
|
data/config/locales/tr-TR.yml
CHANGED
@@ -725,18 +725,6 @@ tr:
|
|
725
725
|
how: Nasıl kazanabilirsin
|
726
726
|
page_description: Rozetler, katılımcı eylemleri ve platformdaki ilerlemeleri tanımaktadır. Platformda keşfetmeye, katılmaya ve etkileşim kurmaya başladığınızda farklı rozetler kazanacaksınız. İşte rozetlerin listesi ve bunları kazanmanın bazı yolları.
|
727
727
|
title: Rozetler
|
728
|
-
invitations:
|
729
|
-
conditions:
|
730
|
-
- Arkadaşlarınızı davet etmek için kullanıcı sayfanızdaki “arkadaşlarını davet et” bağlantısını kullanın.
|
731
|
-
- İsterseniz, göndermek istediğiniz mesajı özelleştirin
|
732
|
-
- Davetiyeler göndererek ve onları kayıt altına alarak seviye atlayacaksınız.
|
733
|
-
description: Bu rozeti, bazı kişileri davet ettiğinizde ve %{organization_name} kaydolmak ve katılımcı olmak için biraz zaman ayırdıklarında verilir. Yaptığınız için teşekkür ederiz %{organization_name} başkalarına bilinen ve topluluğu genişletmek için yardımcı!
|
734
|
-
description_another: Bu kullanıcı %{score} kullanıcı davet etti.
|
735
|
-
description_own: '%{score} kullanıcıyı davet ettiniz.'
|
736
|
-
name: Davetiyeler
|
737
|
-
next_level_in: Bir sonraki seviyeye ulaşmak için %{score} kullanıcı daha davet edin!
|
738
|
-
unearned_another: Bu kullanıcı henüz bir kullanıcıyı davet etmedi.
|
739
|
-
unearned_own: Henüz hiç kullanıcı davet etmediniz.
|
740
728
|
description: Rozetler, katılımcı eylemleri ve platformdaki ilerlemeleri tanımaktadır. Platformda keşfetmeye, katılmaya ve etkileşim kurmaya başladığınızda farklı rozetler kazanacaksınız.
|
741
729
|
level: Seviye %{level}
|
742
730
|
reached_top: Bu rozetin en üst seviyesine ulaştınız.
|
@@ -924,7 +912,7 @@ tr:
|
|
924
912
|
ok: OK
|
925
913
|
index:
|
926
914
|
ago: önce
|
927
|
-
close:
|
915
|
+
close: Yakın kalıcı
|
928
916
|
from: Gönderen
|
929
917
|
groups: Gruplarım
|
930
918
|
last_message: Son mesaj
|
@@ -942,7 +930,7 @@ tr:
|
|
942
930
|
title: '%{usernames} ile görüşme'
|
943
931
|
start:
|
944
932
|
send: Gönder
|
945
|
-
title: Bir görüşme
|
933
|
+
title: Bir görüşme başlatın
|
946
934
|
update:
|
947
935
|
error: Bir hata nedeniyle mesaj gönderilemedi
|
948
936
|
metrics:
|
@@ -1490,7 +1478,6 @@ tr:
|
|
1490
1478
|
other: 'İsteğinizi işlerken birden çok hata oluştu:'
|
1491
1479
|
too_many_marks: çok fazla ardışık noktalama işareti kullanıyor (örneğin! ve?)
|
1492
1480
|
too_much_caps: çok fazla büyük harf kullanıyor (metnin% 25'inden fazlası)
|
1493
|
-
too_short: çok kısa (15 karakterin altında)
|
1494
1481
|
forms:
|
1495
1482
|
correct_errors: Aşağıdaki formda hatalar oluştu, Devam etmek için lütfen bunları düzeltin.
|
1496
1483
|
required: gereklidir
|
data/config/locales/uk.yml
CHANGED
@@ -381,10 +381,9 @@ uk:
|
|
381
381
|
close: Закрити віконце
|
382
382
|
no_conversations: У вас ще немає бесід
|
383
383
|
reply:
|
384
|
-
|
384
|
+
send: Надіслати
|
385
385
|
start:
|
386
386
|
send: Надіслати
|
387
|
-
title: Почати бесіду
|
388
387
|
newsletter_mailer:
|
389
388
|
newsletter:
|
390
389
|
note: Ви отримали цього електронного листа, оскільки ви підписалися на новини щодо %{organization_name}. Ви можете змінити свої налаштування на <a href="%{link}">сторінці сповіщень</a>.
|
data/config/locales/zh-CN.yml
CHANGED
@@ -653,18 +653,6 @@ zh-CN:
|
|
653
653
|
how: 你如何赚钱
|
654
654
|
page_description: 徽章是对参与者行动和平台进展的承认。 当您开始发现、参与和互动平台时,您将获得不同的徽章。 这里是徽章列表和您可以赚取它们的某些方式。
|
655
655
|
title: 徽章
|
656
|
-
invitations:
|
657
|
-
conditions:
|
658
|
-
- 使用您用户页面上的“邀请好友”链接来邀请您的朋友
|
659
|
-
- 自定义,如果您想要,您正在发送的消息
|
660
|
-
- 您将通过发送邀请和注册来提高等级。
|
661
|
-
description: 当您已经邀请了一些人并且他们花了一些时间在 %{organization_name} 注册并成为参与者时,这个徽章将被授予。 感谢您向其他人宣传了 %{organization_name} 并帮助扩展社区!
|
662
|
-
description_another: 此参与者已邀请了 %{score} 人。
|
663
|
-
description_own: 您已邀请了 %{score} 人。
|
664
|
-
name: 邀请
|
665
|
-
next_level_in: 邀请更多 %{score} 人到达下一个关卡!
|
666
|
-
unearned_another: 此参与者尚未邀请任何人。
|
667
|
-
unearned_own: 你还没有邀请任何人。
|
668
656
|
description: 徽章是对参与者行动和平台进展的承认。 当您开始发现、参与和互动平台时,您将获得不同的徽章。
|
669
657
|
level: 等级 %{level}
|
670
658
|
reached_top: 你已经达到了这个徽章的顶级了。
|
@@ -1393,7 +1381,6 @@ zh-CN:
|
|
1393
1381
|
other: '处理您的请求时发生多个错误:'
|
1394
1382
|
too_many_marks: 正在使用太多连续标点符号(例如! 和 ?)
|
1395
1383
|
too_much_caps: 正在使用太多大写字母(超过25%文本)
|
1396
|
-
too_short: 太短(低于15个字符)
|
1397
1384
|
forms:
|
1398
1385
|
correct_errors: 表单上有错误,请更正以继续。
|
1399
1386
|
required: 必填字段
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module Attributes
|
5
5
|
# Custom attributes value to parse a String representing a Time using
|
6
6
|
# the app TimeZone.
|
7
|
-
class TimeWithZone < ActiveModel::Type::
|
7
|
+
class TimeWithZone < ActiveModel::Type::DateTime
|
8
8
|
def type
|
9
9
|
:"decidim/attributes/time_with_zone"
|
10
10
|
end
|
@@ -16,7 +16,10 @@ module Decidim
|
|
16
16
|
|
17
17
|
Time.zone.strptime(value, I18n.t("time.formats.decidim_short"))
|
18
18
|
rescue ArgumentError
|
19
|
-
|
19
|
+
fallback = super
|
20
|
+
return fallback unless fallback.is_a?(Time)
|
21
|
+
|
22
|
+
ActiveSupport::TimeWithZone.new(fallback, Time.zone)
|
20
23
|
end
|
21
24
|
end
|
22
25
|
end
|
data/lib/decidim/core/engine.rb
CHANGED
@@ -253,6 +253,13 @@ module Decidim
|
|
253
253
|
end
|
254
254
|
end
|
255
255
|
|
256
|
+
initializer "decidim.validators" do
|
257
|
+
config.to_prepare do
|
258
|
+
# Decidim overrides to the file content type validator
|
259
|
+
require "file_content_type_validator"
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
256
263
|
initializer "decidim.content_processors" do |_app|
|
257
264
|
Decidim.configure do |config|
|
258
265
|
config.content_processors += [:user, :user_group, :hashtag, :link]
|
@@ -542,11 +549,6 @@ module Decidim
|
|
542
549
|
end
|
543
550
|
|
544
551
|
initializer "decidim.core.add_badges" do
|
545
|
-
Decidim::Gamification.register_badge(:invitations) do |badge|
|
546
|
-
badge.levels = [1, 5, 10, 30, 50]
|
547
|
-
badge.reset = ->(user) { Decidim::User.where(invited_by: user.id).count }
|
548
|
-
end
|
549
|
-
|
550
552
|
Decidim::Gamification.register_badge(:followers) do |badge|
|
551
553
|
badge.levels = [1, 15, 30, 60, 100]
|
552
554
|
badge.reset = ->(user) { user.followers.count }
|
@@ -761,7 +761,7 @@ shared_examples "comments" do
|
|
761
761
|
|
762
762
|
it "replaces the mention with a link to the user's profile" do
|
763
763
|
expect(page).to have_comment_from(user, "A valid user mention: @#{mentioned_user.nickname}", wait: 20)
|
764
|
-
expect(page).to have_link "@#{mentioned_user.nickname}", href: "http://#{mentioned_user.organization.host}/profiles/#{mentioned_user.nickname}"
|
764
|
+
expect(page).to have_link "@#{mentioned_user.nickname}", href: "http://#{mentioned_user.organization.host}:#{Capybara.server_port}/profiles/#{mentioned_user.nickname}"
|
765
765
|
end
|
766
766
|
end
|
767
767
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
shared_examples_for "has embedded video in description" do |description_attribute_name|
|
4
|
+
let(description_attribute_name) { { en: %(Description <iframe class="ql-video" allowfullscreen="true" src="#{iframe_src}" frameborder="0"></iframe>) } }
|
5
|
+
let(:iframe_src) { "http://www.example.org" }
|
6
|
+
|
7
|
+
context "when cookies are rejected" do
|
8
|
+
before do
|
9
|
+
click_link "Cookie settings"
|
10
|
+
click_button "Accept only essential"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "disables iframe" do
|
14
|
+
expect(page).to have_content("You need to enable all cookies in order to see this content")
|
15
|
+
expect(page).not_to have_selector("iframe")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when cookies are accepted" do
|
20
|
+
before do
|
21
|
+
click_link "Cookie settings"
|
22
|
+
click_button "Accept all"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "shows iframe" do
|
26
|
+
expect(page).not_to have_content("You need to enable all cookies in order to see this content")
|
27
|
+
expect(page).to have_selector("iframe", count: 1)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
shared_examples_for "m-cell" do |model_name|
|
6
|
+
context "with decorated title" do
|
7
|
+
let(:cell_model) { send(model_name) }
|
8
|
+
|
9
|
+
before do
|
10
|
+
cell_model.update!(title: { en: "Model <strong>decorated title</strong>" })
|
11
|
+
end
|
12
|
+
|
13
|
+
it "renders the escaped title correctly" do
|
14
|
+
expect(cell_html.to_s).to include("Model <strong>decorated title</strong>")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/decidim/core/test.rb
CHANGED
@@ -4,6 +4,7 @@ require "decidim/core/test/shared_examples/acts_as_author_examples"
|
|
4
4
|
require "decidim/core/test/shared_examples/admin_log_presenter_examples"
|
5
5
|
require "decidim/core/test/shared_examples/authorable"
|
6
6
|
require "decidim/core/test/shared_examples/coauthorable"
|
7
|
+
require "decidim/core/test/shared_examples/editor_shared_examples"
|
7
8
|
require "decidim/core/test/shared_examples/endorsable"
|
8
9
|
require "decidim/core/test/shared_examples/publicable"
|
9
10
|
require "decidim/core/test/shared_examples/localised_email"
|
@@ -73,3 +74,4 @@ require "decidim/core/test/shared_examples/translated_event_examples"
|
|
73
74
|
require "decidim/core/test/shared_examples/conversations_examples"
|
74
75
|
require "decidim/core/test/shared_examples/resource_endorsed_event_examples"
|
75
76
|
require "decidim/core/test/shared_examples/versions_controller_examples"
|
77
|
+
require "decidim/core/test/shared_examples/mcell_examples"
|
data/lib/decidim/core/version.rb
CHANGED
data/lib/decidim/form_builder.rb
CHANGED
@@ -387,7 +387,14 @@ module Decidim
|
|
387
387
|
def datetime_field(attribute, options = {})
|
388
388
|
value = object.send(attribute)
|
389
389
|
data = { datepicker: "", timepicker: "" }
|
390
|
-
|
390
|
+
if value.present?
|
391
|
+
case value
|
392
|
+
when ActiveSupport::TimeWithZone
|
393
|
+
data[:startdate] = I18n.l(value, format: :decidim_short)
|
394
|
+
when Time, DateTime
|
395
|
+
data[:startdate] = I18n.l(value.in_time_zone(Time.zone), format: :decidim_short)
|
396
|
+
end
|
397
|
+
end
|
391
398
|
datepicker_format = ruby_format_to_datepicker(I18n.t("time.formats.decidim_short"))
|
392
399
|
data[:"date-format"] = datepicker_format
|
393
400
|
|
@@ -417,7 +424,7 @@ module Decidim
|
|
417
424
|
max_file_size: max_file_size(record, :file),
|
418
425
|
label: I18n.t("decidim.forms.upload.labels.add_attachment"),
|
419
426
|
button_edit_label: I18n.t("decidim.forms.upload.labels.edit_image"),
|
420
|
-
extension_allowlist: Decidim.organization_settings(
|
427
|
+
extension_allowlist: Decidim.organization_settings(record).upload_allowed_file_extensions
|
421
428
|
}.merge(options)
|
422
429
|
|
423
430
|
# Upload help uses extension allowlist from the options so we need to call this AFTER setting the defaults.
|
@@ -844,7 +851,7 @@ module Decidim
|
|
844
851
|
end
|
845
852
|
|
846
853
|
def extension_allowlist_help(extension_allowlist)
|
847
|
-
[
|
854
|
+
[I18n.t("extension_allowlist", scope: "decidim.forms.files", extensions: extension_allowlist.map { |ext| ext }.join(", "))]
|
848
855
|
end
|
849
856
|
|
850
857
|
def image_dimensions_help(dimensions_info)
|
data/lib/decidim/resourceable.rb
CHANGED
@@ -36,8 +36,8 @@ module Decidim
|
|
36
36
|
# link_name - The String name of the link between this model and the target resource.
|
37
37
|
#
|
38
38
|
# Returns an ActiveRecord::Relation.
|
39
|
-
def linked_resources(resource_name, link_name)
|
40
|
-
scope = sibling_scope(resource_name)
|
39
|
+
def linked_resources(resource_name, link_name, component_published: true)
|
40
|
+
scope = sibling_scope(resource_name, component_published: component_published)
|
41
41
|
|
42
42
|
from = scope
|
43
43
|
.joins(:resource_links_from)
|
@@ -56,14 +56,15 @@ module Decidim
|
|
56
56
|
# resource_name - The String name of the resource manifest exposed by a component.
|
57
57
|
#
|
58
58
|
# Returns an ActiveRecord::Relation.
|
59
|
-
def sibling_scope(resource_name)
|
59
|
+
def sibling_scope(resource_name, component_published: true)
|
60
60
|
manifest = Decidim.find_resource_manifest(resource_name)
|
61
61
|
return self.class.none unless manifest
|
62
62
|
|
63
63
|
scope = manifest.resource_scope(component)
|
64
64
|
scope = scope.where("#{self.class.table_name}.id != ?", id) if manifest.model_class == self.class
|
65
65
|
scope = scope.not_hidden if manifest.model_class.respond_to?(:not_hidden)
|
66
|
-
scope.includes(:component).where.not(decidim_components: { published_at: nil })
|
66
|
+
scope = scope.includes(:component).where.not(decidim_components: { published_at: nil }) if component_published
|
67
|
+
scope
|
67
68
|
end
|
68
69
|
|
69
70
|
# Links the given resources to this model, replaces any previous links with the same name.
|
@@ -97,7 +97,7 @@ module Decidim
|
|
97
97
|
enum: { klass: String, default: nil },
|
98
98
|
select: { klass: String, default: nil },
|
99
99
|
scope: { klass: Integer, default: nil },
|
100
|
-
time: { klass:
|
100
|
+
time: { klass: Decidim::Attributes::TimeWithZone, default: nil }
|
101
101
|
}.freeze
|
102
102
|
|
103
103
|
attribute :type, Symbol, default: :boolean
|