decidim-core 0.31.0.rc1 → 0.31.0

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/activity_cell.rb +6 -0
  3. data/app/cells/decidim/author/avatar.erb +1 -7
  4. data/app/cells/decidim/author/badge.erb +6 -0
  5. data/app/cells/decidim/author/name.erb +1 -5
  6. data/app/cells/decidim/author/show.erb +47 -15
  7. data/app/cells/decidim/author_cell.rb +10 -0
  8. data/app/cells/decidim/profile/avatar.erb +0 -2
  9. data/app/cells/decidim/profile/badge.erb +3 -3
  10. data/app/cells/decidim/profile/details.erb +2 -1
  11. data/app/cells/decidim/user_activity_cell.rb +6 -1
  12. data/app/controllers/decidim/download_your_data_controller.rb +5 -2
  13. data/app/helpers/decidim/map_helper.rb +1 -1
  14. data/app/helpers/decidim/menu_helper.rb +8 -2
  15. data/app/mailers/decidim/user_group_mailer.rb +21 -0
  16. data/app/models/decidim/private_export.rb +4 -0
  17. data/app/models/decidim/user.rb +2 -2
  18. data/app/packs/src/decidim/controllers/dropdown/controller.js +2 -2
  19. data/app/packs/src/decidim/controllers/editor/controller.js +4 -1
  20. data/app/packs/src/decidim/controllers/form_filter/controller.js +6 -0
  21. data/app/packs/src/decidim/datepicker/generate_datepicker.js +6 -0
  22. data/app/packs/src/decidim/datepicker/generate_timepicker.js +9 -0
  23. data/app/packs/src/decidim/index.js +10 -5
  24. data/app/packs/src/decidim/map/controller/markers.js +3 -1
  25. data/app/packs/src/decidim/refactor/moved/check_boxes_tree.js +1 -0
  26. data/app/packs/stylesheets/decidim/_accordion.scss +4 -4
  27. data/app/packs/stylesheets/decidim/_author.scss +15 -1
  28. data/app/packs/stylesheets/decidim/_cards.scss +5 -1
  29. data/app/packs/stylesheets/decidim/_dropdown.scss +22 -5
  30. data/app/packs/stylesheets/decidim/_filters.scss +1 -1
  31. data/app/packs/stylesheets/decidim/_footer.scss +5 -0
  32. data/app/packs/stylesheets/decidim/_profile.scss +6 -6
  33. data/app/packs/stylesheets/decidim/editor.scss +3 -1
  34. data/app/services/decidim/download_your_data_exporter.rb +15 -4
  35. data/app/services/decidim/open_data_exporter.rb +2 -1
  36. data/app/validators/etiquette_validator.rb +2 -2
  37. data/app/validators/password_validator.rb +3 -1
  38. data/app/views/decidim/application/_document.html.erb +2 -2
  39. data/app/views/decidim/download_your_data/_export.html.erb +1 -1
  40. data/app/views/decidim/export_mailer/download_your_data_export.html.erb +1 -1
  41. data/app/views/decidim/export_mailer/export.html.erb +1 -1
  42. data/app/views/decidim/shared/_filters.html.erb +1 -1
  43. data/app/views/decidim/user_group_mailer/notify_deprecation_to_member.html.erb +4 -1
  44. data/app/views/decidim/user_group_mailer/notify_deprecation_to_owner.html.erb +1 -4
  45. data/app/views/decidim/user_group_mailer/notify_user_group_patched.html.erb +21 -0
  46. data/app/views/layouts/decidim/_application.html.erb +1 -1
  47. data/config/locales/ca-IT.yml +30 -18
  48. data/config/locales/ca.yml +28 -16
  49. data/config/locales/cs.yml +6 -7
  50. data/config/locales/de.yml +2 -11
  51. data/config/locales/en.yml +22 -10
  52. data/config/locales/es-MX.yml +20 -8
  53. data/config/locales/es-PY.yml +20 -8
  54. data/config/locales/es.yml +20 -8
  55. data/config/locales/eu.yml +60 -48
  56. data/config/locales/fi-plain.yml +20 -9
  57. data/config/locales/fi.yml +20 -9
  58. data/config/locales/fr-CA.yml +22 -10
  59. data/config/locales/fr.yml +22 -10
  60. data/config/locales/it.yml +2 -0
  61. data/config/locales/ja.yml +22 -10
  62. data/config/locales/ro-RO.yml +1 -1
  63. data/config/locales/ru.yml +0 -1
  64. data/config/locales/sl.yml +0 -1
  65. data/db/data/20251108232118_add_dummy_migration.rb +11 -0
  66. data/db/migrate/20250217192438_convert_user_groups_into_users.rb +19 -1
  67. data/db/migrate/20250819110800_convert_private_exports_id_to_uuid.rb +55 -0
  68. data/decidim-core.gemspec +1 -0
  69. data/lib/decidim/asset_router/storage.rb +8 -8
  70. data/lib/decidim/core/engine.rb +9 -0
  71. data/lib/decidim/core/test/factories.rb +7 -2
  72. data/lib/decidim/core/test/shared_examples/comments_examples.rb +24 -0
  73. data/lib/decidim/core/version.rb +1 -1
  74. data/lib/decidim/form_builder.rb +1 -1
  75. data/lib/decidim/shakapacker/configuration.rb +5 -1
  76. data/lib/tasks/upgrade/clean.rake +11 -0
  77. data/lib/tasks/upgrade/decidim_fix_action_log.rake +28 -0
  78. data/lib/tasks/upgrade/user_groups_migration.rake +33 -0
  79. metadata +25 -6
