Skip to content
Snippets Groups Projects
Commit b4a12c32 authored by pabois's avatar pabois
Browse files

update

parent ea025c62
No related branches found
No related tags found
No related merge requests found
......@@ -63,9 +63,9 @@ module Communication::Website::WithMenus
def initialize_menus
# default_language menu has to be created first, to be a reference for other languages
find_or_create_menus_for_language(default_language)
create_default_menus(default_language)
languages_except_default.each do |language|
find_or_create_menus_for_language(language)
create_default_menus(language)
end
languages.each do |language|
generate_automatic_menus(language)
......@@ -80,27 +80,38 @@ module Communication::Website::WithMenus
protected
def find_or_create_menus_for_language(language)
find_or_create_menu 'primary', language
find_or_create_menu 'social', language
find_or_create_menu 'legal', language
end
def find_or_create_menu(identifier, language)
menu = menus_for_language(identifier, language).first_or_initialize do |menu|
menu.title = I18n.t("communication.website.menus.default_title.#{identifier}", locale: language.iso_code)
menu.original_id = original_menu(identifier).id if language.id != default_language_id
def create_default_menus(language)
create_default_menu 'primary', language
create_default_menu 'social', language
create_default_menu 'legal', language
end
def create_default_menu(identifier, language)
menus.where(
university: university,
identifier: identifier,
language: language
)
.first_or_create do |menu|
menu.title = menu_title(identifier, language)
menu.original_id = menu_original_id(identifier, language)
end
menu.save unless menu.persisted?
end
def menus_for_language(identifier, language)
# university is needed for the initialize part
menus.where(university: university, identifier: identifier, language: language)
def menu_title(identifier, language)
I18n.t(
"communication.website.menus.default_title.#{identifier}",
locale: language.iso_code
)
end
def original_menu(identifier)
menus_for_language(identifier, default_language).first
def menu_original_id(identifier, language)
return nil if language.id == default_language_id
menus.where(
identifier: identifier,
language_id: default_language_id
)
.first.id
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment