decidim-core 0.30.0.rc3 → 0.30.1

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/address/show.erb +3 -3
  3. data/app/cells/decidim/author/show.erb +1 -1
  4. data/app/cells/decidim/content_blocks/participatory_space_extra_data/extra_data.erb +2 -2
  5. data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +4 -4
  6. data/app/cells/decidim/participatory_space_dropdown_metadata/show.erb +5 -3
  7. data/app/commands/decidim/create_report.rb +6 -7
  8. data/app/commands/decidim/invite_user.rb +1 -1
  9. data/app/commands/decidim/search.rb +14 -0
  10. data/app/controllers/concerns/decidim/participatory_space_context.rb +4 -1
  11. data/app/controllers/decidim/reports_controller.rb +7 -2
  12. data/app/forms/decidim/account_form.rb +4 -1
  13. data/app/forms/decidim/ephemeral_user_form.rb +1 -1
  14. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  15. data/app/forms/decidim/registration_form.rb +1 -1
  16. data/app/helpers/decidim/menu_helper.rb +2 -2
  17. data/app/helpers/decidim/paginate_helper.rb +1 -1
  18. data/app/helpers/decidim/tooltip_helper.rb +4 -1
  19. data/app/mailers/decidim/notifications_digest_mailer.rb +7 -1
  20. data/app/mailers/decidim/reported_mailer.rb +18 -2
  21. data/app/models/decidim/action_log.rb +1 -9
  22. data/app/packs/src/decidim/datepicker/datepicker_functions.js +3 -3
  23. data/app/packs/src/decidim/index.js +4 -2
  24. data/app/packs/src/decidim/input_character_counter.js +1 -1
  25. data/app/packs/stylesheets/decidim/_cards.scss +1 -1
  26. data/app/packs/stylesheets/decidim/_content_blocks.scss +4 -0
  27. data/app/packs/stylesheets/decidim/_header.scss +60 -37
  28. data/app/packs/stylesheets/decidim/resource_history.scss +14 -4
  29. data/app/permissions/decidim/default_permissions.rb +2 -0
  30. data/app/presenters/decidim/log/user_presenter.rb +1 -0
  31. data/app/presenters/decidim/notification_to_mailer_presenter.rb +7 -3
  32. data/app/presenters/decidim/user_presenter.rb +1 -1
  33. data/app/queries/decidim/last_activity.rb +25 -0
  34. data/app/services/decidim/base_diff_renderer.rb +2 -0
  35. data/app/views/decidim/messaging/conversations/_reply_form.html.erb +1 -2
  36. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
  37. data/app/views/decidim/reported_mailer/hidden_automatically.html.erb +25 -0
  38. data/app/views/decidim/reported_mailer/hidden_manually.html.erb +25 -0
  39. data/app/views/decidim/reported_mailer/report.html.erb +1 -1
  40. data/app/views/decidim/searches/_count.html.erb +1 -1
  41. data/app/views/decidim/searches/_filters.html.erb +40 -38
  42. data/app/views/decidim/shared/_results_per_page.html.erb +1 -1
  43. data/app/views/kaminari/decidim/_page.html.erb +1 -1
  44. data/app/views/kaminari/decidim/_paginator.html.erb +1 -1
  45. data/app/views/layouts/decidim/_logo.html.erb +2 -2
  46. data/app/views/layouts/decidim/footer/_main_legal.html.erb +1 -1
  47. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_desktop.html.erb +5 -11
  48. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +5 -5
  49. data/config/locales/ar.yml +3 -10
  50. data/config/locales/bg.yml +2 -9
  51. data/config/locales/bs-BA.yml +2 -0
  52. data/config/locales/ca-IT.yml +2411 -0
  53. data/config/locales/ca.yml +36 -3
  54. data/config/locales/cs.yml +33 -14
  55. data/config/locales/de.yml +39 -15
  56. data/config/locales/el.yml +2 -9
  57. data/config/locales/en.yml +34 -1
  58. data/config/locales/es-MX.yml +38 -5
  59. data/config/locales/es-PY.yml +38 -5
  60. data/config/locales/es.yml +35 -2
  61. data/config/locales/eu.yml +68 -35
  62. data/config/locales/fi-plain.yml +4 -18
  63. data/config/locales/fi.yml +4 -18
  64. data/config/locales/fr-CA.yml +30 -12
  65. data/config/locales/fr.yml +29 -11
  66. data/config/locales/ga-IE.yml +2 -0
  67. data/config/locales/gl.yml +3 -6
  68. data/config/locales/hu.yml +2 -9
  69. data/config/locales/id-ID.yml +2 -7
  70. data/config/locales/is-IS.yml +0 -5
  71. data/config/locales/it.yml +12 -11
  72. data/config/locales/ja.yml +87 -23
  73. data/config/locales/lb.yml +5 -8
  74. data/config/locales/lt.yml +0 -7
  75. data/config/locales/lv.yml +2 -7
  76. data/config/locales/nl.yml +2 -5
  77. data/config/locales/no.yml +2 -5
  78. data/config/locales/pl.yml +2 -9
  79. data/config/locales/pt-BR.yml +3 -10
  80. data/config/locales/pt.yml +2 -5
  81. data/config/locales/ro-RO.yml +165 -7
  82. data/config/locales/ru.yml +0 -5
  83. data/config/locales/sk.yml +2 -7
  84. data/config/locales/sr-CS.yml +2 -0
  85. data/config/locales/sv.yml +54 -12
  86. data/config/locales/tr-TR.yml +3 -8
  87. data/config/locales/uk.yml +0 -5
  88. data/config/locales/zh-CN.yml +2 -7
  89. data/config/locales/zh-TW.yml +2 -7
  90. data/db/migrate/20171212103803_create_unique_nicknames.rb +1 -1
  91. data/db/migrate/20180221101934_fix_nickname_index.rb +1 -1
  92. data/db/migrate/20180706104107_add_nickname_to_managed_users.rb +1 -1
  93. data/db/migrate/20181001124950_move_users_groups_to_users_table.rb +1 -1
  94. data/db/migrate/20190412131728_fix_user_names.rb +1 -1
  95. data/lib/decidim/asset_router/storage.rb +7 -2
  96. data/lib/decidim/attributes/time_with_zone.rb +5 -1
  97. data/lib/decidim/content_parsers/blob_parser.rb +10 -8
  98. data/lib/decidim/core/test/factories.rb +12 -0
  99. data/lib/decidim/core/test/shared_examples/map_examples.rb +2 -2
  100. data/lib/decidim/core/test/shared_examples/reports_examples.rb +8 -15
  101. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +26 -0
  102. data/lib/decidim/core/test/shared_examples/versions_controller_examples.rb +26 -0
  103. data/lib/decidim/core/version.rb +1 -1
  104. data/lib/decidim/moderation_tools.rb +14 -8
  105. data/lib/decidim/nicknamizable.rb +6 -9
  106. data/lib/decidim/participatory_space_user.rb +1 -3
  107. data/lib/decidim/private_download_helper.rb +3 -3
  108. data/lib/decidim/reportable.rb +6 -2
  109. data/lib/decidim/translatable_attributes.rb +5 -1
  110. data/lib/tasks/upgrade/clean.rake +9 -1
  111. data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +4 -4
  112. data/lib/tasks/upgrade/migrations.rake +2 -0
  113. metadata +9 -8
  114. data/app/views/decidim/reported_mailer/hide.html.erb +0 -9
  115. data/lib/tasks/upgrade/clean_hidden_resources.rake +0 -33
