diff --git a/app/views/decidim/initiatives/initiatives/_new_initiative_button.html.erb b/app/views/decidim/initiatives/initiatives/_new_initiative_button.html.erb deleted file mode 100644 index 73e65eb04b..0000000000 --- a/app/views/decidim/initiatives/initiatives/_new_initiative_button.html.erb +++ /dev/null @@ -1,30 +0,0 @@ -<% if Decidim::Initiatives.creation_enabled %> - <% if current_user && available_initiative_types.size > 1 %> - <%= link_to create_initiative_path(:select_initiative_type), class: "!px-4 title-action__action button button__xl button__secondary w-full" do %> - <%= t("new_initiative", scope: "decidim.initiatives.initiatives.index_header") %> - <%= icon "add-fill" %> - <% end %> - <% elsif current_user %> - <% has_available_authorizations = current_organization.available_authorizations.any? %> - - <% if allowed_to?(:create, :initiative, { initiative_type: available_initiative_types.first }) || !has_available_authorizations %> - <%= link_to create_initiative_path(:select_initiative_type), class: "!px-4 title-action__action button button__xl button__secondary w-full" do %> - <%= t("new_initiative", scope: "decidim.initiatives.initiatives.index_header") %> - <%= icon "add-fill" %> - <% end %> - <% else %> - <%= authorized_create_modal_button(available_initiative_types.first, remote: true, class: "!px-4 title-action__action button button__xl button__secondary w-full") do %> - <%= t("new_initiative", scope: "decidim.initiatives.initiatives.index_header") %> - <%= icon "add-fill" %> - <% end %> - <% end %> - <% else %> - <% content_for(:redirect_after_login) { create_initiative_url(:select_initiative_type) } %> - - <% end %> -<% end %> - -<%= render partial: "decidim/initiatives/modal" %> diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 401fdb61a6..b8b4956fe2 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -205,3 +205,4 @@ ignore_unused: - decidim.initiatives.form.add_documents - decidim.initiatives.form.edit_documents - layouts.decidim.initiative_creation_header.* + - decidim.initiatives.signatures.workflows.legacy_signature_handler.* diff --git a/config/initializers/decidim.rb b/config/initializers/decidim.rb index 4bd23c808d..7dee6a4c5a 100644 --- a/config/initializers/decidim.rb +++ b/config/initializers/decidim.rb @@ -497,26 +497,6 @@ end end -if Decidim.module_installed? :initiatives - Decidim::Initiatives.configure do |config| - creation_enabled = Decidim::Env.new("INITIATIVES_CREATION_ENABLED", "auto").default_or_present_if_exists - config.creation_enabled = creation_enabled.present? unless creation_enabled.to_s == "auto" - - config.minimum_committee_members = Decidim::Env.new("INITIATIVES_MINIMUM_COMMITTEE_MEMBERS", 2).to_i - config.default_signature_time_period_length = Decidim::Env.new("INITIATIVES_DEFAULT_SIGNATURE_TIME_PERIOD_LENGTH", 120).to_i - config.default_components = Decidim::Env.new("INITIATIVES_DEFAULT_COMPONENTS", "pages, meetings").to_array - config.first_notification_percentage = Decidim::Env.new("INITIATIVES_FIRST_NOTIFICATION_PERCENTAGE", 33).to_i - config.second_notification_percentage = Decidim::Env.new("INITIATIVES_SECOND_NOTIFICATION_PERCENTAGE", 66).to_i - config.stats_cache_expiration_time = Decidim::Env.new("INITIATIVES_STATS_CACHE_EXPIRATION_TIME", 5).to_i.minutes - config.max_time_in_validating_state = Decidim::Env.new("INITIATIVES_MAX_TIME_IN_VALIDATING_STATE", 60).to_i.days - - print_enabled = Decidim::Env.new("INITIATIVES_PRINT_ENABLED", "auto").default_or_present_if_exists - config.print_enabled = print_enabled.present? unless print_enabled.to_s == "auto" - - config.do_not_require_authorization = Decidim::Env.new("INITIATIVES_DO_NOT_REQUIRE_AUTHORIZATION", false).to_boolean_string == "true" - end -end - Rails.application.config.i18n.available_locales = Decidim.available_locales Rails.application.config.i18n.default_locale = Decidim.default_locale diff --git a/config/initializers/decidim_initiatives.rb b/config/initializers/decidim_initiatives.rb new file mode 100644 index 0000000000..737bc88106 --- /dev/null +++ b/config/initializers/decidim_initiatives.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +return unless Decidim.module_installed?(:initiatives) + +Decidim::Initiatives.configure do |config| + creation_enabled = Decidim::Env.new("INITIATIVES_CREATION_ENABLED", "auto").default_or_present_if_exists + config.creation_enabled = creation_enabled.present? unless creation_enabled.to_s == "auto" + + config.minimum_committee_members = Decidim::Env.new("INITIATIVES_MINIMUM_COMMITTEE_MEMBERS", 2).to_i + config.default_signature_time_period_length = Decidim::Env.new("INITIATIVES_DEFAULT_SIGNATURE_TIME_PERIOD_LENGTH", 120).to_i + config.default_components = Decidim::Env.new("INITIATIVES_DEFAULT_COMPONENTS", "pages, meetings").to_array + config.first_notification_percentage = Decidim::Env.new("INITIATIVES_FIRST_NOTIFICATION_PERCENTAGE", 33).to_i + config.second_notification_percentage = Decidim::Env.new("INITIATIVES_SECOND_NOTIFICATION_PERCENTAGE", 66).to_i + config.stats_cache_expiration_time = Decidim::Env.new("INITIATIVES_STATS_CACHE_EXPIRATION_TIME", 5).to_i.minutes + config.max_time_in_validating_state = Decidim::Env.new("INITIATIVES_MAX_TIME_IN_VALIDATING_STATE", 60).to_i.days + + print_enabled = Decidim::Env.new("INITIATIVES_PRINT_ENABLED", "auto").default_or_present_if_exists + config.print_enabled = print_enabled.present? unless print_enabled.to_s == "auto" + + config.do_not_require_authorization = Decidim::Env.new("INITIATIVES_DO_NOT_REQUIRE_AUTHORIZATION", false).to_boolean_string == "true" +end + +# Signature workflows (introduced in Decidim 0.31, PR #13729). +# At least one workflow must be registered for initiative types to be +# configurable in the admin. The legacy handler reproduces the pre-0.31 +# behaviour and must be available in all environments. +Decidim::Initiatives::Signatures.register_workflow(:legacy_signature_handler) do |workflow| + workflow.form = "Decidim::Initiatives::LegacySignatureHandler" + workflow.save_authorizations = false + workflow.sms_verification = false +end diff --git a/config/locales/en.yml b/config/locales/en.yml index 2370815697..090812c239 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -514,9 +514,11 @@ en: edit_attachments: Edit attachments edit_image: Edit image image_legend: "(Optional) Add an image" - initiatives: - index_header: - new_initiative: New initiative + signatures: + workflows: + legacy_signature_handler: + description: Signature handler based on the old signature feature including the collection of personal data, the SMS step and validating the authorization with dummy_authorization_handler. Modify any parameter to adapt to the configuration used + name: Legacy Signature Handler like_buttons_cell: already_liked: Undo the like like: Like diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 1264479b65..eb91a8f899 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -522,9 +522,11 @@ fr: edit_attachments: Modifier les pièces jointes edit_image: Modifier l'Image image_legend: "(Facultatif) Ajouter une image" - initiatives: - index_header: - new_initiative: Nouvelle pétition + signatures: + workflows: + legacy_signature_handler: + description: Procédure de signature basée sur l'ancien système de pétitions, incluant la collecte de données personnelles, l'étape de vérification par SMS et la validation de l'autorisation. Modifiez les paramètres de l'initializer pour l'adapter à votre configuration. + name: Procédure de signature standard like_buttons_cell: already_liked: Je n'aime plus like: J'aime