decidim-core 0.30.5 → 0.30.7

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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/announcement_cell.rb +10 -2
  3. data/app/cells/decidim/attachments_file_tab/show.erb +1 -1
  4. data/app/cells/decidim/content_blocks/highlighted_elements_with_cell_for_list_cell.rb +5 -1
  5. data/app/cells/decidim/content_blocks/participatory_space_metadata/content.erb +2 -2
  6. data/app/cells/decidim/nav_links/show.erb +2 -2
  7. data/app/cells/decidim/report_button/already_reported_modal.erb +1 -1
  8. data/app/cells/decidim/report_button/flag_modal.erb +1 -1
  9. data/app/cells/decidim/report_user_button/already_reported_modal.erb +1 -1
  10. data/app/cells/decidim/report_user_button/flag_modal.erb +1 -1
  11. data/app/cells/decidim/statistic/show.erb +4 -4
  12. data/app/cells/decidim/upload_modal/files.erb +16 -8
  13. data/app/cells/decidim/upload_modal_cell.rb +21 -5
  14. data/app/commands/decidim/multiple_attachments_methods.rb +20 -3
  15. data/app/controllers/concerns/decidim/direct_upload.rb +2 -12
  16. data/app/controllers/decidim/devise/sessions_controller.rb +7 -0
  17. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +2 -2
  18. data/app/jobs/decidim/export_participatory_space_job.rb +1 -1
  19. data/app/jobs/decidim/find_and_update_descendants_job.rb +8 -2
  20. data/app/jobs/decidim/update_search_indexes_job.rb +2 -2
  21. data/app/models/decidim/attachment.rb +22 -1
  22. data/app/packs/src/decidim/a11y.js +29 -0
  23. data/app/packs/src/decidim/a11y.test.js +81 -0
  24. data/app/packs/src/decidim/confirm.js +8 -1
  25. data/app/packs/src/decidim/confirm.test.js +225 -0
  26. data/app/packs/src/decidim/direct_uploads/upload_field.js +1 -1
  27. data/app/packs/src/decidim/focus_guard.js +4 -4
  28. data/app/packs/stylesheets/decidim/_cards.scss +12 -4
  29. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -1
  30. data/app/packs/stylesheets/decidim/_participatory_spaces.scss +1 -1
  31. data/app/services/decidim/open_data_exporter.rb +1 -1
  32. data/app/views/decidim/devise/invitations/edit.html.erb +3 -3
  33. data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +1 -1
  34. data/config/initializers/devise.rb +6 -0
  35. data/config/locales/ar.yml +3 -3
  36. data/config/locales/bg.yml +0 -4
  37. data/config/locales/ca-IT.yml +12 -6
  38. data/config/locales/ca.yml +12 -6
  39. data/config/locales/cs.yml +23 -8
  40. data/config/locales/de.yml +4 -8
  41. data/config/locales/el.yml +1 -2
  42. data/config/locales/en.yml +10 -4
  43. data/config/locales/es-MX.yml +13 -7
  44. data/config/locales/es-PY.yml +13 -7
  45. data/config/locales/es.yml +15 -9
  46. data/config/locales/eu.yml +13 -10
  47. data/config/locales/fi-plain.yml +5 -4
  48. data/config/locales/fi.yml +6 -5
  49. data/config/locales/fr-CA.yml +11 -5
  50. data/config/locales/fr.yml +13 -7
  51. data/config/locales/gl.yml +0 -2
  52. data/config/locales/hu.yml +5 -9
  53. data/config/locales/id-ID.yml +0 -2
  54. data/config/locales/it.yml +1 -3
  55. data/config/locales/ja.yml +11 -8
  56. data/config/locales/lb.yml +0 -2
  57. data/config/locales/lt.yml +1 -3
  58. data/config/locales/lv.yml +0 -2
  59. data/config/locales/nl.yml +0 -2
  60. data/config/locales/no.yml +0 -2
  61. data/config/locales/pl.yml +0 -4
  62. data/config/locales/pt-BR.yml +29 -5
  63. data/config/locales/pt.yml +0 -2
  64. data/config/locales/ro-RO.yml +5 -6
  65. data/config/locales/ru.yml +0 -2
  66. data/config/locales/sk.yml +0 -4
  67. data/config/locales/sv.yml +254 -31
  68. data/config/locales/tr-TR.yml +17 -5
  69. data/config/locales/zh-CN.yml +0 -2
  70. data/config/locales/zh-TW.yml +1 -3
  71. data/lib/decidim/assets/tailwind/tailwind.config.js.erb +1 -1
  72. data/lib/decidim/core/version.rb +1 -1
  73. data/lib/decidim/form_builder.rb +40 -6
  74. data/lib/decidim/maintenance/taxonomy_importer.rb +1 -1
  75. data/lib/decidim/searchable.rb +4 -4
  76. metadata +8 -6
