decidim-core 0.30.0.rc1 → 0.30.0.rc3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/cells/decidim/amendable/amendments/show.erb +1 -1
- data/app/cells/decidim/profile_actions/show.erb +1 -1
- data/app/cells/decidim/report_button/already_reported_modal.erb +2 -2
- data/app/cells/decidim/report_button/flag_modal.erb +13 -27
- data/app/cells/decidim/report_button_cell.rb +2 -8
- data/app/cells/decidim/report_user_button/already_reported_modal.erb +11 -0
- data/app/cells/decidim/report_user_button/flag_modal.erb +46 -0
- data/app/cells/decidim/report_user_button/show.erb +2 -0
- data/app/cells/decidim/report_user_button_cell.rb +59 -0
- data/app/cells/decidim/resource_types_filter/show.erb +1 -1
- data/app/cells/decidim/resource_types_filter_cell.rb +6 -6
- data/app/cells/decidim/user_activity/show.erb +1 -1
- data/app/commands/decidim/create_omniauth_registration.rb +14 -8
- data/app/controllers/decidim/profiles_controller.rb +2 -2
- data/app/controllers/decidim/user_activities_controller.rb +1 -1
- data/app/forms/decidim/account_form.rb +2 -2
- data/app/helpers/decidim/orders_helper.rb +2 -1
- data/app/helpers/decidim/participatory_space_helpers.rb +1 -1
- data/app/jobs/decidim/hide_child_resources_job.rb +24 -0
- data/app/jobs/decidim/migrate/paper_trail_job.rb +33 -0
- data/app/models/decidim/report.rb +1 -1
- data/app/models/decidim/user.rb +0 -4
- data/app/models/decidim/user_base_entity.rb +4 -0
- data/app/packs/src/decidim/map/provider/here.js +1 -1
- data/app/packs/src/decidim/sticky_footer.js +19 -0
- data/app/packs/stylesheets/decidim/_cards.scss +4 -0
- data/app/packs/stylesheets/decidim/_content_blocks.scss +1 -1
- data/app/packs/stylesheets/decidim/_hashtags.scss +5 -0
- data/app/packs/stylesheets/decidim/_login.scss +4 -0
- data/app/packs/stylesheets/decidim/_modal_authorization.scss +1 -1
- data/app/packs/stylesheets/decidim/_profile.scss +1 -1
- data/app/packs/stylesheets/decidim/application.scss +1 -0
- data/app/resolvers/decidim/meta_image_url_resolver.rb +1 -0
- data/app/services/decidim/static_map_generator.rb +1 -1
- data/app/views/decidim/devise/registrations/new.html.erb +1 -1
- data/app/views/decidim/devise/sessions/new.html.erb +1 -1
- data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +1 -1
- data/app/views/decidim/last_activities/index.html.erb +1 -1
- data/app/views/decidim/open_data/index.html.erb +1 -1
- data/app/views/decidim/shared/_orders.html.erb +2 -2
- data/config/locales/ar.yml +12 -25
- data/config/locales/bg.yml +8 -22
- data/config/locales/ca.yml +22 -34
- data/config/locales/cs.yml +24 -31
- data/config/locales/de.yml +17 -21
- data/config/locales/el.yml +8 -13
- data/config/locales/en.yml +4 -16
- data/config/locales/eo.yml +2 -0
- data/config/locales/es-MX.yml +16 -28
- data/config/locales/es-PY.yml +21 -33
- data/config/locales/es.yml +22 -34
- data/config/locales/eu.yml +61 -75
- data/config/locales/fi-plain.yml +20 -27
- data/config/locales/fi.yml +22 -29
- data/config/locales/fr-CA.yml +60 -20
- data/config/locales/fr.yml +60 -20
- data/config/locales/ga-IE.yml +2 -4
- data/config/locales/gl.yml +22 -13
- data/config/locales/hu.yml +7 -21
- data/config/locales/id-ID.yml +22 -13
- data/config/locales/is-IS.yml +10 -0
- data/config/locales/it.yml +22 -20
- data/config/locales/ja.yml +120 -21
- data/config/locales/lb.yml +19 -19
- data/config/locales/lt.yml +5 -17
- data/config/locales/lv.yml +16 -13
- data/config/locales/nl.yml +20 -17
- data/config/locales/no.yml +16 -16
- data/config/locales/pl.yml +4 -18
- data/config/locales/pt-BR.yml +8 -21
- data/config/locales/pt.yml +16 -16
- data/config/locales/ro-RO.yml +39 -20
- data/config/locales/ru.yml +23 -8
- data/config/locales/sk.yml +27 -16
- data/config/locales/sv.yml +46 -25
- data/config/locales/tr-TR.yml +21 -20
- data/config/locales/uk.yml +12 -1
- data/config/locales/zh-CN.yml +16 -13
- data/config/locales/zh-TW.yml +6 -16
- data/db/migrate/20240722215500_change_object_changes_on_versions.rb +4 -24
- data/lib/decidim/content_parsers/user_parser.rb +1 -1
- data/lib/decidim/core/test/shared_examples/reports_examples.rb +51 -0
- data/lib/decidim/core/test/shared_examples/social_share_examples.rb +21 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/maintenance/import_models/category.rb +40 -8
- data/lib/decidim/maintenance/taxonomy_importer.rb +10 -0
- data/lib/decidim/map/provider/dynamic_map/here.rb +1 -40
- data/lib/decidim/map/provider/static_map/here.rb +34 -0
- data/lib/decidim/moderation_tools.rb +15 -2
- data/lib/decidim/nicknamizable.rb +1 -1
- data/lib/tasks/decidim_taxonomies.rake +6 -1
- data/lib/tasks/upgrade/clean_hidden_resources.rake +33 -0
- data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +23 -20
- data/lib/tasks/upgrade/migrations.rake +4 -1
- metadata +14 -14
- data/app/cells/decidim/author/flag.erb +0 -6
- data/app/cells/decidim/author/flag_user.erb +0 -14
- data/app/cells/decidim/flag_modal/flag_user.erb +0 -34
- data/app/cells/decidim/flag_modal/show.erb +0 -52
- data/app/cells/decidim/flag_modal_cell.rb +0 -56
- data/app/cells/decidim/profile_sidebar/show.erb +0 -167
- data/app/cells/decidim/profile_sidebar_cell.rb +0 -68
- data/app/packs/src/decidim/vendor/leaflet-tilelayer-here.js +0 -212
data/config/locales/sv.yml
CHANGED
@@ -35,6 +35,8 @@ sv:
|
|
35
35
|
personal_url: Personlig URL
|
36
36
|
remove_avatar: Ta bort avatar
|
37
37
|
tos_agreement: Användarvillkor
|
38
|
+
user_group:
|
39
|
+
avatar: Profilbild
|
38
40
|
models:
|
39
41
|
decidim/attachment_created_event: Bilaga
|
40
42
|
decidim/component_published_event: Aktiv komponent
|
@@ -716,7 +718,42 @@ sv:
|
|
716
718
|
created_at: Datum och tid då identiteten skapades
|
717
719
|
id: Unikt id för identiteten
|
718
720
|
provider: Leverantören av identiteten
|
721
|
+
participatory_space_private_users:
|
722
|
+
created_at: Datum och tid när den privata användaren skapades
|
723
|
+
id: Unikt id för den privata användaren
|
724
|
+
privatable_to: Till vilken plats den privata användaren tillhör
|
725
|
+
published: Om den privata användaren är publicerad eller inte
|
726
|
+
role: Den privata användarens roll
|
727
|
+
updated_at: Datum och tid när den privata användaren senast uppdaterades
|
728
|
+
reports:
|
729
|
+
created_at: Datum och tid för när rapporteringen skapades
|
730
|
+
details: Mer information om rapporteringen
|
731
|
+
id: Unikt id för rapporteringen
|
732
|
+
locale: Rapporteringens språk
|
733
|
+
moderation: Moderering av rapporteringen
|
734
|
+
reason: Anledning till rapporteringen
|
735
|
+
updated_at: Datum och tid för när rapporteringen senast uppdaterades
|
736
|
+
user_groups:
|
737
|
+
document_number: Dokumentnumret för denna användargrupp
|
738
|
+
id: Unikt id för användargruppen
|
739
|
+
name: Namn på användargruppen
|
740
|
+
phone: Telefonnummer till användargruppen
|
741
|
+
verified_at: Datum och tid för när användargruppen verifierades
|
719
742
|
users:
|
743
|
+
about: Presentation av användaren
|
744
|
+
accepted_tos_version: Det datum då användarvillkoren godkändes av användaren
|
745
|
+
admin: Om användaren är administratör
|
746
|
+
confirmation_sent_at: Datum och tid då bekräftelsen skickades
|
747
|
+
confirmed_at: Datum och tid när användaren bekräftades
|
748
|
+
created_at: Datum och tid när användaren skapades
|
749
|
+
current_sign_in_at: Datum och tid för den aktuella inloggningen
|
750
|
+
current_sign_in_ip: IP-adressen för den aktuella inloggningen
|
751
|
+
delete_reason: Anledningen till att ta bort denna användare
|
752
|
+
deleted_at: Datum och tid när användaren togs bort
|
753
|
+
email: E-postadressen till användaren
|
754
|
+
followers_count: Antal deltagare som följer användaren
|
755
|
+
following_count: Antal deltagare som användaren följer
|
756
|
+
id: Unikt id för användaren
|
720
757
|
invited_by: Användaren som bjöd in den här användaren
|
721
758
|
last_sign_in_at: Datum och tid för senaste inloggningen
|
722
759
|
last_sign_in_ip: IP-adressen för den senaste inloggningen
|
@@ -1034,7 +1071,7 @@ sv:
|
|
1034
1071
|
accept:
|
1035
1072
|
error: Det gick inte att godkänna den här inbjudan.
|
1036
1073
|
success: Inbjudan har godkänts.
|
1037
|
-
accept_invitation:
|
1074
|
+
accept_invitation: Acceptera
|
1038
1075
|
accept_or_reject_group_invitations: 'Du har blivit inbjuden till följande grupper. Godkänn eller avvisa deras förfrågningar:'
|
1039
1076
|
index:
|
1040
1077
|
invite: Inbjudan
|
@@ -1092,7 +1129,7 @@ sv:
|
|
1092
1129
|
success: Du har lämnat gruppen.
|
1093
1130
|
members:
|
1094
1131
|
accept_or_reject_join_requests: 'Följande användare har ansökt om att få gå med i den här gruppen. Godkänn eller avvisa deras förfrågningar:'
|
1095
|
-
accept_request:
|
1132
|
+
accept_request: Acceptera
|
1096
1133
|
reject_request: Avvisa
|
1097
1134
|
new:
|
1098
1135
|
create_user_group: Skapa grupp
|
@@ -1171,13 +1208,13 @@ sv:
|
|
1171
1208
|
conversation_mailer:
|
1172
1209
|
comanagers_new_conversation:
|
1173
1210
|
admin_in_group: Du får detta eftersom du är administratör i %{group}.
|
1174
|
-
greeting:
|
1211
|
+
greeting: Hej %{recipient}!
|
1175
1212
|
intro: "%{manager} har startat en ny konversation som %{group}. Klicka här för att se den:"
|
1176
1213
|
outro: Ha det så kul!
|
1177
1214
|
subject: "%{manager} har startat en ny konversation som %{group}"
|
1178
1215
|
comanagers_new_message:
|
1179
1216
|
admin_in_group: Du får detta eftersom du är administratör i %{group}.
|
1180
|
-
greeting:
|
1217
|
+
greeting: Hej %{recipient}!
|
1181
1218
|
intro: "%{manager} har postat nya meddelanden i en konversation som %{group}. Klicka här för att se dem:"
|
1182
1219
|
outro: Ha det så kul!
|
1183
1220
|
subject: "%{manager} har skickat nya meddelanden som %{group}"
|
@@ -1188,13 +1225,13 @@ sv:
|
|
1188
1225
|
subject: "%{sender} har startat en konversation med dig"
|
1189
1226
|
new_group_conversation:
|
1190
1227
|
admin_in_group: Du får detta eftersom du är administratör i %{group}.
|
1191
|
-
greeting:
|
1228
|
+
greeting: Hej %{recipient}!
|
1192
1229
|
intro: "%{sender} har startat en ny konversation med gruppen %{group}. Klicka här för att se den:"
|
1193
1230
|
outro: Ha det så kul!
|
1194
1231
|
subject: "%{sender} har startat en konversation med %{group}"
|
1195
1232
|
new_group_message:
|
1196
1233
|
admin_in_group: Du får detta eftersom du är administratör i %{group}.
|
1197
|
-
greeting:
|
1234
|
+
greeting: Hej %{recipient}!
|
1198
1235
|
intro: "%{sender} har postat nya meddelanden i en konversation med gruppen %{group}. Klicka här för att se den:"
|
1199
1236
|
outro: Ha det så kul!
|
1200
1237
|
subject: "%{group} har fått nya meddelanden från %{sender}"
|
@@ -1438,35 +1475,22 @@ sv:
|
|
1438
1475
|
members: Medlemmar
|
1439
1476
|
officialized: Officiell deltagare
|
1440
1477
|
send_private_message: Skicka privat meddelande
|
1441
|
-
sidebar:
|
1442
|
-
badges:
|
1443
|
-
info: Man får märken genom att utföra olika aktiviteter på plattformen.
|
1444
|
-
title: Märken
|
1445
1478
|
user:
|
1446
1479
|
actions:
|
1447
1480
|
create_user_group: Skapa grupp
|
1448
1481
|
disabled_message: Meddelande
|
1449
1482
|
edit_profile: Redigera profil
|
1450
|
-
edit_user_group: Redigera
|
1483
|
+
edit_user_group: Redigera grupprofil
|
1451
1484
|
invite_user: Bjud in deltagare
|
1452
|
-
join_user_group:
|
1485
|
+
join_user_group: Begäran att gå med i grupp
|
1453
1486
|
leave_user_group: Lämna grupp
|
1454
1487
|
manage_user_group: Hantera grupp
|
1455
1488
|
manage_user_group_admins: Hantera administratörer
|
1456
1489
|
manage_user_group_users: Hantera medlemmar
|
1457
1490
|
message: Meddelande
|
1458
|
-
resend_email_confirmation_instructions: Skicka e-
|
1491
|
+
resend_email_confirmation_instructions: Skicka anvisningarna om bekräftelse om e-post igen
|
1459
1492
|
confirmation_instructions_sent: Instruktioner för e-postbekräftelse har skickats.
|
1460
|
-
create_user_group: Skapa grupp
|
1461
|
-
edit_profile: Redigera profil
|
1462
|
-
edit_user_group: Redigera grupprofil
|
1463
1493
|
fill_in_email_to_confirm_it: Fyll i gruppens e-postadress för att bekräfta den.
|
1464
|
-
invite_user: Bjud in deltagare
|
1465
|
-
join_user_group: Begäran att gå med i grupp
|
1466
|
-
leave_user_group: Lämna grupp
|
1467
|
-
manage_user_group_admins: Hantera administratörer
|
1468
|
-
manage_user_group_users: Hantera medlemmar
|
1469
|
-
resend_email_confirmation_instructions: Skicka anvisningarna om bekräftelse om e-post igen
|
1470
1494
|
reported_mailer:
|
1471
1495
|
hide:
|
1472
1496
|
hello: Hej %{name},
|
@@ -1550,14 +1574,11 @@ sv:
|
|
1550
1574
|
flag_user_modal:
|
1551
1575
|
already_reported: Det här innehållet har redan rapporterats och kommer att granskas av en administratör.
|
1552
1576
|
block: Blockera användaren
|
1553
|
-
close: Stäng
|
1554
|
-
description: Vad är olämpligt med användaren?
|
1555
1577
|
does_not_belong: Innehåller olaglig information, hot om självmord, personuppgifter eller något annat som inte hör hemma på %{organization_name}.
|
1556
1578
|
hide: Dölj allt innehåll
|
1557
1579
|
offensive: Innehåller rasism, sexism, personangrepp, mordhot, uppmaning att begå självmord eller hets mot folkgrupp.
|
1558
1580
|
report: Rapportera
|
1559
1581
|
spam: Innehåller clickbait, reklam, bedrägerier eller botar.
|
1560
|
-
title: Rapportera olämplig användare
|
1561
1582
|
floating_help:
|
1562
1583
|
help: Hjälp
|
1563
1584
|
follow_button:
|
data/config/locales/tr-TR.yml
CHANGED
@@ -25,6 +25,8 @@ tr:
|
|
25
25
|
password_confirmation: Şifrenizi Onaylayın
|
26
26
|
personal_url: Kişisel URL
|
27
27
|
remove_avatar: Avatarı kaldır
|
28
|
+
user_group:
|
29
|
+
avatar: Avatar
|
28
30
|
models:
|
29
31
|
decidim/attachment_created_event: Ek dosya
|
30
32
|
decidim/component_published_event: Aktif bileşen
|
@@ -721,14 +723,15 @@ tr:
|
|
721
723
|
conversation_mailer:
|
722
724
|
comanagers_new_conversation:
|
723
725
|
admin_in_group: Bunu, %{group} grubunun yöneticisi olduğunuz için alıyorsunuz.
|
724
|
-
greeting: Merhaba
|
726
|
+
greeting: Merhaba %{recipient}!
|
725
727
|
intro: "%{manager}, %{group} adına yeni bir görüşme başlattı. Görmek için buraya tıklayın:"
|
726
728
|
outro: Platformun tadını çıkarın!
|
727
729
|
subject: "%{manager}, %{group} olarak yeni bir görüşme başlattı"
|
728
730
|
comanagers_new_message:
|
729
731
|
admin_in_group: Bunu, %{group} grubunun yöneticisi olduğunuz için alıyorsunuz.
|
730
|
-
greeting: Merhaba
|
732
|
+
greeting: Merhaba %{recipient}!
|
731
733
|
intro: "%{manager}, %{group} adına bir görüşmede yeni mesajlar yayınladı. Onları görmek için buraya tıklayın:"
|
734
|
+
outro: Platformun tadını çıkarın!
|
732
735
|
subject: "%{manager} %{group} olarak yeni mesajlar gönderdi"
|
733
736
|
new_conversation:
|
734
737
|
greeting: Merhaba %{recipient}!
|
@@ -737,13 +740,13 @@ tr:
|
|
737
740
|
subject: "%{sender} sizinle bir konuşma başlattı"
|
738
741
|
new_group_conversation:
|
739
742
|
admin_in_group: Bunu, %{group} grubunun yöneticisi olduğunuz için alıyorsunuz.
|
740
|
-
greeting: Merhaba
|
743
|
+
greeting: Merhaba %{recipient}!
|
741
744
|
intro: "%{sender}, %{group} adına yeni bir görüşme başlattı. Görmek için buraya tıklayın:"
|
742
745
|
outro: Platformun tadını çıkarın!
|
743
746
|
subject: "%{sender}, %{group} olarak yeni bir görüşme başlattı"
|
744
747
|
new_group_message:
|
745
748
|
admin_in_group: Bunu, %{group} grubunun yöneticisi olduğunuz için alıyorsunuz.
|
746
|
-
greeting: Merhaba
|
749
|
+
greeting: Merhaba %{recipient}!
|
747
750
|
intro: "%{sender}, %{group} grubuyla bir görüşmede yeni mesajlar yayınladı. Görmek için buraya tıklayın:"
|
748
751
|
outro: Platformun tadını çıkarın!
|
749
752
|
subject: "%{group}, %{sender} adlı kişiden yeni mesajlar aldı"
|
@@ -767,6 +770,8 @@ tr:
|
|
767
770
|
new_conversation: Yeni görüşme
|
768
771
|
next: Sonraki
|
769
772
|
title: Konuşmalar
|
773
|
+
reply_form:
|
774
|
+
placeholder: Cevabınız...
|
770
775
|
show:
|
771
776
|
back: Tüm görüşmelere dön
|
772
777
|
chat_with: ile görüşme
|
@@ -884,23 +889,22 @@ tr:
|
|
884
889
|
conversations: Konuşmalar
|
885
890
|
followers: Takipçiler
|
886
891
|
following: Takip Et
|
892
|
+
group_admins: Yöneticileri yönet
|
893
|
+
group_members: Üyeleri yönet
|
887
894
|
groups: Gruplar
|
888
895
|
members: Üyeler
|
889
896
|
officialized: Resmi katılımcı
|
890
|
-
sidebar:
|
891
|
-
badges:
|
892
|
-
info: Rozetler, platformda belirli etkinlikler gerçekleştirilerek kazanılır.
|
893
|
-
title: Rozetler
|
894
897
|
user:
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
898
|
+
actions:
|
899
|
+
create_user_group: Grup oluştur
|
900
|
+
edit_profile: Profili Düzenle
|
901
|
+
edit_user_group: Grup profilini düzenle
|
902
|
+
invite_user: Katılımcı davet et
|
903
|
+
join_user_group: Gruba katılma isteği
|
904
|
+
leave_user_group: Gruptan ayrıl
|
905
|
+
manage_user_group_admins: Yöneticileri yönet
|
906
|
+
manage_user_group_users: Üyeleri yönet
|
907
|
+
resend_email_confirmation_instructions: E-posta doğrulama talimatlarını tekrar gönder
|
904
908
|
reported_mailer:
|
905
909
|
hide:
|
906
910
|
hello: Merhaba %{name}
|
@@ -974,12 +978,9 @@ tr:
|
|
974
978
|
title: Sorun bildir
|
975
979
|
flag_user_modal:
|
976
980
|
already_reported: Bu içerik zaten bildirildi ve bir yönetici tarafından incelenecek.
|
977
|
-
close: Kapat
|
978
|
-
description: Kullanıcı hakkında uygunsuz olan nedir?
|
979
981
|
offensive: Irkçılık, cinsiyetçilik, hakaretler, kişisel saldırılar, ölüm tehditleri, intihar talepleri veya her türlü nefret söylemi içerir.
|
980
982
|
report: Bildir
|
981
983
|
spam: Tıklama tuzağı, reklam, dolandırıcılık veya komut dosyası botları içerir.
|
982
|
-
title: Uygunsuz Kullanıcıyı bildirin
|
983
984
|
floating_help:
|
984
985
|
help: yardım et
|
985
986
|
follow_button:
|
data/config/locales/uk.yml
CHANGED
@@ -315,10 +315,18 @@ uk:
|
|
315
315
|
home: Головна
|
316
316
|
messaging:
|
317
317
|
conversation_mailer:
|
318
|
+
comanagers_new_conversation:
|
319
|
+
greeting: Вітаємо, %{recipient}!
|
320
|
+
comanagers_new_message:
|
321
|
+
greeting: Вітаємо, %{recipient}!
|
318
322
|
new_conversation:
|
319
323
|
greeting: Вітаємо, %{recipient}!
|
320
324
|
intro: "%{sender} почав з вами нову бесіду. Клацніть тут, щоб прочитати її:"
|
321
325
|
subject: "%{sender} почав з вами бесіду"
|
326
|
+
new_group_conversation:
|
327
|
+
greeting: Вітаємо, %{recipient}!
|
328
|
+
new_group_message:
|
329
|
+
greeting: Вітаємо, %{recipient}!
|
322
330
|
new_message:
|
323
331
|
greeting: Доброго дня, %{recipient}!
|
324
332
|
intro: "%{sender} написав нові повідомлення у вашій бесіді. Клацніть тут, щоб переглянути їх:"
|
@@ -385,7 +393,8 @@ uk:
|
|
385
393
|
followers: Ті, хто стежить
|
386
394
|
following: 'Стежить за:'
|
387
395
|
user:
|
388
|
-
|
396
|
+
actions:
|
397
|
+
edit_profile: Редагувати профіль
|
389
398
|
reported_mailer:
|
390
399
|
hide:
|
391
400
|
hello: Доброго дня, %{name}%!
|
@@ -430,6 +439,8 @@ uk:
|
|
430
439
|
statistics:
|
431
440
|
comments_count: Коментарів
|
432
441
|
user_conversations:
|
442
|
+
reply:
|
443
|
+
send: Надіслати
|
433
444
|
update:
|
434
445
|
error: Повідомлення не надіслано. Спробуйте ще раз пізніше
|
435
446
|
devise:
|
data/config/locales/zh-CN.yml
CHANGED
@@ -25,6 +25,8 @@ zh-CN:
|
|
25
25
|
password_confirmation: 确认您的密码
|
26
26
|
personal_url: 个人网址
|
27
27
|
remove_avatar: 删除头像
|
28
|
+
user_group:
|
29
|
+
avatar: 头像
|
28
30
|
models:
|
29
31
|
decidim/attachment_created_event: 附文
|
30
32
|
decidim/component_published_event: 活动组件
|
@@ -681,6 +683,8 @@ zh-CN:
|
|
681
683
|
new_conversation: 新建对话
|
682
684
|
next: 下一个
|
683
685
|
title: 对话
|
686
|
+
reply_form:
|
687
|
+
placeholder: 您的回复...
|
684
688
|
show:
|
685
689
|
back: 回到所有对话
|
686
690
|
chat_with: 对话
|
@@ -794,23 +798,22 @@ zh-CN:
|
|
794
798
|
conversations: 对话
|
795
799
|
followers: 关注者
|
796
800
|
following: 关注的问题
|
801
|
+
group_admins: 管理管理员
|
802
|
+
group_members: 管理成员
|
797
803
|
groups: 群組
|
798
804
|
members: 成员
|
799
805
|
officialized: 官方参与者
|
800
|
-
sidebar:
|
801
|
-
badges:
|
802
|
-
info: 徽章是通过在平台上执行特定活动赚取的。
|
803
|
-
title: 徽章
|
804
806
|
user:
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
807
|
+
actions:
|
808
|
+
create_user_group: 创建组
|
809
|
+
edit_profile: 编辑配置文件
|
810
|
+
edit_user_group: 编辑群组资料
|
811
|
+
invite_user: Invite participant
|
812
|
+
join_user_group: 加入组的请求
|
813
|
+
leave_user_group: 离开组
|
814
|
+
manage_user_group_admins: 管理管理员
|
815
|
+
manage_user_group_users: 管理成员
|
816
|
+
resend_email_confirmation_instructions: 重新发送电子邮件确认说明
|
814
817
|
reported_mailer:
|
815
818
|
hide:
|
816
819
|
hello: 您好 %{name},
|
data/config/locales/zh-TW.yml
CHANGED
@@ -31,6 +31,8 @@ zh-TW:
|
|
31
31
|
personal_url: 個人 URL
|
32
32
|
remove_avatar: 刪除頭像
|
33
33
|
tos_agreement: 同意服務條款
|
34
|
+
user_group:
|
35
|
+
avatar: 頭像
|
34
36
|
models:
|
35
37
|
decidim/attachment_created_event: 附件
|
36
38
|
decidim/component_published_event: 啟用組件
|
@@ -1192,14 +1194,12 @@ zh-TW:
|
|
1192
1194
|
conversations: 對話
|
1193
1195
|
followers: 追隨者
|
1194
1196
|
following: 關注
|
1197
|
+
group_admins: 管理管理員
|
1198
|
+
group_members: 管理成員
|
1195
1199
|
groups: 群組
|
1196
1200
|
members: 成員
|
1197
1201
|
officialized: 正式認證參與者
|
1198
1202
|
send_private_message: 發送私人訊息
|
1199
|
-
sidebar:
|
1200
|
-
badges:
|
1201
|
-
info: 徽章是通過在平台上執行特定活動而獲得的。
|
1202
|
-
title: 徽章
|
1203
1203
|
user:
|
1204
1204
|
actions:
|
1205
1205
|
create_user_group: 建立群組
|
@@ -1207,20 +1207,13 @@ zh-TW:
|
|
1207
1207
|
edit_user_group: 編輯群組資料
|
1208
1208
|
invite_user: 邀請參與者
|
1209
1209
|
join_user_group: 申請加入群組
|
1210
|
+
leave_user_group: 退出群組
|
1210
1211
|
manage_user_group_admins: 管理管理員
|
1211
1212
|
manage_user_group_users: 管理成員
|
1212
1213
|
message: 訊息
|
1214
|
+
resend_email_confirmation_instructions: 重新發送電子郵件確認指示
|
1213
1215
|
confirmation_instructions_sent: 電子郵件確認指示已發送.
|
1214
|
-
create_user_group: 建立群組
|
1215
|
-
edit_profile: 編輯個人資料
|
1216
|
-
edit_user_group: 編輯群組資料
|
1217
1216
|
fill_in_email_to_confirm_it: 請填寫您的群組電子郵件以進行確認.
|
1218
|
-
invite_user: 邀請參與者
|
1219
|
-
join_user_group: 申請加入群組
|
1220
|
-
leave_user_group: 退出群組
|
1221
|
-
manage_user_group_admins: 管理管理員
|
1222
|
-
manage_user_group_users: 管理成員
|
1223
|
-
resend_email_confirmation_instructions: 重新發送電子郵件確認指示
|
1224
1217
|
reported_mailer:
|
1225
1218
|
hide:
|
1226
1219
|
hello: 哈囉,%{name},
|
@@ -1297,14 +1290,11 @@ zh-TW:
|
|
1297
1290
|
flag_user_modal:
|
1298
1291
|
already_reported: 此內容已被舉報,將由管理員進行審查。
|
1299
1292
|
block: 封鎖此參與者
|
1300
|
-
close: 關閉
|
1301
|
-
description: 關於該使用者有什麼不適當的行為?
|
1302
1293
|
does_not_belong: 包含非法活動、自殺威脅、個人資訊或其他您認為不適合在%{organization_name} 上的內容。
|
1303
1294
|
hide: 隱藏所有內容
|
1304
1295
|
offensive: 包含種族主義、性別歧視、辱罵、人身攻擊、死亡威脅、自殺要求或任何形式的仇恨言論
|
1305
1296
|
report: 報告
|
1306
1297
|
spam: 包含點閱率誘導、廣告、詐騙或自動腳本。
|
1307
|
-
title: 舉報不適當的使用者
|
1308
1298
|
floating_help:
|
1309
1299
|
help: 幫助
|
1310
1300
|
mentions_modal:
|
@@ -5,32 +5,12 @@ class ChangeObjectChangesOnVersions < ActiveRecord::Migration[6.1]
|
|
5
5
|
rename_column :versions, :object_changes, :old_object_changes
|
6
6
|
add_column :versions, :object_changes, :jsonb # or :json
|
7
7
|
|
8
|
-
PaperTrail::Version.
|
9
|
-
# This is an adaptation of PaperTrail internal load_changeset method,having in mind that we
|
10
|
-
# need to call also the code from PaperTrail::AttributeSerializer::ObjectChangesAttribute
|
11
|
-
object_changes = ActiveSupport::HashWithIndifferentAccess.new(YAML.unsafe_load(version.old_object_changes))
|
12
|
-
unless version.item_type.constantize.unscoped.find_by(id: version.item_id).nil?
|
13
|
-
# This is the deserialization code from `PaperTrail::AttributeSerializer::ObjectChangesAttribute`
|
14
|
-
# where we skip checking the object changeset column type, as we migrate it from YAML to JSON
|
15
|
-
changes_to_serialize = object_changes.clone
|
16
|
-
if changes_to_serialize.present?
|
17
|
-
serializer = PaperTrail::AttributeSerializers::CastAttributeSerializer.new(version.item_type.constantize)
|
18
|
-
changes_to_serialize.each do |key, change|
|
19
|
-
# `change` is an Array with two elements, representing before and after.
|
20
|
-
object_changes[key] = Array(change).map do |value|
|
21
|
-
serializer.send(:deserialize, key, value)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
8
|
+
PaperTrail::Version.reset_column_information
|
26
9
|
|
27
|
-
|
28
|
-
|
29
|
-
|
10
|
+
PaperTrail::Version.where.not(old_object_changes: nil).find_each do |version|
|
11
|
+
# we set a time interval to ensure that deployment has succeeded
|
12
|
+
Decidim::Migrate::PaperTrailJob.set(wait: 10.minutes).perform_later(version.id)
|
30
13
|
end
|
31
|
-
|
32
|
-
PaperTrail::Version.reset_column_information
|
33
|
-
remove_column :versions, :old_object_changes
|
34
14
|
end
|
35
15
|
|
36
16
|
def down
|
@@ -49,7 +49,7 @@ module Decidim
|
|
49
49
|
|
50
50
|
def existing_mentionables
|
51
51
|
@existing_mentionables ||= mentionable_class.where(
|
52
|
-
"decidim_organization_id = ? AND
|
52
|
+
"decidim_organization_id = ? AND nickname IN (?)",
|
53
53
|
current_organization.id,
|
54
54
|
content_nicknames
|
55
55
|
)
|
@@ -59,6 +59,56 @@ shared_examples "higher user role hides" do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
shared_examples "higher user role hides resource with comments" do
|
63
|
+
context "and the admin hides a resource with comments" do
|
64
|
+
let!(:comments) { create_list(:comment, 2, body: "Dummy comment", commentable: reportable, author: user) }
|
65
|
+
|
66
|
+
before do
|
67
|
+
login_as user, scope: :user
|
68
|
+
Decidim::Ai::SpamDetection.create_reporting_user!
|
69
|
+
end
|
70
|
+
around do |example|
|
71
|
+
previous = Capybara.raise_server_errors
|
72
|
+
|
73
|
+
# Disabling server errors to that we can test page not found error.
|
74
|
+
Capybara.raise_server_errors = false
|
75
|
+
example.run
|
76
|
+
Capybara.raise_server_errors = previous
|
77
|
+
end
|
78
|
+
|
79
|
+
it "hides the resource" do
|
80
|
+
visit decidim.search_path
|
81
|
+
expect(page).to have_content(translated(comments.first.body))
|
82
|
+
expect(page).to have_content(translated(comments.second.body))
|
83
|
+
|
84
|
+
visit reportable_path
|
85
|
+
|
86
|
+
expect(page).to have_content(translated(comments.first.body))
|
87
|
+
expect(page).to have_content(translated(comments.second.body))
|
88
|
+
|
89
|
+
find("#dropdown-trigger-resource-#{reportable.id}").click
|
90
|
+
expect(page).to have_css(%(button[data-dialog-open="flagModal"]))
|
91
|
+
find(%(button[data-dialog-open="flagModal"])).click
|
92
|
+
expect(page).to have_css(".flag-modal", visible: :visible)
|
93
|
+
|
94
|
+
within ".flag-modal" do
|
95
|
+
find(:css, "input[name='report[hide]']").set(true)
|
96
|
+
click_on "Hide"
|
97
|
+
end
|
98
|
+
|
99
|
+
perform_enqueued_jobs
|
100
|
+
|
101
|
+
expect(reportable.reload).to be_hidden
|
102
|
+
expect(comments.first.reload).to be_hidden
|
103
|
+
expect(comments.second.reload).to be_hidden
|
104
|
+
|
105
|
+
visit decidim.search_path
|
106
|
+
expect(page).to have_no_content(translated(comments.first.body))
|
107
|
+
expect(page).to have_no_content(translated(comments.second.body))
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
62
112
|
shared_examples "higher user role does not have hide" do
|
63
113
|
context "and the admin reports" do
|
64
114
|
before do
|
@@ -124,6 +174,7 @@ shared_examples "reports by user type" do
|
|
124
174
|
let!(:user) { create(:user, :admin, :confirmed, organization:) }
|
125
175
|
include_examples "higher user role reports"
|
126
176
|
include_examples "higher user role hides"
|
177
|
+
include_examples "higher user role hides resource with comments"
|
127
178
|
end
|
128
179
|
context "When reporting user is process admin" do
|
129
180
|
let!(:user) { create(:process_admin, :confirmed, participatory_process:) }
|
@@ -23,3 +23,24 @@ shared_examples "a social share meta tag" do |image|
|
|
23
23
|
expect(find('meta[property="og:image"]', visible: false)[:content]).to end_with(image)
|
24
24
|
end
|
25
25
|
end
|
26
|
+
|
27
|
+
shared_examples "a social share widget" do
|
28
|
+
it "has the social share button" do
|
29
|
+
visit_resource
|
30
|
+
|
31
|
+
expect(page).to have_css('button[data-dialog-open="socialShare"]')
|
32
|
+
end
|
33
|
+
|
34
|
+
it "lists all the expected social share providers" do
|
35
|
+
visit_resource
|
36
|
+
click_on "Share"
|
37
|
+
|
38
|
+
within "#socialShare" do
|
39
|
+
expect(page).to have_css('a[title="Share to X"]')
|
40
|
+
expect(page).to have_css('a[title="Share to Facebook"]')
|
41
|
+
expect(page).to have_css('a[title="Share to WhatsApp"]')
|
42
|
+
expect(page).to have_css('a[title="Share to Telegram"]')
|
43
|
+
expect(page).to have_css(".share-modal__input")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/decidim/core/version.rb
CHANGED
@@ -24,6 +24,14 @@ module Decidim
|
|
24
24
|
false
|
25
25
|
end
|
26
26
|
|
27
|
+
def full_name
|
28
|
+
return @full_name if defined?(@full_name)
|
29
|
+
|
30
|
+
@full_name = name.dup
|
31
|
+
@full_name[I18n.locale.to_s] = "#{parent.name[I18n.locale.to_s]} > #{@full_name[I18n.locale.to_s]}" if parent && parent.parent_id
|
32
|
+
@full_name
|
33
|
+
end
|
34
|
+
|
27
35
|
def resources
|
28
36
|
categorizations.filter_map do |categorization|
|
29
37
|
next if invalid_categorization?(categorization)
|
@@ -36,16 +44,34 @@ module Decidim
|
|
36
44
|
{
|
37
45
|
name:,
|
38
46
|
origin: to_global_id.to_s,
|
39
|
-
children:
|
40
|
-
[
|
41
|
-
subcategory.name[I18n.locale.to_s],
|
42
|
-
subcategory.taxonomies
|
43
|
-
]
|
44
|
-
end,
|
47
|
+
children: sub_taxonomy_children,
|
45
48
|
resources:
|
46
49
|
}
|
47
50
|
end
|
48
51
|
|
52
|
+
# original categories are allowed one level more than the current taxonomies
|
53
|
+
def sub_taxonomy_children
|
54
|
+
subcategories.each_with_object({}) do |subcategory, hash|
|
55
|
+
hash[subcategory.name[I18n.locale.to_s]] = {
|
56
|
+
name: subcategory.name,
|
57
|
+
origin: subcategory.to_global_id.to_s,
|
58
|
+
resources: subcategory.resources,
|
59
|
+
children: {}
|
60
|
+
}
|
61
|
+
|
62
|
+
next unless subcategory.subcategories.any?
|
63
|
+
|
64
|
+
subcategory.subcategories.each do |last_category|
|
65
|
+
hash[last_category.full_name[I18n.locale.to_s]] = {
|
66
|
+
name: last_category.full_name,
|
67
|
+
origin: last_category.to_global_id.to_s,
|
68
|
+
resources: last_category.resources,
|
69
|
+
children: {}
|
70
|
+
}
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
49
75
|
def self.children_taxonomies(participatory_space)
|
50
76
|
Category.where(participatory_space:, parent_id: nil).to_h do |category|
|
51
77
|
[
|
@@ -92,8 +118,14 @@ module Decidim
|
|
92
118
|
internal_name: name,
|
93
119
|
items: Category.where(participatory_space:).map do |category|
|
94
120
|
names = [name]
|
95
|
-
|
96
|
-
|
121
|
+
if category.parent
|
122
|
+
names << if category.parent.parent
|
123
|
+
category.parent.parent.name[I18n.locale.to_s]
|
124
|
+
else
|
125
|
+
category.parent.name[I18n.locale.to_s]
|
126
|
+
end
|
127
|
+
end
|
128
|
+
names << category.full_name[I18n.locale.to_s]
|
97
129
|
names
|
98
130
|
end,
|
99
131
|
components:
|
@@ -38,6 +38,8 @@ module Decidim
|
|
38
38
|
item["children"].each do |child_name, child|
|
39
39
|
import_taxonomy_item(taxonomy, child_name, child)
|
40
40
|
end
|
41
|
+
rescue ActiveRecord::RecordInvalid => e
|
42
|
+
abort "Error importing taxonomy item #{name} with parent #{parent.name} (#{e.message})"
|
41
43
|
end
|
42
44
|
|
43
45
|
def apply_taxonomy_to_resource(object_id, taxonomy)
|
@@ -61,6 +63,8 @@ module Decidim
|
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
66
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
67
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
64
68
|
def import_filter(root, data)
|
65
69
|
filter = find_taxonomy_filter!(root, data)
|
66
70
|
|
@@ -91,7 +95,11 @@ module Decidim
|
|
91
95
|
result[:failed_components] << component_id
|
92
96
|
end
|
93
97
|
end
|
98
|
+
rescue ActiveRecord::RecordInvalid => e
|
99
|
+
abort "Error importing filter #{data} for root taxonomy #{root.name} (#{e.message})"
|
94
100
|
end
|
101
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
102
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
95
103
|
|
96
104
|
def find_taxonomy(association, name)
|
97
105
|
association.find_by("name->>? = ?", organization.default_locale, name)
|
@@ -105,6 +113,8 @@ module Decidim
|
|
105
113
|
association.create!(name: { organization.default_locale => name }, organization:) do
|
106
114
|
result[:taxonomies_created] << name
|
107
115
|
end
|
116
|
+
rescue ActiveRecord::RecordInvalid => e
|
117
|
+
abort "Error creating taxonomy #{name} with parent #{association.new.parent.name[organization.default_locale]} (#{e.message})"
|
108
118
|
end
|
109
119
|
|
110
120
|
def find_taxonomy_filter!(root_taxonomy, data)
|