@@ -37,9 +37,7 @@ module Decidim
37
37
  raise "Not implemented"
38
38
  end
39
39
 
40
- def self.ransackable_attributes(auth_object = nil)
41
- return [] unless auth_object&.admin?
42
-
40
+ def self.ransackable_attributes(_auth_object = nil)
43
41
  %w(name nickname email invitation_accepted_at last_sign_in_at role)
44
42
  end
45
43
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  module Decidim
4
4
  module PrivateDownloadHelper
5
- def attach_archive(export_data, name, user)
5
+ def attach_archive(export_data, file_name, user, export_type = nil)
6
6
  private_exports = user.private_exports.build
7
- private_exports.export_type = name
8
- private_exports.file.attach(io: StringIO.open(FileZipper.new(export_data.filename(name), export_data.read).zip), filename: "#{name}.zip")
7
+ private_exports.export_type = export_type || file_name
8
+ private_exports.file.attach(io: StringIO.open(FileZipper.new(export_data.filename(file_name), export_data.read).zip), filename: "#{file_name}.zip")
9
9
  private_exports.expires_at = Decidim.download_your_data_expiry_time.from_now
10
10
  private_exports.metadata = {}
11
11
  private_exports.save!
@@ -53,8 +53,12 @@ module Decidim
53
53
  # Public: The reported content url
