X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/6f1d6a6fe9607eb612d2dc95340d414dda043e92..a84463e418ebe210f8c0ae2f466ad268d31e4c36:/migdal/templatetags/migdal_tags.py diff --git a/migdal/templatetags/migdal_tags.py b/migdal/templatetags/migdal_tags.py index 43371b1..c1b824c 100644 --- a/migdal/templatetags/migdal_tags.py +++ b/migdal/templatetags/migdal_tags.py @@ -4,7 +4,6 @@ # from django_comments_xtd.models import XtdComment from django.contrib import comments -from django.core.urlresolvers import reverse from django import template from migdal import app_settings from migdal.models import Category, Entry @@ -58,7 +57,8 @@ def entry_promobox(context, entry, counter): def categories(context, taxonomy): context = { 'request': context['request'], - 'object_list': Category.objects.filter(taxonomy=taxonomy) + 'object_list': Category.objects.filter(taxonomy=taxonomy + ).exclude(entry__isnull=True) } return context @@ -75,66 +75,3 @@ def entry_comment_form(entry): 'form': comments.get_form()(entry), 'next': entry.get_absolute_url(), } - - -class MenuItem(object): - html_id = None - - def __init__(self, title, url, html_id=None): - self.title = title - self.url = url - self.html_id = html_id - - def check_active(self, chooser, value): - self.active = chooser == 'url' and value == self.url - - -class ModelMenuItem(object): - def __init__(self, obj, title=None, html_id=None): - self.obj = obj - self.title = title or unicode(obj) - self.url = obj.get_absolute_url() - self.html_id = html_id - - def check_active(self, chooser, value): - self.active = (chooser == 'object' and value == self.obj or - chooser == 'objects' and self.obj in value) - -class CategoryMenuItem(ModelMenuItem): - def check_active(self, chooser, value): - super(CategoryMenuItem, self).check_active(chooser, value) - self.active = (self.active or - (chooser == 'object' and isinstance(value, Entry) and - self.obj in value.categories.all())) - - -class EntryTypeMenuItem(object): - def __init__(self, title, type_, html_id=None): - self.type = type_ - self.title = title - self.url = reverse('migdal_entry_list_%s' % type_) - self.html_id = html_id - - def check_active(self, chooser, value): - self.active = (chooser == 'object' and isinstance(value, Entry) - and value.type == self.type or - chooser == 'entry_type' and value == self.type) - -@register.inclusion_tag('migdal/menu.html', takes_context=True) -def main_menu(context, chooser=None, value=None): - items = [ - ModelMenuItem(Entry.objects.get(slug_pl='o-nas')), - EntryTypeMenuItem(_(u'Publications'), u'publications'), - MenuItem(_(u'Events'), reverse('events')), - CategoryMenuItem(Category.objects.get(slug_pl='stanowisko'), - title=_('Positions')), - CategoryMenuItem(Category.objects.get(slug_pl='pierwsza-pomoc'), - title=_('First aid in copyright')), - ] - if context['request'].LANGUAGE_CODE == 'pl': - items.append(MenuItem(u'en', '/en/', html_id='item-lang')) - else: - items.append(MenuItem(u'pl', '/', html_id='item-lang')) - for item in items: - item.check_active(chooser, value) - return {'items': items}