X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/b1fb752ca1abb051a63da4729e34a80affc25c76..cdcbbaea50438faa14771ee5e716f5ee71180ae3:/migdal/templatetags/migdal_tags.py diff --git a/migdal/templatetags/migdal_tags.py b/migdal/templatetags/migdal_tags.py index 8b20f83..c1b824c 100644 --- a/migdal/templatetags/migdal_tags.py +++ b/migdal/templatetags/migdal_tags.py @@ -4,17 +4,16 @@ # 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 -from migdal import settings from django.utils.translation import ugettext_lazy as _ register = template.Library() @register.simple_tag(takes_context=True) -def entry_begin(context, entry): +def entry_begin(context, entry, detail=False): t = template.loader.select_template(( 'migdal/entry/%s/entry_begin.html' % entry.type, 'migdal/entry/entry_begin.html', @@ -22,6 +21,7 @@ def entry_begin(context, entry): context = { 'request': context['request'], 'object': entry, + 'detail': detail, } return t.render(template.Context(context)) @@ -57,13 +57,14 @@ 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 @register.inclusion_tag('migdal/last_comments.html') -def last_comments(limit=10): +def last_comments(limit=app_settings.LAST_COMMENTS): return {'object_list': XtdComment.objects.filter(is_public=True, is_removed=False).order_by('-submit_date')[:limit]} @@ -74,64 +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')), - ] - 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}