app/components/budgets/map_component.rb
class Budgets::MapComponent < ApplicationComponent
use_helpers :render_map
attr_reader :budget
def initialize(budget)
@budget = budget
end
def render?
feature?(:map) && !budget.informing?
end
private
def coordinates
if budget.publishing_prices_or_later? && budget.investments.selected.any?
investments = budget.investments.selected
else
investments = budget.investments
end
MapLocation.investments_json_data(investments)
end
def geozones_data
budget.geozones.map do |geozone|
{
outline_points: geozone.outline_points,
color: geozone.color,
headings: budget.headings.where(geozone: geozone).map do |heading|
link_to heading.name, budget_investments_path(budget, heading_id: heading.id)
end
}
end
end
end