54
54
  #
55
55
  # Returns String
56
- def reported_content_url
57
- raise NotImplementedError
56
+ def reported_content_url(options = {})
57
+ if hidden?
58
+ ResourceLocatorPresenter.new(self).index(options)
59
+ else
60
+ ResourceLocatorPresenter.new(self).url(options)
61
+ end
58
62
  end
59
63
 
60
64
  # Public: The collection of attribute names that are considered
@@ -62,7 +62,7 @@ module Decidim
62
62
  final = super(value)
63
63
  return unless final # Do not set the `nil` values for the parent hash
64
64
 
65
- final = value_type.serialize(final) if value_type
65
+ final = value_type.serialize(final) if value_type && !attachment?(final)
66
66
 
67
67
  public_send("#{name}=", field.merge(locale => final))
68
68
  end
@@ -127,5 +127,9 @@ module Decidim
127
127
  locale.to_s == try(:default_locale).to_s ||
128
128
  locale.to_s == try(:current_organization).try(:default_locale).to_s
129
129
  end
130
+
131
+ def attachment?(value)
132
+ value.is_a?(String) && value.include?(ActiveStorage.routes_prefix)
133
+ end
130
134
  end
131
135
  end
@@ -11,7 +11,8 @@ namespace :decidim do
11
11
  :"decidim:upgrade:clean:categories",
12
12
  :"decidim:upgrade:clean:action_logs",
13
13
  :"decidim:upgrade:clean:clean_deleted_users",
14
- :"decidim:upgrade:clean:fix_blocked_user_notification"
14
+ :"decidim:upgrade:clean:fix_blocked_user_notification",
15
+ :"decidim:upgrade:clean:invalid_private_exports"
15
16
  ]
16
17
 
17
18
  desc "Remove data from deleted users"
@@ -140,6 +141,13 @@ namespace :decidim do
140
141
  logger.info("===== Updated #{blocked_users} blocked users")
141
142
  end
142
143
 
144
+ desc "Removes all the invalid records from private downloads"
145
+ task invalid_private_exports: :environment do
146
+ invalid_private_exports = Decidim::PrivateExport.where("export_type ~ '^survey_user_answers_[0-9a-f]{64}$'")
147
+ logger.info("=== Removing #{invalid_private_exports.length} private exports")
148
+ invalid_private_exports.delete_all
149
+ end
150
+
143
151
  def logger
144
152
  @logger ||= Logger.new($stdout)
145
153
  end
@@ -7,7 +7,7 @@ namespace :decidim do
7
7
  logger.info("Fixing user nicknames case...")
8
8
 
9
9
  has_changed = []
10
- Decidim::User.not_deleted.find_each do |user|
10
+ Decidim::UserBaseEntity.not_deleted.find_each do |user|
11
11
  user.nickname.downcase!
12
12
 
13
13
  begin
@@ -15,11 +15,11 @@ namespace :decidim do
15
15
  user.save!
16
16
  has_changed << user.id
17
17
  end
18
- rescue ActiveRecord::RecordInvalid
19
- update_user_nickname(user, Decidim::UserBaseEntity.nicknamize(user.nickname, organization: user.organization))
18
+ rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotUnique
19
+ update_user_nickname(user, Decidim::UserBaseEntity.nicknamize(user.nickname, user.decidim_organization_id))
20
20
  has_changed << user.id
21
21
  rescue ActiveRecord::RecordInvalid # rubocop:disable Lint/DuplicateRescueException
22
- logger.warn("User ID (#{similar_user.id}) : #{e}")
22
+ logger.warn("User ID (#{user.id}) : #{e}")
23
23
  end
24
24
  end
25
25
  logger.info("Process terminated, #{has_changed.count} users nickname have been updated.")
@@ -75,7 +75,9 @@ namespace :decidim do
75
75
  end
76
76
 
77
77
  new_source = "#{magic_comments}#{inserted_comment}#{source}"
78
+
78
79
  old_source = File.binread(target_file)
