This is consistent with the way we've got partials to render debates, proposals and legislation processes on their index pages. Note that, while adding the tests for the status icon, we're keeping one system test because it also tests the process of voting. We're adding a new, similar component test, where the voter is created in the database, so all possible statuses are tested in the component.
33 lines
838 B
Ruby
33 lines
838 B
Ruby
module PollsHelper
|
|
def booth_name_with_location(booth)
|
|
location = booth.location.blank? ? "" : " (#{booth.location})"
|
|
booth.name + location
|
|
end
|
|
|
|
def link_to_poll(text, poll, options = {})
|
|
if can?(:results, poll)
|
|
link_to text, results_poll_path(id: poll.slug || poll.id), options
|
|
elsif can?(:stats, poll)
|
|
link_to text, stats_poll_path(id: poll.slug || poll.id), options
|
|
else
|
|
link_to text, poll_path(id: poll.slug || poll.id), options
|
|
end
|
|
end
|
|
|
|
def results_menu?
|
|
controller_name == "polls" && action_name == "results"
|
|
end
|
|
|
|
def stats_menu?
|
|
controller_name == "polls" && action_name == "stats"
|
|
end
|
|
|
|
def info_menu?
|
|
controller_name == "polls" && action_name == "show"
|
|
end
|
|
|
|
def show_polls_description?
|
|
@active_poll.present? && @current_filter == "current"
|
|
end
|
|
end
|