@@ -16,6 +16,8 @@ tr:
16
16
  phone: Telefon
17
17
  report:
18
18
  details: Ek Yorumlar
19
+ taxonomy:
20
+ name: Sınıf Adı
19
21
  user:
20
22
  about: Hakkında
21
23
  email: E-posta adresiniz
@@ -139,6 +141,8 @@ tr:
139
141
  create: "%{user_name} , %{resource_name} statik sayfayı oluşturdu"
140
142
  delete: "%{user_name}, %{resource_name} statik sayfayı sildi"
141
143
  update: "%{user_name}, %{resource_name} statik sayfayı güncelledi"
144
+ taxonomy:
145
+ delete_with_parent: "%{user_name}, %{parent_taxonomy} sınıflaması içindeki %{resource_name} sınıfını sildi"
142
146
  user:
143
147
  block: "%{user_name}, %{resource_name} kullanıcısını engelledi"
144
148
  invite: "%{user_name} katılımcıyı %{resource_name} rolüyle davet etti: %{role}"
@@ -239,6 +243,7 @@ tr:
239
243
  postal_code: Posta kodu
240
244
  name: Örnek yetkilendirme
241
245
  dummy_authorization_workflow:
246
+ explanation: Sahte yetkilendirme iş akışı
242
247
  name: Sahte yetkilendirme iş akışı
243
248
  errors:
244
249
  duplicate_authorization: Bir katılımcı zaten aynı verilerle yetkilendirildi. Bir yönetici, bilgilerinizi doğrulamak için sizinle iletişime geçecektir.
@@ -708,6 +713,8 @@ tr:
708
713
  not_found: 'Veritabanında kapsam bulunamadı (ID: %{id})'
709
714
  scope_type_presenter:
710
715
  not_found: 'Veritabanında kapsam tipi bulunamadı (ID: %{id})'
716
+ taxonomy_presenter:
717
+ not_found: 'Sınıflandırma veritabanında bulunamadı (ID: %{id})'
711
718
  managed_users:
712
719
  expired_session: Mevcut kimliğe bürünme oturumunun süresi doldu.
713
720
  map:
@@ -840,6 +847,13 @@ tr:
840
847
  update:
841
848
  error: Bildirim ayarlarınız güncellenirken bir hata oluştu.
842
849
  success: Bildirim ayarlarınız başarıyla güncellendi.
850
+ onboarding_action_message:
851
+ click_link: Tıklayınız
852
+ cta_html: <a href="%{path}">%{link_text}</a> %{resource_name} içindeki %{action} işlemini gerçekleştirmek için <strong>%{resource_title}</strong>
853
+ expired_authorization_active_title: Yetkinizin süresi doldu.
854
+ incomplete_authorization_active_title: Gerekli tüm bilgiler girilmediğinden doğrulama işleminiz tamamlanmadı.
855
+ pending_authorization_active_message: Bu işlemi gerçekleştirmek için lütfen formu doldurun.
856
+ pending_authorization_active_title: Kimliğinizi doğrulamamız gerekiyor.
843
857
  open_data:
