We were manually adding the attribute in many places, but not everywhere. I'm assuming adding it where we didn't have it is doing no harm.
114 lines
2.9 KiB
Ruby
114 lines
2.9 KiB
Ruby
module ProposalsHelper
|
|
|
|
def progress_bar_percentage(proposal)
|
|
case proposal.cached_votes_up
|
|
when 0 then 0
|
|
when 1..Proposal.votes_needed_for_success then (proposal.total_votes.to_f * 100 / Proposal.votes_needed_for_success).floor
|
|
else 100
|
|
end
|
|
end
|
|
|
|
def supports_percentage(proposal)
|
|
percentage = (proposal.total_votes.to_f * 100 / Proposal.votes_needed_for_success)
|
|
case percentage
|
|
when 0 then "0%"
|
|
when 0..0.1 then "0.1%"
|
|
when 0.1..100 then number_to_percentage(percentage, strip_insignificant_zeros: true, precision: 1)
|
|
else "100%"
|
|
end
|
|
end
|
|
|
|
def namespaced_proposal_path(proposal, options = {})
|
|
@namespace_proposal_path ||= namespace
|
|
case @namespace_proposal_path
|
|
when "management"
|
|
management_proposal_path(proposal, options)
|
|
else
|
|
proposal_path(proposal, options)
|
|
end
|
|
end
|
|
|
|
def retire_proposals_options
|
|
Proposal::RETIRE_OPTIONS.collect { |option| [t("proposals.retire_options.#{option}"), option] }
|
|
end
|
|
|
|
def empty_recommended_proposals_message_text(user)
|
|
if user.interests.any?
|
|
t("proposals.index.recommendations.without_results")
|
|
else
|
|
t("proposals.index.recommendations.without_interests")
|
|
end
|
|
end
|
|
|
|
def author_of_proposal?(proposal)
|
|
author_of?(proposal, current_user)
|
|
end
|
|
|
|
def current_editable?(proposal)
|
|
current_user && proposal.editable_by?(current_user)
|
|
end
|
|
|
|
def proposals_minimal_view_path
|
|
proposals_path(view: proposals_secondary_view)
|
|
end
|
|
|
|
def proposals_default_view?
|
|
@view == "default"
|
|
end
|
|
|
|
def proposals_current_view
|
|
@view
|
|
end
|
|
|
|
def proposals_secondary_view
|
|
proposals_current_view == "default" ? "minimal" : "default"
|
|
end
|
|
|
|
def link_to_toggle_proposal_selection(proposal)
|
|
if proposal.selected?
|
|
button_text = t("admin.proposals.index.selected")
|
|
html_class = "button expanded"
|
|
else
|
|
button_text = t("admin.proposals.index.select")
|
|
html_class = "button hollow expanded"
|
|
end
|
|
|
|
case proposal.class.to_s
|
|
when "Proposal"
|
|
path = toggle_selection_admin_proposal_path(proposal)
|
|
when "Legislation::Proposal"
|
|
path = toggle_selection_admin_legislation_process_proposal_path(proposal.process, proposal)
|
|
end
|
|
|
|
link_to button_text, path, remote: true, method: :patch, class: html_class
|
|
end
|
|
|
|
def css_for_proposal_info_row(proposal)
|
|
if proposal.image.present?
|
|
if params[:selected].present?
|
|
"small-12 medium-9 column"
|
|
else
|
|
"small-12 medium-6 large-7 column"
|
|
end
|
|
else
|
|
if params[:selected].present?
|
|
"small-12 column"
|
|
else
|
|
"small-12 medium-9 column"
|
|
end
|
|
end
|
|
end
|
|
|
|
def show_proposal_votes?
|
|
params[:selected].blank?
|
|
end
|
|
|
|
def show_featured_proposals?
|
|
params[:selected].blank? && @featured_proposals.present?
|
|
end
|
|
|
|
def show_recommended_proposals?
|
|
params[:selected].blank? && feature?("user.recommendations") && @recommended_proposals.present?
|
|
end
|
|
end
|