@@ -5,6 +5,7 @@ namespace :decidim do
5
5
  namespace :user_groups do
6
6
  desc "Main task to notify users and change references to groups"
7
7
  task remove: [
8
+ :"decidim:upgrade:user_groups:perform_patches_on_emails",
8
9
  :"decidim:upgrade:user_groups:send_reset_password_instructions",
9
10
  :"decidim:upgrade:user_groups:send_user_group_changes_notification_to_members",
10
11
  :"decidim:upgrade:user_groups:transfer_user_groups_authorships",
@@ -12,6 +13,36 @@ namespace :decidim do
12
13
  :"decidim:upgrade:user_groups:remove_groups_notifications"
13
14
  ]
14
15
 
16
+ desc "Patch users migrated from user groups with invalid emails"
17
+ task perform_patches_on_emails: :environment do
18
+ class UserGroupMembership < ApplicationRecord
19
+ self.table_name = "decidim_user_group_memberships"
20
+
21
+ belongs_to :user, class_name: "Decidim::User", foreign_key: :decidim_user_id
22
+ belongs_to :group, class_name: "Decidim::User", foreign_key: :decidim_user_group_id
23
+
24
+ scope :member, -> { where(role: %w(creator admin member)) }
25
+ end
26
+
27
+ Decidim::User.where("extended_data @> ?", { group: true, patched: true }.to_json).where(encrypted_password: "").find_each do |group|
28
+ next if group.blocked?
29
+
30
+ password = Random.alphanumeric(15)
31
+
32
+ group.skip_password_change_notification!
33
+ group.password = password
34
+ group.extended_data = (group.extended_data || {}).merge("patched" => false)
35
+ group.save!
36
+
37
+ UserGroupMembership.where(group:).member.find_each do |membership|
38
+ user = membership.user
39
+ next if user.deleted? || user.blocked? || !user.confirmed?
40
+
41
+ Decidim::UserGroupMailer.notify_user_group_patched(group, user, password).deliver_later
42
+ end
43
+ end
44
+ end
45
+
15
46
  desc "Send reset password instructions to groups"
16
47
  task send_reset_password_instructions: :environment do
17
48
  Decidim::User.user_group.where(encrypted_password: "").find_each do |group|
@@ -104,6 +135,8 @@ namespace :decidim do
104
135
  # rubocop:enable Rails/SkipsModelValidations
105
136
 
106
137
  puts "Transferred authorship in #{a[:model]} with id #{a[:id]} and gid #{a[:gid]} from #{a[:author_type]} with id #{a[:author_id]} to user with id #{a[:group_id]}"
138
+ rescue NameError
139
+ puts "Error on #{a[:id]}"
107
140
  end
108
141
  puts "===== Transfer finished."
109
142
  end
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.31.0.rc1
4
+ version: 0.31.0
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: 2025-09-25 00:00:00.000000000 Z
13
+ date: 2025-11-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: concurrent-ruby
@@ -138,6 +138,20 @@ dependencies:
138
138
  - - "~>"
139
139
  - !ruby/object:Gem::Version
140
140
  version: 5.1.2