80
+ old_source = old_source.gsub(/# This file has been modified by `decidim upgrade:migrations` task on (.*)\n/, "")
79
81
 
80
82
  return if old_source == new_source
81
83
 
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.0.rc3
4
+ version: 0.30.1
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-03-19 00:00:00.000000000 Z
13
+ date: 2025-06-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: concurrent-ruby
@@ -780,28 +780,28 @@ dependencies:
780
780
  requirements:
781
781
  - - '='
782
782
  - !ruby/object:Gem::Version
783
- version: 0.30.0.rc3
783
+ version: 0.30.1
784
784
  type: :development
785
785
  prerelease: false
786
786
  version_requirements: !ruby/object:Gem::Requirement
787
787
  requirements:
788
788
  - - '='
789
789
  - !ruby/object:Gem::Version
790
- version: 0.30.0.rc3
790
+ version: 0.30.1
791
791
  - !ruby/object:Gem::Dependency
792
792
  name: decidim-dev
793
793
  requirement: !ruby/object:Gem::Requirement
794
794
  requirements:
795
795
  - - '='
796
796
  - !ruby/object:Gem::Version
797
- version: 0.30.0.rc3
797
+ version: 0.30.1
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.0.rc3
804
+ version: 0.30.1
805
805
  description: Adds core features so other engines can hook into the framework.
806
806
  email:
807
807
  - josepjaume@gmail.com
@@ -2080,7 +2080,8 @@ files:
2080
2080
  - app/views/decidim/pages/show.html.erb
2081
2081
  - app/views/decidim/participatory_space_private_users/_participatory_space_private_user.html.erb
2082
2082
  - app/views/decidim/profiles/show.html.erb
2083
- - app/views/decidim/reported_mailer/hide.html.erb
2083
+ - app/views/decidim/reported_mailer/hidden_automatically.html.erb
2084
+ - app/views/decidim/reported_mailer/hidden_manually.html.erb
2084
2085
  - app/views/decidim/reported_mailer/report.html.erb
2085
2086
  - app/views/decidim/searches/_count.html.erb
2086
2087
  - app/views/decidim/searches/_filters.html.erb
@@ -2199,6 +2200,7 @@ files:
2199
2200
  - config/locales/bg.yml
2200
2201
  - config/locales/bn-BD.yml
2201
2202
  - config/locales/bs-BA.yml
2203
+ - config/locales/ca-IT.yml
2202
2204
  - config/locales/ca.yml
2203
2205
  - config/locales/cs-CZ.yml
2204
2206
  - config/locales/cs.yml
@@ -3079,7 +3081,6 @@ files:
3079
3081
  - lib/tasks/decidim_taxonomies.rake
3080
3082
  - lib/tasks/decidim_webpacker_tasks.rake
3081
3083
  - lib/tasks/upgrade/clean.rake
3082
- - lib/tasks/upgrade/clean_hidden_resources.rake
3083
3084
  - lib/tasks/upgrade/decidim_active_storage_migration_tasks.rake
3084
3085
  - lib/tasks/upgrade/decidim_attachments.rake
3085
3086
  - lib/tasks/upgrade/decidim_content_blocks_tasks.rake
@@ -1,9 +0,0 @@
1
- <p class="email-greeting"><%= t(".hello", name: @user.name) %></p>
2
-
3
- <p class="email-instructions">
4
- <%= t(".report_html", url: reported_content_url ) %>
5
- </p>
6
-
7
- <p class="email-button email-button__cta">
8
- <%= link_to t(".manage_moderations"), manage_moderations_url %>
9
- </p>
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :decidim do
4
- namespace :upgrade do
5
- namespace :clean do
6
- desc "Removes all related resources from hidden resource"
7
- task hidden_resources: :environment do
8
- logger.info("Removing child resources for hidden parents...")
9
- Decidim::Moderation.hidden.find_each do |moderation_for_hidden_resource|
10
- reportable = moderation_for_hidden_resource.reportable
11
-
12
- current_user = if Decidim.module_installed?(:ai)
13
- reportable.organization.users.find_by!(email: Decidim::Ai::SpamDetection.reporting_user_email)
14
- else
15
- reportable.organization.admins.first
16
- end
17
-
18
- tool = Decidim::ModerationTools.new(reportable, current_user)
19
- tool.hide!
20
- rescue NameError => e
21
- log_error "Could not hide child resources for reportable id #{moderation_for_hidden_resource.id} because: #{e.message}"
22
- end
23
- end
24
-
25
- private
26
-
27
- def log_error(msg)
28
- puts msg
29
- Rails.logger.error(msg)
30
- end
31
- end
32
- end
33
- end