diff --git a/decidim-budgets/spec/system/orders_spec.rb b/decidim-budgets/spec/system/orders_spec.rb
index b39a890afa513..be2575f3710f6 100644
--- a/decidim-budgets/spec/system/orders_spec.rb
+++ b/decidim-budgets/spec/system/orders_spec.rb
@@ -671,14 +671,14 @@
end
end
- context "with supports enabled" do
+ context "with votes enabled" do
let(:proposal_component) do
create(:proposal_component, :with_votes_enabled, participatory_space: project.component.participatory_space)
end
let(:proposals) { create_list(:proposal, 1, :with_votes, component: proposal_component) }
- it "does not show the amount of supports" do
+ it "does not show the amount of votes" do
visit_budget
click_on translated(project.title)
diff --git a/decidim-core/README.md b/decidim-core/README.md
index 0d754711bfd57..0595238f1c445 100644
--- a/decidim-core/README.md
+++ b/decidim-core/README.md
@@ -28,7 +28,7 @@ User authentication is set up with [`Devise`](https://github.com/plataformatec/d
Core implements an Amendment feature that can be activated in the components. As of now, it is only implemented in the proposal component.
-This feature makes it possible for anyone to edit the text of an amendable resource and create a child resource as an amendment. This child resource may receive support and the author of the amendable resource may accept or reject the amendment (or child proposal). In case of rejection, the author of the rejected emendation may raise the child resource to an independent resource.
+This feature makes it possible for anyone to edit the text of an amendable resource and create a child resource as an amendment. This child resource may receive votes and the author of the amendable resource may accept or reject the amendment (or child proposal). In case of rejection, the author of the rejected emendation may raise the child resource to an independent resource.
### Key artifacts for Amendments
diff --git a/decidim-core/app/commands/decidim/amendable/withdraw.rb b/decidim-core/app/commands/decidim/amendable/withdraw.rb
index 7a9d5c3d5f63b..837d40d3c18d6 100644
--- a/decidim-core/app/commands/decidim/amendable/withdraw.rb
+++ b/decidim-core/app/commands/decidim/amendable/withdraw.rb
@@ -18,7 +18,7 @@ def initialize(amendment, current_user)
# Executes the command. Broadcasts these events:
#
# - :ok when everything is valid, together with the resource.
- # - :invalid if the resource already has supports or does not belong to current user.
+ # - :invalid if the resource already has votes or does not belong to current user.
#
# Returns nothing.
def call
diff --git a/decidim-core/app/presenters/decidim/home_stats_presenter.rb b/decidim-core/app/presenters/decidim/home_stats_presenter.rb
index aedab9312323a..3fcfb0e07fabb 100644
--- a/decidim-core/app/presenters/decidim/home_stats_presenter.rb
+++ b/decidim-core/app/presenters/decidim/home_stats_presenter.rb
@@ -45,7 +45,7 @@ def component_stats(conditions)
stats = {}
Decidim.component_manifests.flat_map do |component|
component
- .stats.except([:supports_count])
+ .stats.except([:votes_count])
.filter(conditions)
.with_context(published_components)
.each do |name, data|
diff --git a/decidim-core/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb b/decidim-core/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb
index f4d186cdd1d16..1a7b9ff80e9be 100644
--- a/decidim-core/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb
+++ b/decidim-core/lib/decidim/core/test/shared_examples/amendable/withdraw_amendment_examples.rb
@@ -4,7 +4,7 @@
context "when current user is the author of the amendment" do
let(:current_user) { amendment.amender }
- context "and the amendment has no supports" do
+ context "and the amendment has no votes" do
it "withdraws the amendment" do
expect { command.call }.to broadcast(:ok)
expect(amendment.state).to eq("withdrawn")
@@ -12,7 +12,7 @@
end
end
- context "and the amendment has some supports" do
+ context "and the amendment has some votes" do
before do
emendation.votes.create!(author: other_user)
end
diff --git a/decidim-dev/lib/decidim/dev/assets/assemblies.json b/decidim-dev/lib/decidim/dev/assets/assemblies.json
index d444526bc9b6a..207523c4be67b 100644
--- a/decidim-dev/lib/decidim/dev/assets/assemblies.json
+++ b/decidim-dev/lib/decidim/dev/assets/assemblies.json
@@ -509,7 +509,7 @@
"proposal_length": 500,
"proposal_edit_before_minutes": 5,
"threshold_per_proposal": 0,
- "can_accumulate_supports_beyond_threshold": false,
+ "can_accumulate_votes_beyond_threshold": false,
"proposal_answering_enabled": true,
"official_proposals_enabled": true,
"comments_enabled": true,
diff --git a/decidim-participatory_processes/app/queries/decidim/participatory_processes/stats_participants_count.rb b/decidim-participatory_processes/app/queries/decidim/participatory_processes/stats_participants_count.rb
index b19749e13dd7e..ab97796bf3e54 100644
--- a/decidim-participatory_processes/app/queries/decidim/participatory_processes/stats_participants_count.rb
+++ b/decidim-participatory_processes/app/queries/decidim/participatory_processes/stats_participants_count.rb
@@ -22,9 +22,9 @@ def query
debates_query,
meetings_query,
endorsements_query,
- project_supports_query,
+ project_votes_query,
proposals_query,
- proposal_supports_query,
+ proposal_votes_query,
survey_answer_query
].flatten.uniq.count
end
@@ -93,7 +93,7 @@ def proposals_query
.uniq
end
- def proposal_supports_query
+ def proposal_votes_query
return [] unless Decidim.module_installed?(:proposals)
Decidim::Proposals::ProposalVote
@@ -105,7 +105,7 @@ def proposal_supports_query
.uniq
end
- def project_supports_query
+ def project_votes_query
return [] unless Decidim.module_installed?(:budgets)
Decidim::Budgets::Order.joins(budget: [:component])
diff --git a/decidim-proposals/app/commands/decidim/proposals/vote_proposal.rb b/decidim-proposals/app/commands/decidim/proposals/vote_proposal.rb
index 4f9d2ee0a1957..673707ae11be5 100644
--- a/decidim-proposals/app/commands/decidim/proposals/vote_proposal.rb
+++ b/decidim-proposals/app/commands/decidim/proposals/vote_proposal.rb
@@ -20,7 +20,7 @@ def initialize(proposal, current_user)
#
# Returns nothing.
def call
- return broadcast(:invalid) if @proposal.maximum_votes_reached? && !@proposal.can_accumulate_supports_beyond_threshold
+ return broadcast(:invalid) if @proposal.maximum_votes_reached? && !@proposal.can_accumulate_votes_beyond_threshold
build_proposal_vote
return broadcast(:invalid) unless vote.valid?
diff --git a/decidim-proposals/app/commands/decidim/proposals/withdraw_proposal.rb b/decidim-proposals/app/commands/decidim/proposals/withdraw_proposal.rb
index 2ccf9d2a69cb5..479a976919c61 100644
--- a/decidim-proposals/app/commands/decidim/proposals/withdraw_proposal.rb
+++ b/decidim-proposals/app/commands/decidim/proposals/withdraw_proposal.rb
@@ -16,11 +16,11 @@ def initialize(proposal, current_user)
# Executes the command. Broadcasts these events:
#
# - :ok when everything is valid, together with the proposal.
- # - :has_supports if the proposal already has supports or does not belong to current user.
+ # - :has_votes if the proposal already has votes or does not belong to current user.
#
# Returns nothing.
def call
- return broadcast(:has_supports) if @proposal.votes.any?
+ return broadcast(:has_votes) if @proposal.votes.any?
transaction do
@proposal.withdraw!
diff --git a/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb b/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb
index 7518efa8aa3ba..fd50675d8d021 100644
--- a/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb
+++ b/decidim-proposals/app/controllers/decidim/proposals/proposals_controller.rb
@@ -188,8 +188,8 @@ def withdraw
flash[:notice] = I18n.t("proposals.update.success", scope: "decidim")
redirect_to Decidim::ResourceLocatorPresenter.new(@proposal).path
end
- on(:has_supports) do
- flash[:alert] = I18n.t("proposals.withdraw.errors.has_supports", scope: "decidim")
+ on(:has_votes) do
+ flash[:alert] = I18n.t("proposals.withdraw.errors.has_votes", scope: "decidim")
redirect_to Decidim::ResourceLocatorPresenter.new(@proposal).path
end
end
diff --git a/decidim-proposals/app/forms/decidim/proposals/admin/proposals_fork_form.rb b/decidim-proposals/app/forms/decidim/proposals/admin/proposals_fork_form.rb
index 5c7c04962fee9..d17479ef10924 100644
--- a/decidim-proposals/app/forms/decidim/proposals/admin/proposals_fork_form.rb
+++ b/decidim-proposals/app/forms/decidim/proposals/admin/proposals_fork_form.rb
@@ -39,7 +39,7 @@ def mergeable_to_same_component
proposals.each do |proposal|
errors_set << :not_official unless proposal.official?
- errors_set << :supported if proposal.votes.any? || proposal.endorsements.any?
+ errors_set << :voted if proposal.votes.any? || proposal.endorsements.any?
end
errors_set.each { |error| errors.add(:base, error) } if errors_set.any?
diff --git a/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb b/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb
index 9ab1b045c328a..c9cfacf252e8e 100644
--- a/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb
+++ b/decidim-proposals/app/helpers/decidim/proposals/application_helper.rb
@@ -150,7 +150,7 @@ def show_voting_rules?
return true if vote_limit_enabled?
return true if threshold_per_proposal_enabled?
return true if proposal_limit_enabled?
- return true if can_accumulate_supports_beyond_threshold?
+ return true if can_accumulate_votes_beyond_threshold?
return true if minimum_votes_per_user_enabled?
end
diff --git a/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb b/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb
index 73ad73f405963..ba76bd972d455 100644
--- a/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb
+++ b/decidim-proposals/app/helpers/decidim/proposals/proposal_votes_helper.rb
@@ -39,8 +39,8 @@ def threshold_per_proposal
# Public: Checks if can accumulate more than maximum is enabled
#
# Returns true if enabled, false otherwise.
- def can_accumulate_supports_beyond_threshold?
- component_settings.can_accumulate_supports_beyond_threshold
+ def can_accumulate_votes_beyond_threshold?
+ component_settings.can_accumulate_votes_beyond_threshold
end
# Public: Checks if voting is enabled in this step.
diff --git a/decidim-proposals/app/models/decidim/proposals/proposal.rb b/decidim-proposals/app/models/decidim/proposals/proposal.rb
index a2cb7e9c7218d..df5d12f7453f2 100644
--- a/decidim-proposals/app/models/decidim/proposals/proposal.rb
+++ b/decidim-proposals/app/models/decidim/proposals/proposal.rb
@@ -355,8 +355,8 @@ def maximum_votes_reached?
# Public: Can accumulate more votes than maximum for this proposal.
#
# Returns true if can accumulate, false otherwise
- def can_accumulate_supports_beyond_threshold
- component.settings.can_accumulate_supports_beyond_threshold
+ def can_accumulate_votes_beyond_threshold
+ component.settings.can_accumulate_votes_beyond_threshold
end
# Checks whether the user can edit the given proposal.
diff --git a/decidim-proposals/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb b/decidim-proposals/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb
index 49df64cef4b48..83d0e26a5407c 100644
--- a/decidim-proposals/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb
+++ b/decidim-proposals/app/queries/decidim/proposals/metrics/proposal_participants_metric_measure.rb
@@ -5,7 +5,7 @@ module Proposals
module Metrics
# Searches for Participants in the following actions
# - Create a proposal (Proposals)
- # - Give support to a proposal (Proposals)
+ # - Vote to a proposal (Proposals)
# - Endorse (Proposals)
class ProposalParticipantsMetricMeasure < Decidim::MetricMeasure
def valid?
diff --git a/decidim-proposals/app/views/decidim/proposals/admin/proposals/show.html.erb b/decidim-proposals/app/views/decidim/proposals/admin/proposals/show.html.erb
index 2ae1c8c6d1e50..66c3e64c18b41 100644
--- a/decidim-proposals/app/views/decidim/proposals/admin/proposals/show.html.erb
+++ b/decidim-proposals/app/views/decidim/proposals/admin/proposals/show.html.erb
@@ -111,7 +111,7 @@
<% end %>
<% end %>
<% if minimum_votes_per_user_enabled? %>
@@ -24,7 +24,7 @@
<% if votes_given >= minimum_votes_per_user %>
<%= t(".minimum_votes_per_user.given_enough_votes") %>
<% else %>
- <%= t(".minimum_votes_per_user.supports_remaining", remaining_votes: minimum_votes_per_user - votes_given) %>
+ <%= t(".minimum_votes_per_user.votes_remaining", remaining_votes: minimum_votes_per_user - votes_given) %>
<% end %>
<% end %>
diff --git a/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb b/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb
index f39e59de6fe64..e9527ab93316a 100644
--- a/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb
+++ b/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb
@@ -33,7 +33,7 @@
<%= decidim_html_escape(present(proposal).title) %>
<% end %>
<% else %>
- <% if proposal.maximum_votes_reached? && !proposal.can_accumulate_supports_beyond_threshold && current_component.participatory_space.can_participate?(current_user) %>
+ <% if proposal.maximum_votes_reached? && !proposal.can_accumulate_votes_beyond_threshold && current_component.participatory_space.can_participate?(current_user) %>
<%= content_tag :span, t("decidim.proposals.proposals.vote_button.maximum_votes_reached"), class: "column button light button--sc disabled", disabled: true %>
<% else %>
<% if vote_limit_enabled? && remaining_votes_count_for(current_user) == 0 %>
diff --git a/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb b/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb
index 13cf233a69682..6641749bfca69 100644
--- a/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb
+++ b/decidim-proposals/app/views/decidim/proposals/proposals/participatory_texts/_proposal_votes_count.html.erb
@@ -17,7 +17,7 @@
<%= proposal.proposal_votes_count || 0 %>
<% else %>
- <% if proposal.maximum_votes_reached? && !proposal.can_accumulate_supports_beyond_threshold && current_component.participatory_space.can_participate?(current_user) %>
+ <% if proposal.maximum_votes_reached? && !proposal.can_accumulate_votes_beyond_threshold && current_component.participatory_space.can_participate?(current_user) %>
diff --git a/decidim-proposals/config/locales/en.yml b/decidim-proposals/config/locales/en.yml
index abc8f3ef09ed1..4c3d32cac16e5 100644
--- a/decidim-proposals/config/locales/en.yml
+++ b/decidim-proposals/config/locales/en.yml
@@ -75,12 +75,12 @@ en:
attributes:
base:
not_official: Are not official
- supported: Have received support or endorsements
+ voted: Have received votes or endorsements
proposals_split:
attributes:
base:
not_official: Are not official
- supported: Have received support or endorsements
+ voted: Have received votes or endorsements
models:
decidim/proposals/admin/update_proposal_category_event: Proposal category changed
decidim/proposals/admin/update_proposal_scope_event: Proposal scope changed
@@ -101,8 +101,8 @@ en:
one: Note
other: Notes
decidim/proposals/proposal_vote:
- one: Support
- other: Supports
+ one: Vote
+ other: Votes
decidim:
admin:
filters:
@@ -144,7 +144,7 @@ en:
comment: Comment
create: Create
endorse: Endorse
- vote: Support
+ vote: Vote
vote_comment: Vote comment
withdraw: Withdraw
name: Proposals
@@ -156,23 +156,23 @@ en:
announcement: Announcement
attachments_allowed: Allow attachments
attachments_allowed_help: By enabling this option, proposals will default to grid mode, and the first image will appear on the card.
- can_accumulate_supports_beyond_threshold: Can accumulate supports beyond threshold
+ can_accumulate_votes_beyond_threshold: Can accumulate votes beyond threshold
collaborative_drafts_enabled: Collaborative drafts enabled
comments_enabled: Comments enabled
comments_max_length: Comments max length (Leave 0 for default value)
default_sort_order: Default proposal sorting
- default_sort_order_help: Default means that if the supports are enabled, the proposals will be shown sorted by random, and if the supports are blocked, then they will be sorted by the most supported.
+ default_sort_order_help: Default means that if the votes are enabled, the proposals will be shown sorted by random, and if the votes are blocked, then they will be sorted by the most voted.
default_sort_order_options:
default: Default
most_commented: Most commented
most_endorsed: Most endorsed
most_followed: Most followed
- most_voted: Most supported
+ most_voted: Most voted
random: Random
recent: Recent
with_more_authors: With more authors
geocoding_enabled: Geocoding enabled
- minimum_votes_per_user: Minimum supports per user
+ minimum_votes_per_user: Minimum votes per user
new_proposal_body_template: New proposal body template
new_proposal_body_template_help: You can define prefilled text that the new Proposals will have
new_proposal_help_text: New proposal help text
@@ -193,7 +193,7 @@ en:
scope_id: Scope
scopes_enabled: Scopes enabled
threshold_per_proposal: Threshold per proposal
- vote_limit: Support limit per participant
+ vote_limit: Vote limit per participant
step:
amendment_creation_enabled: Amendment creation enabled
amendment_creation_enabled_help: Participant can amend proposals.
@@ -213,13 +213,13 @@ en:
creation_enabled: Participants can create proposals
creation_enabled_readonly: This setting is disabled when you activate the Participatory Texts functionality. To upload proposals as participatory text click on the Participatory Texts button and follow the instructions.
default_sort_order: Default proposal sorting
- default_sort_order_help: Default it means that if the supports are enabled, the proposals will be shown sorted by random, and if the supports are blocked, then they will be sorted by the most supported.
+ default_sort_order_help: Default it means that if the votes are enabled, the proposals will be shown sorted by random, and if the votes are blocked, then they will be sorted by the most voted.
default_sort_order_options:
default: Default
most_commented: Most commented
most_endorsed: Most endorsed
most_followed: Most followed
- most_voted: Most supported
+ most_voted: Most voted
random: Random
recent: Recent
with_more_authors: With more authors
@@ -229,9 +229,9 @@ en:
publish_answers_immediately: Publish proposal answers immediately
publish_answers_immediately_help_html: Mind that if you answer any proposal without this enabled, you will need to publish them manually by selecting them and using the action for publication. For more info on how this works, see proposals' answers documentation page.
suggested_hashtags: Hashtags suggested to participants for new proposals
- votes_blocked: Supports blocked
- votes_enabled: Supports enabled
- votes_hidden: Supports hidden (if supports are enabled, checking this will hide the number of supports)
+ votes_blocked: Votes blocked
+ votes_enabled: Votes enabled
+ votes_hidden: Votes hidden (if votes are enabled, checking this will hide the number of votes)
events:
proposals:
admin:
@@ -318,10 +318,10 @@ en:
email_subject: The %{resource_title} proposal scope has been updated
notification_title: The %{resource_title} proposal scope has been updated by an admin.
voting_enabled:
- email_intro: 'You can support proposals in %{participatory_space_title}! Start participating in this page:'
+ email_intro: 'You can vote proposals in %{participatory_space_title}! Start participating in this page:'
email_outro: You have received this notification because you are following %{participatory_space_title}. You can stop receiving notifications following the previous link.
- email_subject: Proposal support has started for %{participatory_space_title}
- notification_title: You can now start supporting proposals in %{participatory_space_title}
+ email_subject: Proposal voting has started for %{participatory_space_title}
+ notification_title: You can now start voting proposals in %{participatory_space_title}
gamification:
badges:
accepted_proposals:
@@ -338,14 +338,14 @@ en:
proposal_votes:
conditions:
- Browse and spend some time reading other people's proposals
- - Give support to the proposals you like or find interesting
- description: This badge is granted when you support other people's proposals.
- description_another: This participant has given support to %{score} proposals.
- description_own: You have given support to %{score} proposals.
- name: Proposal supports
- next_level_in: Give support to %{score} more proposals to reach the next level!
- unearned_another: This participant has not given support to any proposals yet.
- unearned_own: You have given support to no proposals yet.
+ - Vote to the proposals you like or find interesting
+ description: This badge is granted when you vote other people's proposals.
+ description_another: This participant has voted to %{score} proposals.
+ description_own: You have voted to %{score} proposals.
+ name: Proposal votes
+ next_level_in: Vote to %{score} more proposals to reach the next level!
+ unearned_another: This participant has not voted to any proposals yet.
+ unearned_own: You have voted to no proposals yet.
proposals:
conditions:
- Choose the participation space of your interest with submission for proposals enabled
@@ -371,9 +371,9 @@ en:
object: proposals
title: Proposals
votes:
- description: Number of supports to proposals
- object: supports
- title: Supports
+ description: Number of votes to proposals
+ object: votes
+ title: Votes
participatory_spaces:
highlighted_proposals:
last: Last proposals
@@ -556,7 +556,7 @@ en:
remove_assignment: Remove assignment
remove_assignment_confirmation: Are you sure you want to remove the valuator from this proposal?
valuators: Valuators
- votes_count: Supports count
+ votes_count: Votes count
update_category:
invalid: 'These proposals already had the %{subject_name} category: %{proposals}.'
select_a_category: Please select a category.
@@ -763,7 +763,7 @@ en:
comment: Comment
proposal_votes:
create:
- error: There was a problem supporting the proposal.
+ error: There was a problem voting the proposal.
proposals:
dynamic_map_instructions:
description: The coordinates will be updated when clicking on 'preview' button. However, the address does not change.
@@ -795,7 +795,7 @@ en:
search: Search
state: Status
type: Type
- voted: Supported
+ voted: Voted
index:
click_here: See all proposals
collaborative_drafts_list: Access collaborative drafts
@@ -816,7 +816,7 @@ en:
most_commented: Most commented
most_endorsed: Most endorsed
most_followed: Most followed
- most_voted: Most supported
+ most_voted: Most voted
random: Random
recent: Recent
with_more_authors: With more authors
@@ -854,37 +854,37 @@ en:
proposal_accepted_reason: 'This proposal has been accepted because:'
proposal_in_evaluation_reason: This proposal is being evaluated
proposal_rejected_reason: 'This proposal has been rejected because:'
- withdraw_btn_hint: You can withdraw your proposal if you change your mind, as long as you have not received any support. The proposal is not deleted, it will appear in the list of withdrawn proposals.
+ withdraw_btn_hint: You can withdraw your proposal if you change your mind, as long as you have not received any vote. The proposal is not deleted, it will appear in the list of withdrawn proposals.
withdraw_confirmation_html: Are you sure you want to withdraw this proposal?
This action cannot be cancelled!
withdraw_proposal: Withdraw proposal
update:
title: Update proposal
vote_button:
- already_voted: Already supported
- already_voted_hover: Withdraw support
- maximum_votes_reached: Support limit reached
- no_votes_remaining: No supports remaining
- vote: Support
- votes_blocked: Supports disabled
+ already_voted: Already voted
+ already_voted_hover: Withdraw vote
+ maximum_votes_reached: Vote limit reached
+ no_votes_remaining: No votes remaining
+ vote: Vote
+ votes_blocked: Voting disabled
votes_count:
count:
- one: Support
- other: Supports
+ one: Vote
+ other: Votes
voting_rules:
- can_accumulate_supports_beyond_threshold:
- description: Each proposal can accumulate more than %{limit} supports
+ can_accumulate_votes_beyond_threshold:
+ description: Each proposal can accumulate more than %{limit} votes
minimum_votes_per_user:
- description: You must distribute a minimum of %{votes} supports among different proposals.
- given_enough_votes: You have given enough supports.
- supports_remaining: You have to support %{remaining_votes} more proposals for your supports to be taken into account.
+ description: You must distribute a minimum of %{votes} votes among different proposals.
+ given_enough_votes: You have given enough votes.
+ votes_remaining: You have to vote %{remaining_votes} more proposals for your votes to be taken into account.
proposal_limit:
description: You can create up to %{limit} proposals.
threshold_per_proposal:
- description: In order to be validated proposals need to reach %{limit} supports.
- title: 'Supports are subject to the following rules:'
+ description: In order to be validated proposals need to reach %{limit} votes.
+ title: 'Votes are subject to the following rules:'
vote_limit:
- description: You can support up to %{limit} proposals.
- votes: Remaining %{number} supports
+ description: You can vote up to %{limit} proposals.
+ votes: Remaining %{number} votes
wizard_aside:
back: Back
back_from_step_1: Back to proposals
@@ -913,7 +913,7 @@ en:
title: Versions
withdraw:
errors:
- has_supports: This proposal cannot be withdrawn because it already has supports.
+ has_votes: This proposal cannot be withdrawn because it already has votes.
resource_links:
copied_from_component:
proposal_proposal: Related proposals
@@ -925,4 +925,4 @@ en:
statistics:
proposals_accepted: Accepted Proposals
proposals_count: Proposals
- supports_count: Supports
+ votes_count: Votes
diff --git a/decidim-proposals/lib/decidim/proposals/component.rb b/decidim-proposals/lib/decidim/proposals/component.rb
index 5c749b01da72c..05eb845f567ae 100644
--- a/decidim-proposals/lib/decidim/proposals/component.rb
+++ b/decidim-proposals/lib/decidim/proposals/component.rb
@@ -40,7 +40,7 @@
settings.attribute :proposal_edit_time, type: :enum, default: "limited", choices: -> { %w(limited infinite) }
settings.attribute :proposal_edit_before_minutes, type: :integer, default: 5, required: true
settings.attribute :threshold_per_proposal, type: :integer, default: 0, required: true
- settings.attribute :can_accumulate_supports_beyond_threshold, type: :boolean, default: false
+ settings.attribute :can_accumulate_votes_beyond_threshold, type: :boolean, default: false
settings.attribute :proposal_answering_enabled, type: :boolean, default: true
settings.attribute :default_sort_order, type: :select, default: "default", choices: -> { POSSIBLE_SORT_ORDERS }
settings.attribute :official_proposals_enabled, type: :boolean, default: true
@@ -111,7 +111,7 @@
Decidim::Proposals::FilteredProposals.for(components, start_at, end_at).accepted.not_hidden.count
end
- component.register_stat :supports_count, priority: Decidim::StatsRegistry::HIGH_PRIORITY do |components, start_at, end_at|
+ component.register_stat :votes_count, priority: Decidim::StatsRegistry::HIGH_PRIORITY do |components, start_at, end_at|
proposals = Decidim::Proposals::FilteredProposals.for(components, start_at, end_at).published.not_hidden
Decidim::Proposals::ProposalVote.where(proposal: proposals).count
end
diff --git a/decidim-proposals/lib/decidim/proposals/proposal_serializer.rb b/decidim-proposals/lib/decidim/proposals/proposal_serializer.rb
index fa7f40fb0c8a3..66da841ee2dfb 100644
--- a/decidim-proposals/lib/decidim/proposals/proposal_serializer.rb
+++ b/decidim-proposals/lib/decidim/proposals/proposal_serializer.rb
@@ -44,7 +44,7 @@ def serialize
reference: proposal.reference,
answer: ensure_translatable(proposal.answer),
answered_at: proposal.answered_at,
- supports: proposal.proposal_votes_count,
+ votes: proposal.proposal_votes_count,
endorsements: {
total_count: proposal.endorsements.size,
user_endorsements:
diff --git a/decidim-proposals/lib/decidim/proposals/test/factories.rb b/decidim-proposals/lib/decidim/proposals/test/factories.rb
index 3c8a84bd2b97b..d50b4b27acbb3 100644
--- a/decidim-proposals/lib/decidim/proposals/test/factories.rb
+++ b/decidim-proposals/lib/decidim/proposals/test/factories.rb
@@ -163,10 +163,10 @@ def generate_state_title(token, skip_injection: false)
end
end
- trait :with_can_accumulate_supports_beyond_threshold do
+ trait :with_can_accumulate_votes_beyond_threshold do
settings do
{
- can_accumulate_supports_beyond_threshold: true
+ can_accumulate_votes_beyond_threshold: true
}
end
end
diff --git a/decidim-proposals/spec/commands/decidim/proposals/vote_proposal_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/vote_proposal_spec.rb
index 7756b153c7275..6a25b8a70b7b9 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/vote_proposal_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/vote_proposal_spec.rb
@@ -53,7 +53,7 @@ module Proposals
context "when the threshold have been reached but proposal can accumulate more votes" do
before do
allow(proposal).to receive(:maximum_votes_reached?).and_return(true)
- allow(proposal).to receive(:can_accumulate_supports_beyond_threshold).and_return(true)
+ allow(proposal).to receive(:can_accumulate_votes_beyond_threshold).and_return(true)
end
it "creates a new vote for the proposal" do
diff --git a/decidim-proposals/spec/commands/decidim/proposals/withdraw_proposal_spec.rb b/decidim-proposals/spec/commands/decidim/proposals/withdraw_proposal_spec.rb
index b75b9ba64ec03..fbdddd3a1a5b9 100644
--- a/decidim-proposals/spec/commands/decidim/proposals/withdraw_proposal_spec.rb
+++ b/decidim-proposals/spec/commands/decidim/proposals/withdraw_proposal_spec.rb
@@ -15,7 +15,7 @@ module Proposals
let(:current_user) { proposal.creator_author }
let(:command) { described_class.new(proposal, current_user) }
- context "and the proposal has no supports" do
+ context "and the proposal has no votes" do
it "withdraws the proposal" do
expect do
expect { command.call }.to broadcast(:ok)
@@ -25,14 +25,14 @@ module Proposals
end
end
- context "and the proposal HAS some supports" do
+ context "and the proposal HAS some votes" do
before do
proposal.votes.create!(author: current_user)
end
it "is not able to withdraw the proposal" do
expect do
- expect { command.call }.to broadcast(:has_supports)
+ expect { command.call }.to broadcast(:has_votes)
end.not_to change(Decidim::Proposals::Proposal, :count)
expect(proposal).not_to be_withdrawn
expect(proposal.withdrawn_at).not_to be_present
diff --git a/decidim-proposals/spec/controllers/decidim/proposals/proposals_controller_spec.rb b/decidim-proposals/spec/controllers/decidim/proposals/proposals_controller_spec.rb
index b6d1f49dc7387..2d04045a4401e 100644
--- a/decidim-proposals/spec/controllers/decidim/proposals/proposals_controller_spec.rb
+++ b/decidim-proposals/spec/controllers/decidim/proposals/proposals_controller_spec.rb
@@ -242,13 +242,13 @@ module Proposals
expect(proposal).to be_withdrawn
end
- context "and the proposal already has supports" do
+ context "and the proposal already has votes" do
let(:proposal) { create(:proposal, :with_votes, component:, users: [user]) }
it "is not able to withdraw the proposal" do
put :withdraw, params: params.merge(id: proposal.id)
- expect(flash[:alert]).to eq("This proposal cannot be withdrawn because it already has supports.")
+ expect(flash[:alert]).to eq("This proposal cannot be withdrawn because it already has votes.")
expect(response).to have_http_status(:found)
proposal.reload
expect(proposal).not_to be_withdrawn
@@ -260,7 +260,7 @@ module Proposals
let(:current_user) { create(:user, :confirmed, organization: component.organization) }
let(:proposal) { create(:proposal, component:, users: [current_user]) }
- context "and the proposal has no supports" do
+ context "and the proposal has no votes" do
it "is not able to withdraw the proposal" do
expect(WithdrawProposal).not_to receive(:call)
diff --git a/decidim-proposals/spec/events/decidim/proposals/voting_enabled_event_spec.rb b/decidim-proposals/spec/events/decidim/proposals/voting_enabled_event_spec.rb
index 8684308b6ee80..fc6bb2f08ebd6 100644
--- a/decidim-proposals/spec/events/decidim/proposals/voting_enabled_event_spec.rb
+++ b/decidim-proposals/spec/events/decidim/proposals/voting_enabled_event_spec.rb
@@ -10,10 +10,10 @@ module Proposals
include_context "when a simple event"
let(:event_name) { "decidim.events.proposals.voting_enabled" }
- let(:email_subject) { "Proposal support has started for #{participatory_space_title}" }
- let(:email_intro) { "You can support proposals in #{participatory_space_title}! Start participating in this page:" }
+ let(:email_subject) { "Proposal voting has started for #{participatory_space_title}" }
+ let(:email_intro) { "You can vote proposals in #{participatory_space_title}! Start participating in this page:" }
let(:email_outro) { "You have received this notification because you are following #{participatory_space_title}. You can stop receiving notifications following the previous link." }
- let(:notification_title) { "You can now start supporting proposals in #{participatory_space_title}" }
+ let(:notification_title) { "You can now start voting proposals in #{participatory_space_title}" }
let(:resource) { create(:proposal_component) }
let(:participatory_space) { resource.participatory_space }
let(:resource_path) { main_component_path(resource) }
diff --git a/decidim-proposals/spec/lib/decidim/proposals/component_spec.rb b/decidim-proposals/spec/lib/decidim/proposals/component_spec.rb
index 3660e457e1b93..937d99f74db49 100644
--- a/decidim-proposals/spec/lib/decidim/proposals/component_spec.rb
+++ b/decidim-proposals/spec/lib/decidim/proposals/component_spec.rb
@@ -76,8 +76,8 @@
end
end
- describe "supports_count" do
- let(:stats_name) { :supports_count }
+ describe "votes_count" do
+ let(:stats_name) { :votes_count }
before do
create_list(:proposal_vote, 2, proposal:)
@@ -137,11 +137,11 @@
it_behaves_like "has mandatory config setting", :proposal_limit
end
- context "when support limit per participant is empty" do
+ context "when vote limit per participant is empty" do
it_behaves_like "has mandatory config setting", :vote_limit
end
- context "when minimum supports per user is empty" do
+ context "when minimum votes per user is empty" do
it_behaves_like "has mandatory config setting", :minimum_votes_per_user
end
diff --git a/decidim-proposals/spec/services/decidim/proposals/proposal_serializer_spec.rb b/decidim-proposals/spec/services/decidim/proposals/proposal_serializer_spec.rb
index 82d05868b5a24..2fcd2954efc67 100644
--- a/decidim-proposals/spec/services/decidim/proposals/proposal_serializer_spec.rb
+++ b/decidim-proposals/spec/services/decidim/proposals/proposal_serializer_spec.rb
@@ -157,8 +157,8 @@ module Proposals
expect(serialized).to include(longitude: proposal.longitude)
end
- it "serializes the amount of supports" do
- expect(serialized).to include(supports: proposal.proposal_votes_count)
+ it "serializes the amount of votes" do
+ expect(serialized).to include(votes: proposal.proposal_votes_count)
end
it "serializes the amount of comments" do
diff --git a/decidim-proposals/spec/shared/merge_proposals_examples.rb b/decidim-proposals/spec/shared/merge_proposals_examples.rb
index e3969101b150d..d8885733a1c1e 100644
--- a/decidim-proposals/spec/shared/merge_proposals_examples.rb
+++ b/decidim-proposals/spec/shared/merge_proposals_examples.rb
@@ -75,7 +75,7 @@
expect(page).to have_css(".table-list tbody tr", count: 3)
expect(page).to have_content("There has been a problem merging the selected proposals")
expect(page).to have_content("Are not official")
- expect(page).to have_content("Have received support or endorsements")
+ expect(page).to have_content("Have received votes or endorsements")
end
end
diff --git a/decidim-proposals/spec/shared/split_proposals_examples.rb b/decidim-proposals/spec/shared/split_proposals_examples.rb
index 0ef043a751bbb..9591d65cc3046 100644
--- a/decidim-proposals/spec/shared/split_proposals_examples.rb
+++ b/decidim-proposals/spec/shared/split_proposals_examples.rb
@@ -60,7 +60,7 @@
it "does not create a new proposal and displays a validation fail message" do
expect(page).to have_content("There has been a problem splitting the selected proposals")
expect(page).to have_content("Are not official")
- expect(page).to have_content("Have received support or endorsements")
+ expect(page).to have_content("Have received votes or endorsements")
end
end
end
diff --git a/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb b/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb
index 2b9177f0cfab9..ee86dd2098019 100644
--- a/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb
+++ b/decidim-proposals/spec/system/admin/view_proposal_details_from_admin_spec.rb
@@ -92,23 +92,23 @@
end
end
- describe "with supports" do
+ describe "with votes" do
before do
create_list(:proposal_vote, 2, proposal:)
end
- it "shows the number of supports" do
+ it "shows the number of votes" do
go_to_admin_proposal_page(proposal)
- expect(page).to have_css("[data-supports] [data-count]", text: "2")
+ expect(page).to have_css("[data-votes] [data-count]", text: "2")
end
- it "shows the ranking by supports" do
+ it "shows the ranking by votes" do
another_proposal = create(:proposal, component:)
create(:proposal_vote, proposal: another_proposal)
go_to_admin_proposal_page(proposal)
- expect(page).to have_css("[data-supports] [data-ranking]", text: "1 of ")
+ expect(page).to have_css("[data-votes] [data-ranking]", text: "1 of ")
end
end
diff --git a/decidim-proposals/spec/system/filter_proposals_spec.rb b/decidim-proposals/spec/system/filter_proposals_spec.rb
index bcc1daf8bcd86..24e8a2cd8b7e9 100644
--- a/decidim-proposals/spec/system/filter_proposals_spec.rb
+++ b/decidim-proposals/spec/system/filter_proposals_spec.rb
@@ -463,9 +463,9 @@
visit_component
end
- it "can be filtered by supported" do
+ it "can be filtered by voted" do
within "form.new_filter" do
- expect(page).to have_content(/Supported/i)
+ expect(page).to have_content(/Voted/i)
end
end
@@ -484,9 +484,9 @@
visit_component
end
- it "cannot be filtered by supported" do
+ it "cannot be filtered by voted" do
within "form.new_filter" do
- expect(page).to have_no_content(/Supported/i)
+ expect(page).to have_no_content(/Voted/i)
end
end
end
diff --git a/decidim-proposals/spec/system/proposals_spec.rb b/decidim-proposals/spec/system/proposals_spec.rb
index bed24c1413ab0..bdc13915dbc5d 100644
--- a/decidim-proposals/spec/system/proposals_spec.rb
+++ b/decidim-proposals/spec/system/proposals_spec.rb
@@ -469,7 +469,7 @@
before { visit_component }
it "lists the proposals ordered by votes by default" do
- expect(page).to have_css("a", text: "Most supported")
+ expect(page).to have_css("a", text: "Most voted")
expect(page).to have_css("[id^='proposals__proposal']:first-child", text: most_voted_proposal_title)
expect(page).to have_css("[id^='proposals__proposal']:last-child", text: less_voted_proposal_title)
end
@@ -544,7 +544,7 @@
let!(:votes) { create_list(:proposal_vote, 3, proposal: most_voted_proposal) }
let!(:less_voted_proposal) { create(:proposal, component:) }
- it_behaves_like "ordering proposals by selected option", "Most supported" do
+ it_behaves_like "ordering proposals by selected option", "Most voted" do
let(:first_proposal) { most_voted_proposal }
let(:last_proposal) { less_voted_proposal }
end
diff --git a/decidim-proposals/spec/system/vote_proposal_spec.rb b/decidim-proposals/spec/system/vote_proposal_spec.rb
index f513b1c25a673..79d32805b3ca9 100644
--- a/decidim-proposals/spec/system/vote_proposal_spec.rb
+++ b/decidim-proposals/spec/system/vote_proposal_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-describe "Support Proposal", slow: true do
+describe "Vote Proposal", slow: true do
include_context "with a component"
let(:manifest_name) { "proposals" }
@@ -13,8 +13,8 @@
let!(:user) { create(:user, :confirmed, organization:) }
def expect_page_not_to_include_votes
- expect(page).to have_no_button("Support")
- expect(page).to have_no_css(".progress-bar__container .progress-bar__number span", text: "0\nSupports")
+ expect(page).to have_no_button("Vote")
+ expect(page).to have_no_css(".progress-bar__container .progress-bar__number span", text: "0\nVotes")
end
context "when votes are not enabled" do
@@ -71,7 +71,7 @@ def expect_page_not_to_include_votes
click_on proposal_title
within ".proposal__aside-vote" do
- click_on "Support"
+ click_on "Vote"
end
expect(page).to have_css("#loginModal", visible: :visible)
@@ -91,12 +91,12 @@ def expect_page_not_to_include_votes
it "is able to vote the proposal" do
within "#proposal-#{proposal.id}-vote-button" do
- click_on "Support"
- expect(page).to have_button("Already supported")
+ click_on "Vote"
+ expect(page).to have_button("Already voted")
end
within "#proposal-#{proposal.id}-votes-count" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
end
end
@@ -110,23 +110,23 @@ def expect_page_not_to_include_votes
it "is not able to vote it again" do
within "#proposal-#{proposal.id}-vote-button" do
- expect(page).to have_button("Already supported")
- expect(page).to have_no_button("Support")
+ expect(page).to have_button("Already voted")
+ expect(page).to have_no_button("Vote")
end
within "#proposal-#{proposal.id}-votes-count" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
end
it "is able to undo the vote" do
within "#proposal-#{proposal.id}-vote-button" do
- click_on "Already supported"
- expect(page).to have_button("Support")
+ click_on "Already voted"
+ expect(page).to have_button("Vote")
end
within "#proposal-#{proposal.id}-votes-count" do
- expect(page).to have_content("0\nSupports")
+ expect(page).to have_content("0\nVotes")
end
end
end
@@ -225,11 +225,11 @@ def expect_page_not_to_include_votes
it "updates the remaining votes counter" do
within ".proposal__aside-vote" do
- click_on "Support"
- expect(page).to have_button("Already supported")
+ click_on "Vote"
+ expect(page).to have_button("Already voted")
end
- expect(page).to have_content("Remaining 9 supports")
+ expect(page).to have_content("Remaining 9 votes")
end
end
@@ -250,7 +250,7 @@ def expect_page_not_to_include_votes
it "shows a modal dialog" do
within "#proposal-#{proposal.id}-vote-button" do
- click_on "Support"
+ click_on "Vote"
end
expect(page).to have_content("Authorization required")
@@ -266,22 +266,22 @@ def expect_page_not_to_include_votes
it "is not able to vote it again" do
within "#proposal-#{proposal.id}-vote-button" do
- expect(page).to have_button("Already supported")
- expect(page).to have_no_button("Support")
+ expect(page).to have_button("Already voted")
+ expect(page).to have_no_button("Vote")
end
end
it "is able to undo the vote" do
within ".proposal__aside-vote" do
- click_on "Already supported"
- expect(page).to have_button("Support")
+ click_on "Already voted"
+ expect(page).to have_button("Vote")
end
within "#proposal-#{proposal.id}-votes-count" do
- expect(page).to have_content("0\nSupports")
+ expect(page).to have_content("0\nVotes")
end
- expect(page).to have_content("Remaining 10 supports")
+ expect(page).to have_content("Remaining 10 votes")
end
end
@@ -296,14 +296,14 @@ def expect_page_not_to_include_votes
it "is not able to vote other proposals" do
click_on proposal_title
within ".proposal__aside-vote" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
other_proposals_titles.each do |title|
visit_component
click_on title
within ".proposal__aside-vote" do
- expect(page).to have_content("No supports remaining")
+ expect(page).to have_content("No votes remaining")
expect(page).to have_css(".button[disabled]")
end
end
@@ -320,14 +320,14 @@ def expect_page_not_to_include_votes
it "shows the vote count but not the vote button" do
click_on proposal_title
within ".proposal__aside-vote" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
other_proposals_titles.each do |title|
visit_component
click_on title
within ".proposal__aside-vote" do
- expect(page).to have_content("Supports disabled")
+ expect(page).to have_content("Voting disabled")
expect(page).to have_css(".button[disabled]")
end
end
@@ -380,7 +380,7 @@ def expect_page_not_to_include_votes
click_on proposal_title
within "#proposal-#{proposal.id}-vote-button" do
- expect(page).to have_content("Support limit reached")
+ expect(page).to have_content("Vote limit reached")
end
end
@@ -389,8 +389,8 @@ def expect_page_not_to_include_votes
click_on proposal_title
within ".proposal__aside-vote" do
- click_on "Support"
- expect(page).to have_content("Already supported")
+ click_on "Vote"
+ expect(page).to have_content("Already voted")
end
end
end
@@ -400,7 +400,7 @@ def expect_page_not_to_include_votes
create(:proposal_component,
:with_votes_enabled,
:with_threshold_per_proposal,
- :with_can_accumulate_supports_beyond_threshold,
+ :with_can_accumulate_votes_beyond_threshold,
manifest:,
participatory_space: participatory_process)
end
@@ -415,7 +415,7 @@ def expect_page_not_to_include_votes
click_on proposal_title
within ".proposal__aside-vote" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
end
end
@@ -444,37 +444,37 @@ def expect_page_not_to_include_votes
click_on proposal_titles[0]
within ".proposal__aside-vote" do
- click_on "Support"
- expect(page).to have_content("Already supported")
- expect(page).to have_content("0\nSupports")
+ click_on "Vote"
+ expect(page).to have_content("Already voted")
+ expect(page).to have_content("0\nVotes")
end
visit_component
click_on proposal_titles[1]
within ".proposal__aside-vote" do
- click_on "Support"
- expect(page).to have_content("Already supported")
- expect(page).to have_content("0\nSupports")
+ click_on "Vote"
+ expect(page).to have_content("Already voted")
+ expect(page).to have_content("0\nVotes")
end
visit_component
click_on proposal_titles[2]
within ".proposal__aside-vote" do
- click_on "Support"
- expect(page).to have_content("Already supported")
- expect(page).to have_content("1\nSupport")
+ click_on "Vote"
+ expect(page).to have_content("Already voted")
+ expect(page).to have_content("1\nVote")
end
visit_component
click_on proposal_titles[0]
within ".proposal__aside-vote" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
visit_component
click_on proposal_titles[1]
within ".proposal__aside-vote" do
- expect(page).to have_content("1\nSupport")
+ expect(page).to have_content("1\nVote")
end
end
end
@@ -490,8 +490,8 @@ def expect_page_not_to_include_votes
expect do
within ".proposal__aside-vote" do
- click_on "Support"
- expect(page).to have_content("1\nSupport")
+ click_on "Vote"
+ expect(page).to have_content("1\nVote")
end
end.to change { Decidim::Gamification.status_for(user, :proposal_votes).score }.by(1)
end
diff --git a/decidim-verifications/README.md b/decidim-verifications/README.md
index 0bffc455f4637..92b1d782f9944 100644
--- a/decidim-verifications/README.md
+++ b/decidim-verifications/README.md
@@ -186,7 +186,7 @@ set in the admin zone related to a component action. As a result, a verification
method will be allowed to change the authorization logic and the appearance based
on the context where the authorization is being performed.
-For example, you can require authorization for supporting proposals in a participatory
+For example, you can require authorization for voting proposals in a participatory
process, and also restrict it to users with postal codes 12345 and 12346. The
[example authorization handler](https://github.com/decidim/decidim/blob/develop/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
included in this module allows to do that. As an admin user, you should visit