diff --git a/app/models/communication/website/menu/item.rb b/app/models/communication/website/menu/item.rb index 59e88b4c343a399e044d25b59420e58e94692a73..f397cd49e6507600f5fa9c23334d68163789b672 100644 --- a/app/models/communication/website/menu/item.rb +++ b/app/models/communication/website/menu/item.rb @@ -32,6 +32,9 @@ # fk_rails_... (website_id => communication_websites.id) # class Communication::Website::Menu::Item < ApplicationRecord + KINDS_FOR_SCHOOL = ['programs', 'program', 'administrators', 'teachers'] + KINDS_FOR_JOURNAL = ['researchers', 'research_volumes', 'research_volume', 'research_articles', 'research_article'] + include WithTree include WithPosition @@ -72,6 +75,19 @@ class Communication::Website::Menu::Item < ApplicationRecord after_commit :sync_menu + def self.kinds_for_website(website) + whitelisted_kinds = self.kinds.dup + + KINDS_FOR_SCHOOL.each { |school_kind| + whitelisted_kinds.delete(school_kind) + } unless website.about_school? + KINDS_FOR_JOURNAL.each { |journal_kind| + whitelisted_kinds.delete(journal_kind) + } unless website.about_journal? + + whitelisted_kinds + end + def to_s "#{title}" end diff --git a/app/views/admin/communication/website/menu/items/_form.html.erb b/app/views/admin/communication/website/menu/items/_form.html.erb index 0e9e61ee6e563fee968cc1150fd0802e5785b929..1527fd04a5f7bd6fa7bf78c5c79de30551480546 100644 --- a/app/views/admin/communication/website/menu/items/_form.html.erb +++ b/app/views/admin/communication/website/menu/items/_form.html.erb @@ -9,6 +9,7 @@ <div class="card-body"> <%= f.input :title %> <%= f.input :kind, + collection: Communication::Website::Menu::Item.kinds_for_website(@website), include_blank: false, input_html: { class: 'js-kind-input',