141
+ - !ruby/object:Gem::Dependency
142
+ name: data_migrate
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '11.3'
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '11.3'
141
155
  - !ruby/object:Gem::Dependency
142
156
  name: date_validator
143
157
  requirement: !ruby/object:Gem::Requirement
@@ -800,28 +814,28 @@ dependencies:
800
814
  requirements:
801
815
  - - '='
802
816
  - !ruby/object:Gem::Version
803
- version: 0.31.0.rc1
817
+ version: 0.31.0
804
818
  type: :development
805
819
  prerelease: false
806
820
  version_requirements: !ruby/object:Gem::Requirement
807
821
  requirements:
808
822
  - - '='
809
823
  - !ruby/object:Gem::Version
810
- version: 0.31.0.rc1
824
+ version: 0.31.0
811
825
  - !ruby/object:Gem::Dependency
812
826
  name: decidim-dev
813
827
  requirement: !ruby/object:Gem::Requirement
814
828
  requirements:
815
829
  - - '='
816
830
  - !ruby/object:Gem::Version
817
- version: 0.31.0.rc1
831
+ version: 0.31.0
818
832
  type: :development
819
833
  prerelease: false
820
834
  version_requirements: !ruby/object:Gem::Requirement
821
835
  requirements:
822
836
  - - '='
823
837
  - !ruby/object:Gem::Version
824
- version: 0.31.0.rc1
838
+ version: 0.31.0
825
839
  description: Adds core features so other engines can hook into the framework.
826
840
  email:
827
841
  - josepjaume@gmail.com
@@ -858,6 +872,7 @@ files:
858
872
  - app/cells/decidim/attachments_link_tab_cell.rb
859
873
  - app/cells/decidim/author/avatar.erb
860
874
  - app/cells/decidim/author/avatar_image.erb
875
+ - app/cells/decidim/author/badge.erb
861
876
  - app/cells/decidim/author/cancelled_on.erb
862
877
  - app/cells/decidim/author/comments.erb
863
878
  - app/cells/decidim/author/contact.erb
@@ -2053,6 +2068,7 @@ files:
2053
2068
  - app/views/decidim/user_activities/index.js.erb
2054
2069
  - app/views/decidim/user_group_mailer/notify_deprecation_to_member.html.erb
2055
2070
  - app/views/decidim/user_group_mailer/notify_deprecation_to_owner.html.erb
2071
+ - app/views/decidim/user_group_mailer/notify_user_group_patched.html.erb
2056
2072
  - app/views/decidim/user_report_mailer/notify.html.erb
2057
2073
  - app/views/decidim/user_update_mailer/notify.html.erb
2058
2074
  - app/views/decidim/widgets/_data_picker.html.erb
@@ -2225,6 +2241,7 @@ files:
2225
2241
  - config/locales/zh-CN.yml
2226
2242
  - config/locales/zh-TW.yml
2227
2243
  - config/routes.rb
2244
+ - db/data/20251108232118_add_dummy_migration.rb
2228
2245
  - db/migrate/20160817115213_devise_create_decidim_users.rb
2229
2246
  - db/migrate/20160919104837_create_decidim_organizations.rb
2230
2247
  - db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb
@@ -2470,6 +2487,7 @@ files:
2470
2487
  - db/migrate/20250603103953_add_refresh_tokens_enabled_to_doorkeeper_applications.rb
2471
2488
  - db/migrate/20250609073104_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb
2472
2489
  - db/migrate/20250613122148_remove_hashtag_table_from_core.rb
2490
+ - db/migrate/20250819110800_convert_private_exports_id_to_uuid.rb
2473
2491
  - db/seeds.rb
2474
2492
  - db/seeds/Exampledocument.pdf
2475
2493
  - db/seeds/avatars/001.jpg
@@ -3032,6 +3050,7 @@ files:
3032
3050
  - lib/tasks/upgrade/decidim_change_valuator_tasks.rake
3033
3051
  - lib/tasks/upgrade/decidim_content_blocks_tasks.rake
3034
3052
  - lib/tasks/upgrade/decidim_deduplicate_likes.rake
3053
+ - lib/tasks/upgrade/decidim_fix_action_log.rake
3035
3054
  - lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake
3036
3055
  - lib/tasks/upgrade/decidim_fix_short_url_resolver.rake
3037
3056
  - lib/tasks/upgrade/decidim_migrate_wysiwyg_content.rake