We're going to make a change, and it's easier if we've already got a component with tests so we don't have to write system tests to check whether the map is rendered.
27 lines
550 B
Ruby
27 lines
550 B
Ruby
class Budgets::MapComponent < ApplicationComponent
|
|
delegate :render_map, to: :helpers
|
|
attr_reader :budget
|
|
|
|
def initialize(budget)
|
|
@budget = budget
|
|
end
|
|
|
|
def render?
|
|
!budget.informing?
|
|
end
|
|
|
|
private
|
|
|
|
def coordinates
|
|
return unless budget.present?
|
|
|
|
if budget.publishing_prices_or_later? && budget.investments.selected.any?
|
|
investments = budget.investments.selected
|
|
else
|
|
investments = budget.investments
|
|
end
|
|
|
|
MapLocation.where(investment_id: investments).map(&:json_data)
|
|
end
|
|
end
|