/treemenus/templatetags/tree_menu_tags.py

http://github.com/plushcms/PlushCMS · Python · 42 lines · 27 code · 12 blank · 3 comment · 4 complexity · 6a60b89c4e3efaab453b2a3078f6f8fe MD5 · raw file

  1. # -*- coding: utf-8 -*-
  2. from django import template
  3. from django.template.defaulttags import url
  4. from django.template.defaulttags import URLNode
  5. from django.template import Node
  6. from plushcms.treemenus.models import Menu
  7. from plushcms.treemenus.models import MenuItem
  8. from plushcms.treemenus.config import APP_LABEL
  9. from django.template import TOKEN_BLOCK
  10. from django.template import Token
  11. register = template.Library()
  12. # 16.02.2011 - dodany try except
  13. def show_menu(context, menu_name, menu_type = None):
  14. try:
  15. menu = Menu.objects.get(name = menu_name)
  16. except:
  17. return None
  18. else:
  19. context["menu"] = menu
  20. if menu_type:
  21. context["menu_type"] = menu_type
  22. return context
  23. register.inclusion_tag("%s/menu.html" % APP_LABEL, takes_context = True)(show_menu)
  24. def show_menu_item(context, menu_item):
  25. if not isinstance(menu_item, MenuItem):
  26. raise template.TemplateSyntaxError, "Podany argument musi być obiektem MenuItem."
  27. context["menu_item"] = menu_item
  28. return context
  29. register.inclusion_tag("%s/menu_item.html" % APP_LABEL, takes_context = True)(show_menu_item)
  30. # 06.03.2011 - usunięto ReverseNamedURLNode, reverse_named_ulr i jego rejestracja