Files
nairobi/app/helpers/application_helper.rb
Julian Herrero 7e422f2187 Fix bug management print voted investments
If budget is in balloting phase and there are voted investments, it
was not possible to print budgets investments because the ballot was
never being loaded in the controller and therefore an error was raised
when rendering the view.

Failure/Error: <% if ballot.has_investment?(investment) %>

  ActionView::Template::Error:
    undefined method `has_investment?' for nil:NilClass
      app/views/budgets/investments/_ballot.html.erb:3
      app/views/budgets/investments/_investment.html.erb:88
      app/views/custom/management/budgets/investments/print.html.erb:26
2019-04-17 14:19:32 +02:00

71 lines
2.1 KiB
Ruby

module ApplicationHelper
def home_page?
return false if user_signed_in?
# Using path because fullpath yields false negatives since it contains
# parameters too
request.path == "/"
end
# if current path is /debates current_path_with_query_params(foo: "bar") returns /debates?foo=bar
# notice: if query_params have a param which also exist in current path, it "overrides" (query_params is merged last)
def current_path_with_query_params(query_parameters)
url_for(request.query_parameters.merge(query_parameters))
end
def markdown(text)
return text if text.blank?
# See https://github.com/vmg/redcarpet for options
render_options = {
filter_html: false,
hard_wrap: true,
link_attributes: { target: "_blank" }
}
renderer = Redcarpet::Render::HTML.new(render_options)
extensions = {
autolink: true,
fenced_code_blocks: true,
lax_spacing: true,
no_intra_emphasis: true,
strikethrough: true,
superscript: true
}
Redcarpet::Markdown.new(renderer, extensions).render(text).html_safe
end
def author_of?(authorable, user)
return false if authorable.blank? || user.blank?
authorable.author_id == user.id
end
def back_link_to(destination = :back, text = t("shared.back"))
link_to destination, class: "back" do
content_tag(:span, nil, class: "icon-angle-left") + text
end
end
def image_path_for(filename)
SiteCustomization::Image.image_path_for(filename) || filename
end
def content_block(name, locale)
SiteCustomization::ContentBlock.block_for(name, locale)
end
def kaminari_path(url)
"#{root_url.chomp("\/")}#{url}"
end
def render_custom_partial(partial_name)
controller_action = @virtual_path.split("/").last
custom_partial_path = "custom/#{@virtual_path.remove(controller_action)}#{partial_name}"
render custom_partial_path if lookup_context.exists?(custom_partial_path, [], true)
end
def management_controller?
controller.class.to_s.include?("Management")
end
end