decidim-core 0.27.4 → 0.27.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/activity_cell.rb +2 -2
- data/app/cells/decidim/card_cell.rb +2 -2
- data/app/cells/decidim/card_m/top.erb +1 -1
- data/app/cells/decidim/card_m_cell.rb +1 -1
- data/app/cells/decidim/scopes_picker/scope_picker_values.erb +1 -1
- data/app/cells/decidim/tags_cell.rb +3 -1
- data/app/cells/decidim/upload_modal/modal.erb +4 -1
- data/app/cells/decidim/upload_modal_cell.rb +8 -4
- data/app/cells/decidim/user_profile_cell.rb +1 -1
- data/app/cells/decidim/version_cell.rb +1 -1
- data/app/cells/decidim/versions_list_cell.rb +1 -1
- data/app/commands/decidim/create_omniauth_registration.rb +2 -4
- data/app/commands/decidim/endorse_resource.rb +2 -0
- data/app/commands/decidim/messaging/reply_to_conversation.rb +3 -0
- data/app/commands/decidim/messaging/start_conversation.rb +3 -0
- data/app/commands/decidim/search.rb +1 -1
- data/app/commands/decidim/unendorse_resource.rb +1 -1
- data/app/controllers/concerns/decidim/devise_authentication_methods.rb +36 -0
- data/app/controllers/concerns/decidim/force_authentication.rb +6 -2
- data/app/controllers/concerns/decidim/paginable.rb +1 -1
- data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +1 -22
- data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
- data/app/controllers/decidim/devise/sessions_controller.rb +1 -24
- data/app/controllers/decidim/links_controller.rb +1 -1
- data/app/controllers/decidim/searches_controller.rb +1 -1
- data/app/controllers/decidim/user_timeline_controller.rb +1 -1
- data/app/controllers/decidim/widgets_controller.rb +6 -0
- data/app/events/decidim/welcome_notification_event.rb +6 -9
- data/app/forms/decidim/account_form.rb +1 -1
- data/app/forms/decidim/notifications_settings_form.rb +0 -8
- data/app/forms/decidim/registration_form.rb +1 -1
- data/app/helpers/decidim/cells_paginate_helper.rb +1 -1
- data/app/helpers/decidim/check_boxes_tree_helper.rb +4 -4
- data/app/helpers/decidim/decidim_form_helper.rb +1 -0
- data/app/helpers/decidim/newsletters_helper.rb +83 -16
- data/app/helpers/decidim/omniauth_helper.rb +2 -0
- data/app/helpers/decidim/resource_helper.rb +3 -1
- data/app/helpers/decidim/sanitize_helper.rb +9 -0
- data/app/helpers/decidim/short_link_helper.rb +1 -1
- data/app/helpers/decidim/user_profile_helper.rb +7 -2
- data/app/jobs/decidim/download_your_data_export_job.rb +2 -1
- data/app/jobs/decidim/open_data_job.rb +2 -0
- data/app/mailers/decidim/messaging/conversation_mailer.rb +3 -72
- data/app/models/decidim/push_notification_message.rb +39 -0
- data/app/models/decidim/user.rb +9 -1
- data/app/packs/images/decidim/icons.svg +1 -1
- data/app/packs/images/decidim/vendor/social-share-button/x.svg +6 -0
- data/app/packs/src/decidim/autocomplete.js +11 -2
- data/app/packs/src/decidim/data_picker.js +1 -0
- data/app/packs/src/decidim/direct_uploads/upload_field.js +6 -4
- data/app/packs/src/decidim/direct_uploads/upload_modal.js +10 -8
- data/app/packs/src/decidim/direct_uploads/uploader.js +4 -1
- data/app/packs/src/decidim/geocoding/attach_input.js +4 -1
- data/app/packs/src/decidim/geocoding/provider/here.js +17 -21
- data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
- data/app/packs/src/decidim/input_hashtags.js +1 -1
- data/app/packs/src/decidim/input_mentions.js +1 -1
- data/app/packs/src/decidim/input_multiple_mentions.js +1 -1
- data/app/packs/src/decidim/utilities/text.js +17 -0
- data/app/packs/src/decidim/vizzs/index.js +1 -1
- data/app/packs/stylesheets/decidim/_variables.scss +1 -1
- data/app/packs/stylesheets/decidim/plugins/leaflet.scss +118 -114
- data/app/packs/stylesheets/decidim/vendor/_social_share_button.scss +4 -0
- data/app/presenters/decidim/admin_log/oauth_application_resource_presenter.rb +1 -1
- data/app/presenters/decidim/notification_to_mailer_presenter.rb +9 -0
- data/app/services/decidim/events_manager.rb +6 -0
- data/app/services/decidim/push_notification_message_sender.rb +36 -0
- data/app/services/decidim/send_push_notification.rb +22 -8
- data/app/views/decidim/devise/registrations/new.html.erb +2 -2
- data/app/views/decidim/notifications_digest_mailer/_email_content.html.erb +7 -0
- data/app/views/decidim/notifications_settings/show.html.erb +1 -1
- data/app/views/decidim/scopes/_scopes_picker_input.html.erb +1 -1
- data/app/views/decidim/searches/_filters.html.erb +3 -1
- data/app/views/decidim/shared/_address_details.html.erb +2 -2
- data/app/views/decidim/shared/_share_modal.html.erb +1 -1
- data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
- data/app/views/layouts/decidim/_js_configuration.html.erb +1 -0
- data/app/views/layouts/decidim/_social_media_links.html.erb +2 -2
- data/config/locales/ar.yml +12 -16
- data/config/locales/bg.yml +77 -15
- data/config/locales/ca.yml +34 -30
- data/config/locales/cs.yml +18 -14
- data/config/locales/de.yml +62 -58
- data/config/locales/el.yml +11 -16
- data/config/locales/en.yml +5 -1
- data/config/locales/eo.yml +2 -3
- data/config/locales/es-MX.yml +15 -11
- data/config/locales/es-PY.yml +15 -11
- data/config/locales/es.yml +30 -26
- data/config/locales/eu.yml +500 -342
- data/config/locales/fi-plain.yml +7 -3
- data/config/locales/fi.yml +21 -17
- data/config/locales/fr-CA.yml +17 -13
- data/config/locales/fr.yml +12 -8
- data/config/locales/ga-IE.yml +5 -5
- data/config/locales/gl.yml +5 -19
- data/config/locales/he-IL.yml +1 -0
- data/config/locales/hu.yml +63 -23
- data/config/locales/id-ID.yml +4 -19
- data/config/locales/is-IS.yml +4 -2
- data/config/locales/it.yml +15 -17
- data/config/locales/ja.yml +26 -22
- data/config/locales/lb.yml +15 -17
- data/config/locales/lt.yml +55 -10
- data/config/locales/lv.yml +4 -16
- data/config/locales/nl.yml +12 -12
- data/config/locales/no.yml +8 -10
- data/config/locales/pl.yml +151 -1
- data/config/locales/pt-BR.yml +267 -22
- data/config/locales/pt.yml +8 -10
- data/config/locales/ro-RO.yml +4 -10
- data/config/locales/ru.yml +13 -17
- data/config/locales/sk.yml +7 -17
- data/config/locales/sl.yml +0 -5
- data/config/locales/sq-AL.yml +1 -0
- data/config/locales/sv.yml +55 -17
- data/config/locales/th-TH.yml +1 -0
- data/config/locales/tr-TR.yml +18 -15
- data/config/locales/uk.yml +17 -14
- data/config/locales/zh-CN.yml +6 -10
- data/config/locales/zh-TW.yml +0 -9
- data/db/migrate/20231027142329_change_default_value_for_decidim_endorsements.rb +11 -0
- data/db/seeds.rb +1 -0
- data/decidim-core.gemspec +78 -0
- data/lib/decidim/acts_as_tree.rb +14 -1
- data/lib/decidim/asset_router/storage.rb +4 -0
- data/lib/decidim/attribute_encryptor.rb +6 -4
- data/lib/decidim/core/engine.rb +7 -3
- data/lib/decidim/core/test/factories.rb +309 -95
- data/lib/decidim/core/test/shared_examples/amendable/amendment_created_event_examples.rb +6 -26
- data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +8 -26
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +56 -0
- data/lib/decidim/core/test/shared_examples/embed_resource_examples.rb +187 -11
- data/lib/decidim/core/test/shared_examples/errors.rb +2 -0
- data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +8 -6
- data/lib/decidim/core/test/shared_examples/has_attachments.rb +4 -4
- data/lib/decidim/core/test/shared_examples/has_category.rb +27 -0
- data/lib/decidim/core/test/shared_examples/has_reference.rb +1 -1
- data/lib/decidim/core/test/shared_examples/has_space_in_mcell_examples.rb +1 -2
- data/lib/decidim/core/test/shared_examples/resource_endorsed_event_examples.rb +6 -3
- data/lib/decidim/core/test/shared_examples/resource_locator_presenter_examples.rb +134 -0
- data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/simple_event.rb +50 -2
- data/lib/decidim/core/test.rb +1 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/core.rb +2 -1
- data/lib/decidim/endorsable.rb +1 -1
- data/lib/decidim/engine_router.rb +17 -4
- data/lib/decidim/events/base_event.rb +5 -2
- data/lib/decidim/events/simple_event.rb +3 -17
- data/lib/decidim/exporters.rb +10 -1
- data/lib/decidim/form_builder.rb +1 -0
- data/lib/decidim/has_category.rb +3 -3
- data/lib/decidim/has_conversations.rb +91 -0
- data/lib/decidim/participable.rb +17 -0
- data/lib/decidim/view_model.rb +1 -0
- data/lib/decidim/webpacker/webpack/.modernizrrc +9 -0
- data/lib/premailer/adapter/decidim.rb +5 -4
- data/lib/tasks/decidim_reminders_tasks.rake +1 -0
- data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +53 -0
- data/lib/tasks/upgrade/decidim_fix_categorization.rake +15 -0
- data/lib/tasks/upgrade/decidim_fix_short_url_resolver.rake +22 -0
- metadata +37 -32
- data/app/helpers/decidim/layout_helper.rb.orig +0 -225
- data/app/packs/stylesheets/decidim/modules/_dropdown_menu.scss +0 -9
- data/app/views/decidim/devise/registrations/new.html.erb.orig +0 -231
- /data/{config/environment.rb → app/packs/images/decidim/.keep} +0 -0
data/config/locales/tr-TR.yml
CHANGED
@@ -61,9 +61,6 @@ tr:
|
|
61
61
|
booleans:
|
62
62
|
'false': 'Hayır'
|
63
63
|
'true': 'Evet'
|
64
|
-
carrierwave:
|
65
|
-
errors:
|
66
|
-
not_inside_organization: Dosya herhangi bir kuruluşa eklenmemiş
|
67
64
|
date:
|
68
65
|
formats:
|
69
66
|
decidim_short: "%d/%m/%Y"
|
@@ -322,7 +319,7 @@ tr:
|
|
322
319
|
request_confirmation_instructions: Onaylama talimatlarını tekrar gönder
|
323
320
|
title: E-posta adresinizi doğrulayın
|
324
321
|
show:
|
325
|
-
close_modal:
|
322
|
+
close_modal: Pencereyi kapat
|
326
323
|
block_user_mailer:
|
327
324
|
notify:
|
328
325
|
body_1: Hesabınız kilitlendi.
|
@@ -436,7 +433,7 @@ tr:
|
|
436
433
|
newsletter: Ara sıra ilgili bilgileri içeren bir haber bülteni alın
|
437
434
|
newsletter_title: İletişim izni
|
438
435
|
nickname_help: Takma adınız %{organization}. Yalnızca harf, rakam, "-" ve "_" içerebilir.
|
439
|
-
sign_in:
|
436
|
+
sign_in: "Giriş \nGiriş Yapın "
|
440
437
|
sign_up: kaydol
|
441
438
|
sign_up_as:
|
442
439
|
legend: Olarak kaydol
|
@@ -455,7 +452,7 @@ tr:
|
|
455
452
|
newsletter_modal:
|
456
453
|
buttons:
|
457
454
|
check: Kontrol et ve devam et
|
458
|
-
close_modal:
|
455
|
+
close_modal: Pencereyi kapat
|
459
456
|
uncheck: İşaretlemeyin
|
460
457
|
notice: |-
|
461
458
|
<p>Hey, bir haber bülteni almak istemediğine emin misin?<br>
|
@@ -493,7 +490,6 @@ tr:
|
|
493
490
|
download_data: Verileri indir
|
494
491
|
request_data: Veri talep et
|
495
492
|
endorsable:
|
496
|
-
endorsements: Cirolar
|
497
493
|
endorsements_count: Onay sayısı
|
498
494
|
endorsement_buttons_cell:
|
499
495
|
already_endorsed: Onaylanan
|
@@ -700,6 +696,7 @@ tr:
|
|
700
696
|
file:
|
701
697
|
explanation: 'Dosya kılavuzu:'
|
702
698
|
message_1: Bir resim veya bir belge olmalı.
|
699
|
+
message_2: Resimler için tercihen yatay resimleri kullanın, bu servis resmi kırpar.
|
703
700
|
image:
|
704
701
|
explanation: 'Dosya kılavuzu:'
|
705
702
|
message_1: Tercihen herhangi bir metin içermeyen yatay bir resim.
|
@@ -707,6 +704,10 @@ tr:
|
|
707
704
|
file_validation:
|
708
705
|
allowed_file_extensions: 'İzin verilen dosya uzantıları: %{extensions}'
|
709
706
|
max_file_size: 'Maksimum dosya boyutu: %{megabytes} MB'
|
707
|
+
upload:
|
708
|
+
labels:
|
709
|
+
cancel: İptal Et
|
710
|
+
save: Kayıt etmek
|
710
711
|
gamification:
|
711
712
|
all_badges_link: Tüm mevcut rozetleri görün.
|
712
713
|
badges:
|
@@ -827,7 +828,7 @@ tr:
|
|
827
828
|
resource_type: Türü
|
828
829
|
links:
|
829
830
|
warning:
|
830
|
-
close_modal:
|
831
|
+
close_modal: Pencereyi kapat
|
831
832
|
log:
|
832
833
|
base_presenter:
|
833
834
|
create: "%{user_name}, %{resource_name} oluşturdu"
|
@@ -915,7 +916,7 @@ tr:
|
|
915
916
|
ok: OK
|
916
917
|
index:
|
917
918
|
ago: önce
|
918
|
-
close:
|
919
|
+
close: Pencereyi kapat
|
919
920
|
from: Gönderen
|
920
921
|
groups: Gruplarım
|
921
922
|
last_message: Son mesaj
|
@@ -1033,7 +1034,6 @@ tr:
|
|
1033
1034
|
proposals: Teklifler
|
1034
1035
|
proposals_explanation: Öneriler yapın, mevcut olanları destekleyin ve görmek istediğiniz değişiklikleri tanıtın.
|
1035
1036
|
footer_sub_hero:
|
1036
|
-
footer_sub_hero_body: Daha açık, şeffaf ve işbirliğine dayalı bir toplum oluşturalım. <br /> Katılın, katılımcı olun ve karar verin.
|
1037
1037
|
footer_sub_hero_headline: '%{organization} katılımcı platformuna hoş geldiniz.'
|
1038
1038
|
register: Kayıt Ol
|
1039
1039
|
hero:
|
@@ -1063,7 +1063,7 @@ tr:
|
|
1063
1063
|
legend: Kullanım şartlarını ve koşullarını kabul et
|
1064
1064
|
refuse:
|
1065
1065
|
modal_btn_exit: Daha sonra inceleyeceğim
|
1066
|
-
modal_close:
|
1066
|
+
modal_close: Pencereyi kapat
|
1067
1067
|
modal_title: Güncellenmiş Şartlar ve Koşulları gerçekten reddediyor musunuz?
|
1068
1068
|
required_review:
|
1069
1069
|
alert: Hizmet Şartlarımızı güncellendi, lütfen inceleyin.
|
@@ -1156,7 +1156,7 @@ tr:
|
|
1156
1156
|
future: gelecek
|
1157
1157
|
past: geçmiş
|
1158
1158
|
filters_small_view:
|
1159
|
-
close_modal:
|
1159
|
+
close_modal: Pencereyi kapat
|
1160
1160
|
filter: filtre
|
1161
1161
|
filter_by: Tarafından filtre
|
1162
1162
|
unfold: açılmak
|
@@ -1430,7 +1430,7 @@ tr:
|
|
1430
1430
|
sessions:
|
1431
1431
|
already_signed_out: Başarıyla imzalandı.
|
1432
1432
|
new:
|
1433
|
-
sign_in:
|
1433
|
+
sign_in: "Giriş \nGiriş Yapın "
|
1434
1434
|
signed_in: Başarıyla imzalandı.
|
1435
1435
|
signed_out: Başarıyla imzalandı.
|
1436
1436
|
shared:
|
@@ -1439,7 +1439,7 @@ tr:
|
|
1439
1439
|
didn_t_receive_confirmation_instructions: Onaylama talimatları almadı mı?
|
1440
1440
|
didn_t_receive_unlock_instructions: Kilit açma talimatları almadı mı?
|
1441
1441
|
forgot_your_password: Parolanızı mı unuttunuz?
|
1442
|
-
sign_in:
|
1442
|
+
sign_in: "Giriş \nGiriş Yapın "
|
1443
1443
|
sign_in_with_provider: '%{provider}ile giriş yap'
|
1444
1444
|
sign_up: kaydol
|
1445
1445
|
minimum_password_length:
|
@@ -1511,8 +1511,10 @@ tr:
|
|
1511
1511
|
facebook: "Facebook'ta %{organization}"
|
1512
1512
|
github: "GitHub'da %{organization}"
|
1513
1513
|
instagram: "Instagram'da %{organization}"
|
1514
|
-
|
1514
|
+
x: "X 'de % organizasyon "
|
1515
1515
|
youtube: "YouTube'da %{organization}"
|
1516
|
+
upload_modal:
|
1517
|
+
close_modal: Pencereyi kapat
|
1516
1518
|
user_menu:
|
1517
1519
|
account: 'Kullanıcı hesabı: %{name}'
|
1518
1520
|
admin_dashboard: Yönetici kontrol paneli
|
@@ -1567,6 +1569,7 @@ tr:
|
|
1567
1569
|
weibo: Sina Weibo
|
1568
1570
|
whatsapp_app: Whatsapp
|
1569
1571
|
whatsapp_web: WhatsApp
|
1572
|
+
x: X
|
1570
1573
|
xing: Xing
|
1571
1574
|
time:
|
1572
1575
|
formats:
|
data/config/locales/uk.yml
CHANGED
@@ -171,9 +171,12 @@ uk:
|
|
171
171
|
invalid_field: "Для поля %{field} значення %{value} неприпустиме."
|
172
172
|
ok: Гаразд
|
173
173
|
title: Недостатньо прав через відсутність підтвердження особи
|
174
|
-
show:
|
175
|
-
close_modal: Закрити віконце
|
176
174
|
collapsible_list:
|
175
|
+
hidden_elements_count:
|
176
|
+
one: і ще %{count}
|
177
|
+
few: і ще %{count}
|
178
|
+
many: і ще %{count}
|
179
|
+
other: і ще %{count}
|
177
180
|
see_less: "(читати менше)"
|
178
181
|
see_more: "(читати далі)"
|
179
182
|
components:
|
@@ -223,7 +226,6 @@ uk:
|
|
223
226
|
already_have_an_account?: Вже маєте обліковий запис?
|
224
227
|
newsletter: Отримувати іноді розсилання зі свіжими новинами
|
225
228
|
newsletter_title: Дозвіл на зв'язок
|
226
|
-
sign_in: Увійти
|
227
229
|
sign_up: Зареєструватися
|
228
230
|
sign_up_as:
|
229
231
|
legend: Зареєструватися як
|
@@ -240,7 +242,6 @@ uk:
|
|
240
242
|
newsletter_modal:
|
241
243
|
buttons:
|
242
244
|
check: Поставити галочку та продовжити
|
243
|
-
close_modal: Закрити віконце
|
244
245
|
notice: |-
|
245
246
|
<p>Привіт, ви впевнені, що не хочете отримувати розсилання новин?<br> Будь ласка, ще раз розгляньте можливість поставити нижче галочку щодо розсилання.<br> Для нас дуже важливо, щоб ви могли іноді отримувати електронні листи з важливими оголошеннями. Ви завжди можете змінити це на сторінці налаштувань сповіщень.</p> <p>Якщо ви не поставите цю галочку, ви можете прогледіти доречні відомості щодо свіжих можливостей участі в роботі майданчика.<br> Якщо ви все ж бажаєте уникнути розсилань, ми прекрасно розуміємо таке ваше рішення.</p> <p>Дякуємо, що прочитали це!</p>
|
246
247
|
title: Сповіщення про новини
|
@@ -267,8 +268,6 @@ uk:
|
|
267
268
|
show:
|
268
269
|
download_data: Завантажити дані
|
269
270
|
request_data: Подати запит на дані
|
270
|
-
endorsable:
|
271
|
-
endorsements: Проявів підтримки
|
272
271
|
errors:
|
273
272
|
internal_server_error:
|
274
273
|
title: При з'єднанні з нашим сервером сталася помилка
|
@@ -341,9 +340,9 @@ uk:
|
|
341
340
|
default_image: Зображення за замовчуванням
|
342
341
|
errors:
|
343
342
|
error: У цьому полі є помилка.
|
344
|
-
|
345
|
-
|
346
|
-
|
343
|
+
upload:
|
344
|
+
labels:
|
345
|
+
save: Зберегти
|
347
346
|
log:
|
348
347
|
base_presenter:
|
349
348
|
create: "%{user_name} створив %{resource_name}"
|
@@ -383,12 +382,17 @@ uk:
|
|
383
382
|
create:
|
384
383
|
error: Бесіда не розпочата. Спробуйте ще раз пізніше
|
385
384
|
index:
|
386
|
-
|
385
|
+
from: Від
|
387
386
|
no_conversations: У вас ще немає бесід
|
387
|
+
title: Бесіди
|
388
388
|
reply:
|
389
389
|
send: Надіслати
|
390
|
+
title: Відповісти
|
391
|
+
show:
|
392
|
+
title: Бесіда з %{usernames}
|
390
393
|
start:
|
391
394
|
send: Надіслати
|
395
|
+
title: Почати бесіду
|
392
396
|
newsletter_mailer:
|
393
397
|
newsletter:
|
394
398
|
note: Ви отримали цього електронного листа, оскільки ви підписалися на новини щодо %{organization_name}. Ви можете змінити свої налаштування на <a href="%{link}">сторінці сповіщень</a>.
|
@@ -440,7 +444,6 @@ uk:
|
|
440
444
|
proposals: Пропозиції
|
441
445
|
proposals_explanation: Вносьте нові пропозиції, підтримуйте існуючі та сприяйте змінам, які ви хочете бачити.
|
442
446
|
footer_sub_hero:
|
443
|
-
footer_sub_hero_body: Створімо більш відкрите, прозоре та співпрацююче суспільство.<br /> Долучайтесь, беріть участь та приймайте рішення.
|
444
447
|
footer_sub_hero_headline: Ласкаво просимо до майданчику співучасті %{organization}!
|
445
448
|
register: Зареєструватися
|
446
449
|
hero:
|
@@ -458,7 +461,6 @@ uk:
|
|
458
461
|
legend: Погодитися з умовами участі
|
459
462
|
refuse:
|
460
463
|
modal_btn_exit: Я перегляну це пізніше
|
461
|
-
modal_close: Закрити віконце
|
462
464
|
modal_title: Ви дійсно відмовляєтеся від оновлених "Умов участі"?
|
463
465
|
required_review:
|
464
466
|
alert: Ми оновили наші "Умови участі", будь ласка, перегляньте їх.
|
@@ -471,6 +473,7 @@ uk:
|
|
471
473
|
profiles:
|
472
474
|
default_officialization_text_for_users: Особу цього учасника прилюдно підтверджено, його ім'я чи роль перевірено на відповідність його справжньому імені та ролі
|
473
475
|
show:
|
476
|
+
conversations: Бесіди
|
474
477
|
followers: Ті, хто стежить
|
475
478
|
following: 'Стежить за:'
|
476
479
|
user:
|
@@ -502,10 +505,8 @@ uk:
|
|
502
505
|
term_input_placeholder: Шукати
|
503
506
|
searches:
|
504
507
|
filters_small_view:
|
505
|
-
close_modal: Закрити віконце
|
506
508
|
filter: Відібрати
|
507
509
|
filter_by: 'Відібрати за ознакою:'
|
508
|
-
unfold: Розгорнути
|
509
510
|
shared:
|
510
511
|
embed_modal:
|
511
512
|
close_window: Закрити вікно
|
@@ -538,6 +539,8 @@ uk:
|
|
538
539
|
user_conversations:
|
539
540
|
index:
|
540
541
|
close: Закрити
|
542
|
+
show:
|
543
|
+
title: Бесіда з %{usernames}
|
541
544
|
update:
|
542
545
|
error: Повідомлення не надіслано. Спробуйте ще раз пізніше
|
543
546
|
version_author:
|
data/config/locales/zh-CN.yml
CHANGED
@@ -57,9 +57,6 @@ zh-CN:
|
|
57
57
|
booleans:
|
58
58
|
'false': '否'
|
59
59
|
'true': '否'
|
60
|
-
carrierwave:
|
61
|
-
errors:
|
62
|
-
not_inside_organization: 该文件没有附加到任何组织
|
63
60
|
date:
|
64
61
|
formats:
|
65
62
|
decidim_short: "%d/%m/%Y"
|
@@ -386,7 +383,6 @@ zh-CN:
|
|
386
383
|
already_have_an_account?: 已经有一个帐户?
|
387
384
|
newsletter: 接收附带相关信息的时事通讯
|
388
385
|
newsletter_title: 联系人权限
|
389
|
-
sign_in: 登录
|
390
386
|
sign_up: 注册
|
391
387
|
sign_up_as:
|
392
388
|
legend: 注册为
|
@@ -432,7 +428,6 @@ zh-CN:
|
|
432
428
|
download_data: 下载数据
|
433
429
|
request_data: 请求数据
|
434
430
|
endorsable:
|
435
|
-
endorsements: 授权
|
436
431
|
endorsements_count: 批准次数
|
437
432
|
endorsement_buttons_cell:
|
438
433
|
already_endorsed: 已批准
|
@@ -635,6 +630,10 @@ zh-CN:
|
|
635
630
|
file_validation:
|
636
631
|
allowed_file_extensions: '允许的文件扩展名: %{extensions}'
|
637
632
|
max_file_size: '最大文件大小: %{megabytes}MB'
|
633
|
+
upload:
|
634
|
+
labels:
|
635
|
+
cancel: 取消
|
636
|
+
save: 保存
|
638
637
|
gamification:
|
639
638
|
all_badges_link: 查看所有可用的徽章。
|
640
639
|
badges:
|
@@ -959,7 +958,6 @@ zh-CN:
|
|
959
958
|
proposals: 建议
|
960
959
|
proposals_explanation: 提出建议、支持现有建议并促进你想要看到的更改。
|
961
960
|
footer_sub_hero:
|
962
|
-
footer_sub_hero_body: 让我们建设一个更加开放、透明和协作的社会。<br /> 加入、参与和决定。
|
963
961
|
footer_sub_hero_headline: 欢迎使用 %{organization} 参与式平台。
|
964
962
|
register: 注册
|
965
963
|
hero:
|
@@ -1334,8 +1332,6 @@ zh-CN:
|
|
1334
1332
|
updated: 您的帐户已成功更新。
|
1335
1333
|
sessions:
|
1336
1334
|
already_signed_out: 已成功注销。
|
1337
|
-
new:
|
1338
|
-
sign_in: 登录
|
1339
1335
|
signed_in: 登录成功。
|
1340
1336
|
signed_out: 已成功注销。
|
1341
1337
|
shared:
|
@@ -1344,7 +1340,6 @@ zh-CN:
|
|
1344
1340
|
didn_t_receive_confirmation_instructions: 没有收到确认说明?
|
1345
1341
|
didn_t_receive_unlock_instructions: 没有收到解锁指令?
|
1346
1342
|
forgot_your_password: 忘记密码?
|
1347
|
-
sign_in: 登录
|
1348
1343
|
sign_in_with_provider: 使用 %{provider} 登录
|
1349
1344
|
sign_up: 注册
|
1350
1345
|
minimum_password_length:
|
@@ -1414,8 +1409,9 @@ zh-CN:
|
|
1414
1409
|
facebook: "%{organization} 在 Facebook"
|
1415
1410
|
github: "%{organization} 在 GitHub"
|
1416
1411
|
instagram: "%{organization} 在 Instagram"
|
1417
|
-
twitter: "%{organization} 在 Twitter"
|
1418
1412
|
youtube: "%{organization} 在 YouTube"
|
1413
|
+
upload_modal:
|
1414
|
+
close_modal: 关闭模式
|
1419
1415
|
user_menu:
|
1420
1416
|
account: '用户帐户: %{name}'
|
1421
1417
|
admin_dashboard: 管理员控制面板
|
data/config/locales/zh-TW.yml
CHANGED
@@ -71,10 +71,7 @@ zh-TW:
|
|
71
71
|
'true': '是'
|
72
72
|
carrierwave:
|
73
73
|
errors:
|
74
|
-
file_cannot_be_processed: 無法處理檔案
|
75
|
-
file_resolution_too_large: 檔案解析度過大
|
76
74
|
file_size_too_large: 檔案太大。
|
77
|
-
not_inside_organization: 該文件未附加到任何組織
|
78
75
|
date:
|
79
76
|
formats:
|
80
77
|
decidim_short: "%d/%m/%Y"
|
@@ -519,7 +516,6 @@ zh-TW:
|
|
519
516
|
newsletter: 偶爾收到包含相關信息的時事通訊。
|
520
517
|
newsletter_title: 聯絡人權限
|
521
518
|
nickname_help: 在 %{organization} 中的別名。只能包含字母、數字、'-' 和 '_'。
|
522
|
-
sign_in: 登入
|
523
519
|
sign_up: 註冊登記
|
524
520
|
sign_up_as:
|
525
521
|
legend: 註冊登記為
|
@@ -1208,7 +1204,6 @@ zh-TW:
|
|
1208
1204
|
proposals: 提案
|
1209
1205
|
proposals_explanation: 提出建議、支持現有建議並推動您希望看到的變化。
|
1210
1206
|
footer_sub_hero:
|
1211
|
-
footer_sub_hero_body: 一起建立更加開放、透明和協作的社會。<br /> 加入、參與和做出決策。
|
1212
1207
|
footer_sub_hero_headline: 歡迎來到 %{organization} 的參與平台。
|
1213
1208
|
register: 註冊
|
1214
1209
|
hero:
|
@@ -1638,8 +1633,6 @@ zh-TW:
|
|
1638
1633
|
updated: 您的帳號已成功升級。
|
1639
1634
|
sessions:
|
1640
1635
|
already_signed_out: 已成功登出。
|
1641
|
-
new:
|
1642
|
-
sign_in: 登入
|
1643
1636
|
signed_in: 已成功登入。
|
1644
1637
|
signed_out: 已成功登出。
|
1645
1638
|
shared:
|
@@ -1648,7 +1641,6 @@ zh-TW:
|
|
1648
1641
|
didn_t_receive_confirmation_instructions: 沒有收到確認的說明嗎?
|
1649
1642
|
didn_t_receive_unlock_instructions: 沒有收到解鎖說明?
|
1650
1643
|
forgot_your_password: 忘記密碼了嗎?
|
1651
|
-
sign_in: 登入
|
1652
1644
|
sign_in_with_provider: 用%{provider} 登錄
|
1653
1645
|
sign_up: 註冊登記
|
1654
1646
|
minimum_password_length:
|
@@ -1773,7 +1765,6 @@ zh-TW:
|
|
1773
1765
|
facebook: "%{organization} 在 Facebook"
|
1774
1766
|
github: "%{organization} 在 GitHub"
|
1775
1767
|
instagram: "%{organization} 在 Instagram"
|
1776
|
-
twitter: "%{organization} 在 Twitter"
|
1777
1768
|
youtube: "%{organization} 在 YouTube"
|
1778
1769
|
timeout_modal:
|
1779
1770
|
body: 您已經閒置了 %{minutes} 分鐘。如果您繼續閒置,為了您的安全,您將被自動登出。
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ChangeDefaultValueForDecidimEndorsements < ActiveRecord::Migration[6.1]
|
4
|
+
def up
|
5
|
+
change_column_default :decidim_endorsements, :decidim_user_group_id, 0
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
change_column_default :decidim_endorsements, :decidim_user_group_id, nil
|
10
|
+
end
|
11
|
+
end
|
data/db/seeds.rb
CHANGED
@@ -37,6 +37,7 @@ if !Rails.env.production? || ENV.fetch("SEED", nil)
|
|
37
37
|
port: ENV.fetch("SMTP_PORT", nil) || ENV.fetch("DECIDIM_SMTP_PORT", "25")
|
38
38
|
},
|
39
39
|
host: ENV.fetch("DECIDIM_HOST", "localhost"),
|
40
|
+
secondary_hosts: ENV.fetch("DECIDIM_HOST", "localhost") == "localhost" ? ["0.0.0.0", "127.0.0.1"] : nil,
|
40
41
|
external_domain_whitelist: ["decidim.org", "github.com"],
|
41
42
|
description: Decidim::Faker::Localized.wrapped("<p>", "</p>") do
|
42
43
|
Decidim::Faker::Localized.sentence(word_count: 15)
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
4
|
+
|
5
|
+
# Maintain your gem's version:
|
6
|
+
require "decidim/core/version"
|
7
|
+
|
8
|
+
# Describe your gem and declare its dependencies:
|
9
|
+
Gem::Specification.new do |s|
|
10
|
+
s.name = "decidim-core"
|
11
|
+
s.version = Decidim::Core.version
|
12
|
+
s.authors = ["Josep Jaume Rey Peroy", "Marc Riera Casals", "Oriol Gual Oliva"]
|
13
|
+
s.email = ["josepjaume@gmail.com", "mrc2407@gmail.com", "oriolgual@gmail.com"]
|
14
|
+
s.homepage = "https://github.com/decidim/decidim"
|
15
|
+
s.summary = "The core of the Decidim framework."
|
16
|
+
s.description = "Adds core features so other engines can hook into the framework."
|
17
|
+
s.license = "AGPL-3.0"
|
18
|
+
s.required_ruby_version = "~> 3.0.0"
|
19
|
+
|
20
|
+
s.files = Dir.chdir(__dir__) do
|
21
|
+
`git ls-files -z`.split("\x0").select do |f|
|
22
|
+
(File.expand_path(f) == __FILE__) ||
|
23
|
+
f.start_with?(*%w(app/ config/ db/ lib/ Rakefile README.md))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
s.add_dependency "active_link_to", "~> 1.0"
|
28
|
+
s.add_dependency "acts_as_list", "~> 0.9"
|
29
|
+
s.add_dependency "batch-loader", "~> 1.2"
|
30
|
+
s.add_dependency "browser", "~> 2.7"
|
31
|
+
s.add_dependency "carrierwave", "~> 2.2.5", ">= 2.2.5"
|
32
|
+
s.add_dependency "cells-erb", "~> 0.1.0"
|
33
|
+
s.add_dependency "cells-rails", "~> 0.1.3"
|
34
|
+
s.add_dependency "charlock_holmes", "~> 0.7"
|
35
|
+
s.add_dependency "date_validator", "~> 0.12.0"
|
36
|
+
s.add_dependency "devise", "~> 4.7"
|
37
|
+
s.add_dependency "devise-i18n", "~> 1.2"
|
38
|
+
s.add_dependency "diffy", "~> 3.3"
|
39
|
+
s.add_dependency "doorkeeper", "~> 5.1"
|
40
|
+
s.add_dependency "doorkeeper-i18n", "~> 4.0"
|
41
|
+
s.add_dependency "file_validators", "~> 3.0"
|
42
|
+
s.add_dependency "fog-local", "~> 0.6"
|
43
|
+
s.add_dependency "foundation_rails_helper", "~> 4.0"
|
44
|
+
s.add_dependency "geocoder", "~> 1.8"
|
45
|
+
s.add_dependency "hashdiff", ">= 0.4.0", "< 2.0.0"
|
46
|
+
s.add_dependency "invisible_captcha", "~> 0.12"
|
47
|
+
s.add_dependency "kaminari", "~> 1.2", ">= 1.2.1"
|
48
|
+
s.add_dependency "loofah", "~> 2.19.0"
|
49
|
+
s.add_dependency "mime-types", ">= 1.16", "< 4.0"
|
50
|
+
s.add_dependency "mini_magick", "~> 4.9"
|
51
|
+
s.add_dependency "omniauth", "~> 2.0"
|
52
|
+
s.add_dependency "omniauth-facebook", "~> 5.0"
|
53
|
+
s.add_dependency "omniauth-google-oauth2", "~> 1.0"
|
54
|
+
s.add_dependency "omniauth-rails_csrf_protection", "~> 1.0"
|
55
|
+
s.add_dependency "omniauth-twitter", "~> 1.4"
|
56
|
+
s.add_dependency "paper_trail", "~> 12.0"
|
57
|
+
s.add_dependency "pg", "~> 1.1.4", "< 2"
|
58
|
+
s.add_dependency "pg_search", "~> 2.2"
|
59
|
+
s.add_dependency "premailer-rails", "~> 1.10"
|
60
|
+
s.add_dependency "rack", "~> 2.2", ">= 2.2.3"
|
61
|
+
s.add_dependency "rack-attack", "~> 6.0"
|
62
|
+
s.add_dependency "rails", "~> 6.1.0"
|
63
|
+
s.add_dependency "rails-i18n", "~> 6.0"
|
64
|
+
s.add_dependency "ransack", "~> 2.4.1"
|
65
|
+
s.add_dependency "redis", "~> 4.1"
|
66
|
+
s.add_dependency "request_store", "~> 1.5.0"
|
67
|
+
s.add_dependency "rubyXL", "~> 3.4"
|
68
|
+
s.add_dependency "rubyzip", "~> 2.0"
|
69
|
+
s.add_dependency "seven_zip_ruby", "~> 1.3"
|
70
|
+
s.add_dependency "social-share-button", "~> 1.2", ">= 1.2.1"
|
71
|
+
s.add_dependency "valid_email2", "~> 2.1"
|
72
|
+
s.add_dependency "webpacker", "= 6.0.0.rc.5"
|
73
|
+
s.add_dependency "webpush", "~> 1.1"
|
74
|
+
s.add_dependency "wisper", "~> 2.0"
|
75
|
+
|
76
|
+
s.add_development_dependency "decidim-api", Decidim::Core.version
|
77
|
+
s.add_development_dependency "decidim-dev", Decidim::Core.version
|
78
|
+
end
|
data/lib/decidim/acts_as_tree.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Decidim
|
4
|
+
# Adapted from https://hashrocket.com/blog/posts/recursive-sql-in-activerecord
|
4
5
|
module ActsAsTree
|
5
6
|
extend ActiveSupport::Concern
|
6
7
|
|
@@ -15,10 +16,22 @@ module Decidim
|
|
15
16
|
@parent_item_foreign_key = name
|
16
17
|
end
|
17
18
|
|
19
|
+
def parent_item_polymorphic_type_key(name = nil)
|
20
|
+
return @parent_item_polymorphic_type_key unless name
|
21
|
+
|
22
|
+
@parent_item_polymorphic_type_key = name
|
23
|
+
end
|
24
|
+
|
18
25
|
def tree_for(item)
|
19
26
|
where(Arel.sql("#{table_name}.id IN (#{tree_sql_for(item)})")).order("#{table_name}.id")
|
20
27
|
end
|
21
28
|
|
29
|
+
def polymorphic_condition(item)
|
30
|
+
return "" if parent_item_polymorphic_type_key.blank?
|
31
|
+
|
32
|
+
"AND #{table_name}.#{parent_item_polymorphic_type_key} = '#{item.class.name}'"
|
33
|
+
end
|
34
|
+
|
22
35
|
def tree_sql_for(item)
|
23
36
|
<<-SQL.squish
|
24
37
|
WITH RECURSIVE search_tree(id, path) AS (
|
@@ -28,7 +41,7 @@ module Decidim
|
|
28
41
|
UNION ALL
|
29
42
|
SELECT #{table_name}.id, path || #{table_name}.id
|
30
43
|
FROM search_tree
|
31
|
-
JOIN #{table_name} ON #{table_name}.#{parent_item_foreign_key} = search_tree.id
|
44
|
+
JOIN #{table_name} ON #{table_name}.#{parent_item_foreign_key} = search_tree.id #{polymorphic_condition(item)}
|
32
45
|
WHERE NOT #{table_name}.id = ANY(path)
|
33
46
|
)
|
34
47
|
SELECT id FROM search_tree ORDER BY path
|
@@ -19,13 +19,17 @@ module Decidim
|
|
19
19
|
#
|
20
20
|
# @param options The options for the URL that are the normal route options
|
21
21
|
# Rails route helpers accept
|
22
|
+
# rubocop:disable Style/CaseLikeIf
|
22
23
|
def url(**options)
|
23
24
|
if asset.is_a? ActiveStorage::Attached
|
24
25
|
routes.rails_blob_url(asset.blob, **default_options.merge(options))
|
26
|
+
elsif asset.is_a? ActiveStorage::Blob
|
27
|
+
routes.rails_blob_url(asset, **default_options.merge(options))
|
25
28
|
else
|
26
29
|
routes.rails_representation_url(asset, **default_options.merge(options))
|
27
30
|
end
|
28
31
|
end
|
32
|
+
# rubocop:enable Style/CaseLikeIf
|
29
33
|
|
30
34
|
private
|
31
35
|
|
@@ -19,10 +19,12 @@ module Decidim
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.cryptor
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
@cryptor ||= begin
|
23
|
+
key = ActiveSupport::KeyGenerator.new("attribute").generate_key(
|
24
|
+
Rails.application.secrets.secret_key_base, ActiveSupport::MessageEncryptor.key_len
|
25
|
+
)
|
26
|
+
ActiveSupport::MessageEncryptor.new(key)
|
27
|
+
end
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|
data/lib/decidim/core/engine.rb
CHANGED
@@ -246,9 +246,13 @@ module Decidim
|
|
246
246
|
end
|
247
247
|
|
248
248
|
initializer "decidim.notifications" do
|
249
|
-
|
250
|
-
|
251
|
-
|
249
|
+
if Rails.autoloaders.zeitwerk_enabled?
|
250
|
+
config.after_initialize do
|
251
|
+
Decidim::EventsManager.subscribe_events!
|
252
|
+
end
|
253
|
+
else
|
254
|
+
config.to_prepare do
|
255
|
+
Decidim::EventsManager.subscribe_events!
|
252
256
|
end
|
253
257
|
end
|
254
258
|
end
|