menuitems.py 890 B

123456789101112131415161718192021222324252627282930313233
  1. from .cache import set_menus_cache, get_menus_cache
  2. from .models import MenuItem
  3. def get_navbar_menu_items(cache_versions):
  4. return get_items(cache_versions).get(MenuItem.MENU_NAVBAR)
  5. def get_footer_menu_items(cache_versions):
  6. return get_items(cache_versions).get(MenuItem.MENU_FOOTER)
  7. def get_items(cache_versions):
  8. items = get_menus_cache(cache_versions)
  9. if items is None:
  10. items = get_items_from_db()
  11. set_menus_cache(cache_versions, items)
  12. return items
  13. def get_items_from_db():
  14. return {
  15. MenuItem.MENU_NAVBAR: get_navbar_menu_items_from_db(),
  16. MenuItem.MENU_FOOTER: get_footer_menu_items_from_db(),
  17. }
  18. def get_navbar_menu_items_from_db():
  19. return MenuItem.objects.exclude(menu=MenuItem.MENU_FOOTER).values()
  20. def get_footer_menu_items_from_db():
  21. return MenuItem.objects.exclude(menu=MenuItem.MENU_NAVBAR).values()