844
858
  not_available_yet: Açık Veri dosyaları henüz mevcut değil, lütfen birkaç dakika içinde tekrar deneyin.
845
859
  pad_iframe:
@@ -1063,8 +1077,6 @@ tr:
1063
1077
  submit_button: Davet gönder
1064
1078
  no_invitations_remaining: Kalan davet yok
1065
1079
  send_instructions: Davet e-postası %{email}gönderildi.
1066
- updated: Şifreniz başarıyla ayarlandı. Şimdi oturum açtınız.
1067
- updated_not_active: Şifreniz başarıyla ayarlandı.
1068
1080
  mailer:
1069
1081
  confirmation_instructions:
1070
1082
  action: Hesabımı onayla
@@ -1125,13 +1137,13 @@ tr:
1125
1137
  sessions:
1126
1138
  already_signed_out: Başarıyla Çıkış Yapıldı
1127
1139
  new:
1128
- log_in: "Giriş \nGiriş Yapın "
1140
+ log_in: Giriş Yapın
1129
1141
  signed_out:
1130
1142
  shared:
1131
1143
  links:
1132
1144
  back: Geri
1133
1145
  forgot_your_password: Parolanızı mı unuttunuz?
1134
- log_in: "Giriş \nGiriş Yapın "
1146
+ log_in: Giriş Yapın
1135
1147
  log_in_with_provider: '%{provider} ile giriş yapın'
1136
1148
  minimum_password_length:
1137
1149
  one: "(En az%{count} karakter)"
@@ -1178,7 +1190,7 @@ tr:
1178
1190
  footer:
1179
1191
  cc_by_license: Kar Amaçsız Lisanslama (Creative Commons License)
1180
1192
  decidim_logo: Decidim Logo
1181
- log_in: "Giriş \nGiriş Yapın "
1193
+ log_in: Giriş Yapın
1182
1194
  made_with_open_source: Web sitesi <a target="_blank" href="https://github.com/decidim/decidim">ücretsiz yazılımla yapılmıştır</a>.
1183
1195
  terms_of_service: Hizmet Kullanım Koşulları
1184
1196
  header:
@@ -951,8 +951,6 @@ zh-CN:
951
951
  submit_button: 发送邀请
952
952
  no_invitations_remaining: 没有剩余邀请
953
953
  send_instructions: 邀请邮件已发送至 %{email}。
954
- updated: 您的密码设置成功。您现在已登录。
955
- updated_not_active: 您的密码设置成功。
956
954
  mailer:
957
955
  confirmation_instructions:
958
956
  action: 确认我的帐户
@@ -1394,8 +1394,6 @@ zh-TW:
1394
1394
  submit_button: 發送一個邀請
1395
1395
  no_invitations_remaining: 沒有待處理的邀請
1396
1396
  send_instructions: 已向 %{email} 發送了一封邀請郵件。
1397
- updated: 您的密碼已成功設定。您現在已登入。
1398
- updated_not_active: 您的密碼已成功設定。
1399
1397
  mailer:
1400
1398
  confirmation_instructions:
1401
1399
  action: 確認我的帳戶
@@ -1533,7 +1531,7 @@ zh-TW:
1533
1531
  description: 說明
1534
1532
  name: 名稱
1535
1533
  service: 服務
1536
- type: 類別
1534
+ type: 種類
1537
1535
  items:
1538
1536
  _session_id:
1539
1537
  description: 允許網站在使用者在網頁之間移動時記住使用者。
@@ -67,7 +67,7 @@ module.exports = {
67
67
  sans: ["Source Sans Pro", "ui-sans-serif", "system-ui", "sans-serif"]
68
68
  },
