diff --git a/djangocms_blog/cms_app.py b/djangocms_blog/cms_app.py index cefe215..fd9a38d 100644 --- a/djangocms_blog/cms_app.py +++ b/djangocms_blog/cms_app.py @@ -1,34 +1,10 @@ # -*- coding: utf-8 -*- from cms.app_base import CMSApp from cms.apphook_pool import apphook_pool -from cms.menu_bases import CMSAttachMenu -from menus.base import NavigationNode -from menus.menu_pool import menu_pool -from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _, get_language -from .models import BlogCategory +from .menu import BlogCategoryMenu -class BlogCategoryMenu(CMSAttachMenu): - name = _('Blog Category menu') - - def get_nodes(self, request): - nodes = [] - qs = BlogCategory.objects.translated(get_language()) - qs = qs.order_by('parent_id', 'translations__name') - for category in qs: - kwargs = { 'category': category.slug } - node = NavigationNode( - category.name, - category.get_absolute_url(), - category.pk, - category.parent_id - ) - nodes.append(node) - return nodes - -menu_pool.register_menu(BlogCategoryMenu) - class BlogApp(CMSApp): name = _('Blog') urls = ['djangocms_blog.urls'] diff --git a/djangocms_blog/menu.py b/djangocms_blog/menu.py index 9764691..f1760c4 100644 --- a/djangocms_blog/menu.py +++ b/djangocms_blog/menu.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- from cms.menu_bases import CMSAttachMenu -from menus.base import Modifier, NavigationNode +from menus.base import NavigationNode from menus.menu_pool import menu_pool -from django.db.models.signals import post_save, post_delete from django.utils.translation import ugettext_lazy as _, get_language from .models import BlogCategory @@ -13,7 +12,7 @@ class BlogCategoryMenu(CMSAttachMenu): def get_nodes(self, request): nodes = [] qs = BlogCategory.objects.translated(get_language()) - qs = qs.order_by('parent__id', 'translations__name') + qs = qs.order_by('parent_id', 'translations__name') for category in qs: kwargs = { 'category': category.slug } node = NavigationNode( @@ -27,38 +26,3 @@ class BlogCategoryMenu(CMSAttachMenu): menu_pool.register_menu(BlogCategoryMenu) - -class BlogNavModifier(Modifier): - """ - This navigation modifier makes sure that when - a particular blog post is viewed, - a corresponding category is selected in menu - """ - def modify(self, request, nodes, namespace, root_id, post_cut, breadcrumb): - if not post_cut: return nodes - if not hasattr(request, 'toolbar'): - return nodes - models = ('djangocms_blog.post', 'djangocms_blog.blogcategory') - model = request.toolbar.get_object_model() - if model not in models: - return nodes - if model == 'djangocms_blog.blogcategory': - cat = request.toolbar.obj - else: - cat = request.toolbar.obj.categories.first() - if not cat: return nodes - - for node in nodes: - if (node.namespace == BlogCategoryMenu.__name__ and - cat.pk == node.id): - node.selected = True - break - return nodes - -menu_pool.register_modifier(BlogNavModifier) - -def clear_menu_cache(**kwargs): - menu_pool.clear(all=True) - -post_save.connect(clear_menu_cache, sender=BlogCategory) -post_delete.connect(clear_menu_cache, sender=BlogCategory)