module C80Push
module PageDealers
module PageDealersHelper
# Выдать список Дилеров (включая Офисы),
# разложенный по Регионам.
# Список выводится слева от карты.
# (**) Не выводим регионы, у которых нет дилеров.
#
# * Регион
# * Дилер
# * Офис 1
# * адрес офиса
# * телефон офиса
# * Офис 2
# * адрес офиса
# * телефон офиса
# * сайт дилера
# * email дилера
#
def render_ul_dealers_list
res = ''
Region.includes(dealers: :offices).each do |region|
r = "
#{region.title}
"
ds = ul_region_dealers(region)
next if ds.blank? # (**)
r += ds
res += "#{r}"
end
"".html_safe
end
private
# используется только в render_dealers_list
# (*) не выводим список дилеров, если он пуст
def ul_region_dealers(region)
res = ''
# noinspection RubyResolve
region.dealers.each do |dealer|
d = "#{dealer.title}
"
d += ul_dealer_offices(dealer)
res += "#{d}"
end
return res if res.blank? # (*)
""#.html_safe
end
# используется только в ul_region_dealers
def ul_dealer_offices(dealer)
res = ''
# noinspection RubyResolve
dealer.offices.each_with_index do |office|
o = "#{office.title}
"
o += ul_office_props(office)
res += "#{o}"
end
res += "#{dealer.email}"
res += "#{dealer.site}"
""#.html_safe
end
# используется только в ul_dealer_offices
def ul_office_props(office)
res = ''
res += "#{office.addr}"
res += "#{office.tel}"
""#.html_safe
end
end
end
end