69
69
  fontSize: {
70
- xs: ["13px", "16px"],
70
+ xs: ["12px", "16px"],
71
71
  sm: ["14px", "18px"],
72
72
  md: ["16px", "20px"],
73
73
  lg: ["18px", "23px"],
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.30.5"
7
+ "0.30.7"
8
8
  end
9
9
  end
10
10
  end
@@ -392,11 +392,17 @@ module Decidim
392
392
  button_edit_label: I18n.t("decidim.forms.upload.labels.replace")
393
393
  }.merge(options)
394
394
 
395
- ::Decidim::ViewModel.cell(
395
+ upload_cell = ::Decidim::ViewModel.cell(
396
396
  "decidim/upload_modal",
397
397
  self,
398
398
  options
399
399
  ).call
400
+
401
+ options_without_help = options.dup
402
+ options_without_help.delete(:help)
403
+ options_without_help.delete(:help_text)
404
+
405
+ upload_cell + error_and_help_text(attribute, options_without_help) + (options[:required] ? abide_error_element(attribute, for: "#{attribute}_validation") : "")
400
406
  end
401
407
 
402
408
  def max_file_size(record, attribute)
@@ -631,9 +637,33 @@ module Decidim
631
637
  else
632
638
  text
633
639
  end
634
-
635
640
  label(attribute, text, options || {})
636
641
  end
642
+
643
+ # render p tag instead of label for proposals "add a document"
644
+ def custom_paragraph(attribute, text, options, field_before_label: false, show_required: true)
645
+ return "".html_safe if text == false
646
+
647
+ required = options.is_a?(Hash) && options.delete(:required)
648
+ text = default_label_text(object, attribute) if text.nil? || text == true
649
+ if show_required
650
+ text +=
651
+ if required
652
+ required_indicator
653
+ else
654
+ required_for_attribute(attribute)
655
+ end
656
+ end
657
+
658
+ text = if field_before_label && block_given?
659
+ safe_join([yield, text.html_safe])
660
+ elsif block_given?
661
+ safe_join([text.html_safe, yield])
662
+ else
663
+ text
664
+ end
665
+ content_tag(:p, text.html_safe, class: "text-lg font-semibold")
666
+ end
637
667
  # rubocop:enable Metrics/PerceivedComplexity
638
668
  # rubocop:enable Metrics/CyclomaticComplexity
639
669
 
@@ -642,19 +672,23 @@ module Decidim
642
672
  # does it.
643
673
  #
644
674
  # attribute - The name of the attribute of the field.
675
+ # options - A Hash of options:
676
+ # :for - The ID of the input field this error is for (adds data-form-error-for attribute)
645
677
  #
646
678
  # Returns a String.
647
- def abide_error_element(attribute)
679
+ def abide_error_element(attribute, options = {})
648
680
  defaults = []
649
681
  defaults << :"decidim.forms.errors.#{object.class.model_name.i18n_key}.#{attribute}"
650
682
  defaults << :"decidim.forms.errors.#{attribute}"
651
683
  defaults << :"forms.errors.#{attribute}"
652
684
  defaults << :"decidim.forms.errors.error"
653
685
 
654
- options = { count: 1, default: defaults }
686
+ i18n_options = { count: 1, default: defaults }
655
687
 
656
- text = I18n.t(defaults.shift, **options)
657
- content_tag(:span, text, class: "form-error")
688
+ text = I18n.t(defaults.shift, **i18n_options)
689
+ tag_options = { class: "form-error" }
690
+ tag_options[:"data-form-error-for"] = options[:for] if options[:for]
691
+ content_tag(:span, text, tag_options)
658
692
  end
659
693
 
660
694
  def tab_element_class_for(type, index)
@@ -85,7 +85,7 @@ module Decidim
85
85
  component = GlobalID::Locator.locate(component_id)
86
86
  if component
87
87
  begin
88
- component.update!(settings: { taxonomy_filters: [filter.id.to_s] })
88
+ component.update!(settings: component.settings.to_h.merge(taxonomy_filters: [filter.id.to_s]))
89
89
  result[:components_assigned][filter.internal_name[organization.default_locale]] ||= []
90
90
  result[:components_assigned][filter.internal_name[organization.default_locale]] << component_id
91
91
  rescue ActiveRecord::RecordInvalid
@@ -99,7 +99,7 @@ module Decidim
99
99
 
100
100
  # Public: after_update callback to update index information of the model.
101
101
  #
102
- def try_update_index_for_search_resource
102
+ def try_update_index_for_search_resource(current_depth = 0)
103
103
  return unless self.class.searchable_resource?(self)
104
104
 
105
105
  org = self.class.search_resource_fields_mapper.retrieve_organization(self)
@@ -122,13 +122,13 @@ module Decidim
122
122
  searchables_in_org.destroy_all
123
123
  end
124
124
 
125
- find_and_update_descendants
125
+ find_and_update_descendants(current_depth)
126
126
  end
127
127
 
128
128
  private
129
129
 
130
- def find_and_update_descendants
131
- Decidim::FindAndUpdateDescendantsJob.perform_later(self)
130
+ def find_and_update_descendants(current_depth = 0)
131
+ Decidim::FindAndUpdateDescendantsJob.perform_later(self, current_depth)
132
132
  end
133
133
 
134
134
  def contents_to_searchable_resource_attributes(fields, locale)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.5
4
+ version: 0.30.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-01-28 00:00:00.000000000 Z
13
+ date: 2026-03-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: concurrent-ruby
@@ -794,28 +794,28 @@ dependencies:
794
794
  requirements:
795
795
  - - '='
796
796
  - !ruby/object:Gem::Version
797
- version: 0.30.5
797
+ version: 0.30.7
798
798
  type: :development
799
799
  prerelease: false
800
800
  version_requirements: !ruby/object:Gem::Requirement
801
801
  requirements:
802
802
  - - '='
803
803
  - !ruby/object:Gem::Version
804
- version: 0.30.5
804
+ version: 0.30.7
805
805
  - !ruby/object:Gem::Dependency
806
806
  name: decidim-dev
807
807
  requirement: !ruby/object:Gem::Requirement
808
808
  requirements:
809
809
  - - '='
810
810
  - !ruby/object:Gem::Version
811
- version: 0.30.5
811
+ version: 0.30.7
812
812
  type: :development
813
813
  prerelease: false
814
814
  version_requirements: !ruby/object:Gem::Requirement
815
815
  requirements:
816
816
  - - '='
817
817
  - !ruby/object:Gem::Version
818
- version: 0.30.5
818
+ version: 0.30.7
819
819
  description: Adds core features so other engines can hook into the framework.
820
820
  email:
821
821
  - josepjaume@gmail.com
@@ -1593,6 +1593,7 @@ files:
1593
1593
  - app/packs/images/decidim/vendor/social-share-button/x.svg
1594
1594
  - app/packs/images/decidim/vendor/social-share-button/xing.svg
1595
1595
  - app/packs/src/decidim/a11y.js
1596
+ - app/packs/src/decidim/a11y.test.js
1596
1597
  - app/packs/src/decidim/abide_form_validator_fixer.js
1597
1598
  - app/packs/src/decidim/account_form.js
1598
1599
  - app/packs/src/decidim/append_elements.js
@@ -1607,6 +1608,7 @@ files:
1607
1608
  - app/packs/src/decidim/clipboard.js
1608
1609
  - app/packs/src/decidim/configuration.js
1609
1610
  - app/packs/src/decidim/confirm.js
1611
+ - app/packs/src/decidim/confirm.test.js
1610
1612
  - app/packs/src/decidim/data_consent/consent_manager.js
1611
1613
  - app/packs/src/decidim/data_consent/consent_manager.test.js
1612
1614
  - app/packs/src/decidim/data_consent/index.js