decidim-decidim_awesome 0.11.4 → 0.12.3

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 (156) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -6
  3. data/README.md +33 -39
  4. data/Rakefile +12 -0
  5. data/app/cells/concerns/decidim/decidim_awesome/global_menu_cell_override.rb +14 -2
  6. data/app/cells/concerns/decidim/decidim_awesome/proposal_l_cell_override.rb +5 -4
  7. data/app/cells/decidim/decidim_awesome/voting/voting_cards_proposal/show.erb +4 -4
  8. data/app/cells/decidim/decidim_awesome/voting/voting_cards_proposal/vote_block_for.erb +1 -1
  9. data/app/cells/decidim/decidim_awesome/voting/voting_cards_proposal_cell.rb +3 -5
  10. data/app/commands/concerns/decidim/decidim_awesome/system/{register_organization_override.rb → create_organization_override.rb} +1 -1
  11. data/app/commands/concerns/decidim/decidim_awesome/update_account_override.rb +4 -4
  12. data/app/commands/decidim/decidim_awesome/admin/create_constraint.rb +1 -1
  13. data/app/commands/decidim/decidim_awesome/create_editor_image.rb +2 -2
  14. data/app/controllers/concerns/decidim/decidim_awesome/admin/maintenance_context.rb +0 -28
  15. data/app/controllers/concerns/decidim/decidim_awesome/needs_hashcash.rb +41 -0
  16. data/app/controllers/concerns/decidim/decidim_awesome/not_found_redirect.rb +2 -2
  17. data/app/controllers/decidim/decidim_awesome/admin/admin_authorizations_controller.rb +2 -2
  18. data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +0 -10
  19. data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +2 -1
  20. data/app/controllers/decidim/decidim_awesome/admin/custom_redirects_controller.rb +1 -2
  21. data/app/controllers/decidim/decidim_awesome/admin/hashcash_controller.rb +39 -0
  22. data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +1 -1
  23. data/app/controllers/decidim/decidim_awesome/admin/{maintenance_controller.rb → private_data_controller.rb} +9 -9
  24. data/app/controllers/decidim/decidim_awesome/utils_controller.rb +17 -0
  25. data/app/forms/concerns/decidim/decidim_awesome/proposals/{proposal_wizard_create_step_form_override.rb → proposal_form_customizations.rb} +1 -1
  26. data/app/forms/concerns/decidim/decidim_awesome/proposals/proposal_form_override.rb +7 -1
  27. data/app/forms/concerns/decidim/decidim_awesome/system/organization_form_override.rb +2 -2
  28. data/app/forms/decidim/decidim_awesome/admin/config_form.rb +13 -0
  29. data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +1 -1
  30. data/app/helpers/decidim/decidim_awesome/map_helper.rb +4 -2
  31. data/app/models/decidim/decidim_awesome/paper_trail_version.rb +1 -1
  32. data/app/overrides/decidim/devise/registrations/new/add_hashcash.html.erb.deface +3 -0
  33. data/app/overrides/decidim/devise/sessions/new/add_hashcash.html.erb.deface +3 -0
  34. data/app/overrides/layouts/decidim/_head/add_awesome_custom_styles.html.erb.deface +3 -0
  35. data/app/overrides/layouts/decidim/_head/add_awesome_tags.html.erb.deface +0 -2
  36. data/app/packs/entrypoints/decidim_admin_decidim_awesome_search_form.scss +1 -0
  37. data/app/packs/entrypoints/decidim_decidim_awesome_hashcash.js +4 -0
  38. data/app/packs/src/decidim/decidim_awesome/admin/auto_edit.js +10 -6
  39. data/app/packs/src/decidim/decidim_awesome/admin/custom_fields_builder.js +4 -2
  40. data/app/packs/src/decidim/decidim_awesome/admin/verifications.js +6 -3
  41. data/app/packs/src/decidim/decidim_awesome/awesome_map/api/proposals_fetcher.js +1 -1
  42. data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/controller.js +1 -1
  43. data/app/packs/src/decidim/decidim_awesome/awesome_map/controllers/proposals_controller.js +1 -1
  44. data/app/packs/src/decidim/decidim_awesome/awesome_map/controls_ui.js +6 -6
  45. data/app/packs/src/decidim/decidim_awesome/awesome_map/load_map.js +1 -1
  46. data/app/packs/src/decidim/decidim_awesome/forms/autosave.js +3 -3
  47. data/app/packs/src/decidim/decidim_awesome/forms/custom_fields_renderer.js +1 -113
  48. data/app/packs/src/decidim/decidim_awesome/proposals/images.js +1 -1
  49. data/app/packs/src/vendor/form_builder_langs/ar-SA.lang +111 -0
  50. data/app/packs/src/vendor/form_builder_langs/ar-TN.lang +94 -0
  51. data/app/packs/src/vendor/form_builder_langs/ca-ES.lang +110 -0
  52. data/app/packs/src/vendor/form_builder_langs/cs-CZ.lang +105 -0
  53. data/app/packs/src/vendor/form_builder_langs/da-DK.lang +110 -0
  54. data/app/packs/src/vendor/form_builder_langs/de-DE.lang +109 -0
  55. data/app/packs/src/vendor/form_builder_langs/el-GR.lang +110 -0
  56. data/app/packs/src/vendor/form_builder_langs/en-US.lang +117 -0
  57. data/app/packs/src/vendor/form_builder_langs/es-ES.lang +103 -0
  58. data/app/packs/src/vendor/form_builder_langs/fa-IR.lang +108 -0
  59. data/app/packs/src/vendor/form_builder_langs/fi-FI.lang +107 -0
  60. data/app/packs/src/vendor/form_builder_langs/fr-FR.lang +117 -0
  61. data/app/packs/src/vendor/form_builder_langs/he-IL.lang +108 -0
  62. data/app/packs/src/vendor/form_builder_langs/hi-IN.lang +110 -0
  63. data/app/packs/src/vendor/form_builder_langs/hu-HU.lang +108 -0
  64. data/app/packs/src/vendor/form_builder_langs/id-ID.lang +110 -0
  65. data/app/packs/src/vendor/form_builder_langs/it-IT.lang +107 -0
  66. data/app/packs/src/vendor/form_builder_langs/ja-JP.lang +108 -0
  67. data/app/packs/src/vendor/form_builder_langs/my-MM.lang +108 -0
  68. data/app/packs/src/vendor/form_builder_langs/nb-NO.lang +94 -0
  69. data/app/packs/src/vendor/form_builder_langs/nl-NL.lang +94 -0
  70. data/app/packs/src/vendor/form_builder_langs/pl-PL.lang +122 -0
  71. data/app/packs/src/vendor/form_builder_langs/pt-BR.lang +110 -0
  72. data/app/packs/src/vendor/form_builder_langs/pu-IN.lang +110 -0
  73. data/app/packs/src/vendor/form_builder_langs/qz-MM.lang +108 -0
  74. data/app/packs/src/vendor/form_builder_langs/ro-RO.lang +94 -0
  75. data/app/packs/src/vendor/form_builder_langs/ru-RU.lang +110 -0
  76. data/app/packs/src/vendor/form_builder_langs/sl-SI.lang +110 -0
  77. data/app/packs/src/vendor/form_builder_langs/th-TH.lang +111 -0
  78. data/app/packs/src/vendor/form_builder_langs/tr-TR.lang +115 -0
  79. data/app/packs/src/vendor/form_builder_langs/uk-UA.lang +108 -0
  80. data/app/packs/src/vendor/form_builder_langs/vi-VN.lang +94 -0
  81. data/app/packs/src/vendor/form_builder_langs/zh-CN.lang +100 -0
  82. data/app/packs/src/vendor/form_builder_langs/zh-TW.lang +94 -0
  83. data/app/packs/src/vendor/hashcash.js +83 -0
  84. data/app/packs/src/vendor/sha1.js +143 -0
  85. data/app/packs/src/vendor/stamp.js +50 -0
  86. data/app/packs/stylesheets/decidim/decidim_awesome/admin/admin_accountability.scss +67 -0
  87. data/app/packs/stylesheets/decidim/decidim_awesome/forms/autosave.scss +2 -12
  88. data/app/permissions/decidim/decidim_awesome/permissions.rb +3 -2
  89. data/app/presenters/decidim/decidim_awesome/private_data_presenter.rb +2 -2
  90. data/app/uploaders/decidim/decidim_awesome/image_uploader.rb +12 -0
  91. data/app/views/decidim/decidim_awesome/admin/admin_accountability/index.html.erb +5 -4
  92. data/app/views/decidim/decidim_awesome/admin/admin_authorizations/callout.html.erb +2 -2
  93. data/app/views/decidim/decidim_awesome/admin/admin_authorizations/conflict.html.erb +4 -4
  94. data/app/views/decidim/decidim_awesome/admin/admin_authorizations/edit.html.erb +6 -5
  95. data/app/views/decidim/decidim_awesome/admin/checks/index.html.erb +6 -6
  96. data/app/views/decidim/decidim_awesome/admin/config/_autoedit_box_label.html.erb +2 -2
  97. data/app/views/decidim/decidim_awesome/admin/config/_constraints.html.erb +3 -3
  98. data/app/views/decidim/decidim_awesome/admin/config/_form_admins.html.erb +4 -3
  99. data/app/views/decidim/decidim_awesome/admin/config/_form_editors.html.erb +1 -1
  100. data/app/views/decidim/decidim_awesome/admin/config/_form_proposal_custom_fields.html.erb +4 -4
  101. data/app/views/decidim/decidim_awesome/admin/config/_form_scoped_styles.html.erb +3 -3
  102. data/app/views/decidim/decidim_awesome/admin/config/_form_surveys.html.erb +40 -2
  103. data/app/views/decidim/decidim_awesome/admin/config/_form_verifications.html.erb +1 -1
  104. data/app/views/decidim/decidim_awesome/admin/hashcash/_filters.html.erb +55 -0
  105. data/app/views/decidim/decidim_awesome/admin/hashcash/index.html.erb +33 -0
  106. data/app/views/decidim/decidim_awesome/admin/hashcash/ip_addresses.html.erb +29 -0
  107. data/app/views/decidim/decidim_awesome/admin/hashcash/show.html.erb +42 -0
  108. data/app/views/decidim/decidim_awesome/admin/menu_hacks/index.html.erb +2 -2
  109. data/app/views/decidim/decidim_awesome/admin/{maintenance → private_data}/_private_data.html.erb +2 -2
  110. data/app/views/decidim/decidim_awesome/admin/{maintenance/show.html.erb → private_data/index.html.erb} +2 -3
  111. data/app/views/decidim/decidim_awesome/admin/proposals/_private_body.html.erb +1 -1
  112. data/app/views/decidim/decidim_awesome/admin/shared/_filters_with_date.html.erb +41 -32
  113. data/app/views/decidim/decidim_awesome/amendments/_modal.html.erb +2 -2
  114. data/app/views/decidim/decidim_awesome/hashcash/_hidden_field.html.erb +5 -0
  115. data/app/views/decidim/decidim_awesome/map_component/map/_map_template.html.erb +1 -1
  116. data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +2 -2
  117. data/app/views/layouts/decidim/decidim_awesome/admin/maintenance.html.erb +2 -11
  118. data/config/assets.rb +3 -1
  119. data/config/i18n-tasks.yml +1 -0
  120. data/config/locales/ca.yml +69 -30
  121. data/config/locales/cs.yml +68 -29
  122. data/config/locales/de.yml +67 -28
  123. data/config/locales/en.yml +81 -32
  124. data/config/locales/es.yml +68 -29
  125. data/config/locales/eu.yml +31 -31
  126. data/config/locales/fr.yml +82 -31
  127. data/config/locales/ja.yml +31 -31
  128. data/lib/decidim/decidim_awesome/admin_engine.rb +8 -5
  129. data/lib/decidim/decidim_awesome/awesome.rb +49 -27
  130. data/lib/decidim/decidim_awesome/checksums.yml +47 -42
  131. data/lib/decidim/decidim_awesome/context_analyzers/request_analyzer.rb +2 -2
  132. data/lib/decidim/decidim_awesome/engine.rb +16 -6
  133. data/lib/decidim/decidim_awesome/menu.rb +151 -138
  134. data/lib/decidim/decidim_awesome/test/initializer.rb +4 -1
  135. data/lib/decidim/decidim_awesome/test/shared_examples/box_label_editor_examples.rb +14 -14
  136. data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +2 -4
  137. data/lib/decidim/decidim_awesome/test/shared_examples/custom_fields_examples.rb +8 -8
  138. data/lib/decidim/decidim_awesome/test/shared_examples/custom_styles_examples.rb +6 -6
  139. data/lib/decidim/decidim_awesome/test/shared_examples/editor_examples.rb +5 -4
  140. data/lib/decidim/decidim_awesome/test/shared_examples/scoped_admins_examples.rb +5 -5
  141. data/lib/decidim/decidim_awesome/test/shared_examples/summary_examples.rb +16 -9
  142. data/lib/decidim/decidim_awesome/version.rb +2 -2
  143. data/lib/decidim/decidim_awesome.rb +0 -1
  144. data/lib/tasks/decidim_awesome_upgrade_tasks.rake +4 -5
  145. data/package.json +9 -18
  146. metadata +82 -26
  147. data/app/jobs/decidim/decidim_awesome/migrate_legacy_images_job.rb +0 -107
  148. data/app/uploaders/decidim/cw/decidim_awesome/image_uploader.rb +0 -26
  149. data/config/rubocop/disabled.yml +0 -11
  150. data/config/rubocop/faker.yml +0 -480
  151. data/config/rubocop/rails.yml +0 -88
  152. data/config/rubocop/rspec.yml +0 -65
  153. data/config/rubocop/ruby.yml +0 -1210
  154. data/lib/decidim/decidim_awesome/content_parsers/editor_images_parser.rb +0 -39
  155. data/lib/tasks/decidim_awesome_active_storage_migrations_tasks.rake +0 -35
  156. /data/{app/middleware/decidim/decidim_awesome → lib/decidim/decidim_awesome/middleware}/current_config.rb +0 -0
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module DecidimAwesome
5
- module ContentParsers
6
- # A parser that searches for editor images from CarrierWave in html
7
- # contents and replaces them with migrated images to ActiveStorage
8
- #
9
- # @see BaseParser Examples of how to use a content parser
10
- class EditorImagesParser < Decidim::ContentParsers::BaseParser
11
- # @return [String] the content with the CarrierWave images replaced.
12
- def rewrite
13
- return content if editor_images.blank?
14
-
15
- replace_editor_images
16
- parsed_content.to_html
17
- end
18
-
19
- def editor_images
20
- @editor_images ||= parsed_content.search(:img).index_with do |image|
21
- context[:routes_mappings].find { |mapping| image.attr(:src).end_with?(mapping[:origin_path]) }
22
- end.compact
23
- end
24
-
25
- private
26
-
27
- def parsed_content
28
- @parsed_content ||= Nokogiri::HTML(content)
29
- end
30
-
31
- def replace_editor_images
32
- editor_images.each do |image, mapping|
33
- image.set_attribute(:src, mapping[:instance].attached_uploader(:file).path)
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :decidim_awesome do
4
- namespace :active_storage_migrations do
5
- desc "Migrates editor images from Carrierwave to ActiveStorage"
6
- task migrate_from_carrierwave: :environment do
7
- stdout = Logger.new($stdout)
8
- stdout.level = Logger::INFO
9
- Rails.logger.extend(ActiveSupport::Logger.broadcast(stdout))
10
- Decidim::Organization.find_each do |organization|
11
- puts "Migrating Organization #{organization.id} (#{organization.host})..."
12
- routes_mappings = []
13
- Decidim::DecidimAwesome::MigrateLegacyImagesJob.perform_now(organization.id, routes_mappings)
14
-
15
- path = Rails.root.join("tmp/decidim_awesome_editor_images_mappings.csv")
16
- dirname = File.dirname(path)
17
- FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
18
- File.binwrite(path, Decidim::Exporters::CSV.new(routes_mappings).export.read)
19
- end
20
- end
21
-
22
- desc "Checks editor images migrated from Carrierwave to ActiveStorage"
23
- task check_migration_from_carrierwave: :environment do
24
- logger = ActiveSupport::TaggedLogging.new(Logger.new($stdout))
25
-
26
- Decidim::CarrierWaveMigratorService.check_migration(
27
- klass: Decidim::DecidimAwesome::EditorImage,
28
- cw_attribute: "image",
29
- cw_uploader: Decidim::Cw::DecidimAwesome::ImageUploader,
30
- as_attribute: "file",
31
- logger:
32
- )
33
- end
34
- end
35
- end