X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/a50ddc685551384615e95785eb01d4505412df5e..846b69463a94546a97e392f8f7ade04669df1537:/migdal/templatetags/migdal_tags.py diff --git a/migdal/templatetags/migdal_tags.py b/migdal/templatetags/migdal_tags.py index f56322e..d12920f 100644 --- a/migdal/templatetags/migdal_tags.py +++ b/migdal/templatetags/migdal_tags.py @@ -6,15 +6,15 @@ 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 +22,7 @@ def entry_begin(context, entry): context = { 'request': context['request'], 'object': entry, + 'detail': detail, } return t.render(template.Context(context)) @@ -39,17 +40,32 @@ def entry_short(context, entry): return t.render(template.Context(context)) +@register.simple_tag(takes_context=True) +def entry_promobox(context, entry, counter): + t = template.loader.select_template(( + 'migdal/entry/%s/entry_promobox.html' % entry.type, + 'migdal/entry/entry_promobox.html', + )) + context = { + 'request': context['request'], + 'object': entry, + 'counter': counter, + } + return t.render(template.Context(context)) + + @register.inclusion_tag('migdal/categories.html', takes_context=True) 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]} @@ -75,9 +91,9 @@ class MenuItem(object): class ModelMenuItem(object): - def __init__(self, obj, html_id=None): + def __init__(self, obj, title=None, html_id=None): self.obj = obj - self.title = unicode(obj) + self.title = title or unicode(obj) self.url = obj.get_absolute_url() self.html_id = html_id @@ -85,6 +101,13 @@ class ModelMenuItem(object): 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): @@ -101,12 +124,10 @@ class EntryTypeMenuItem(object): @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')), - ModelMenuItem(Category.objects.get(slug_pl='stanowisko')), - ModelMenuItem(Category.objects.get(slug_pl='pierwsza-pomoc')), + #ModelMenuItem(Entry.objects.get(slug_pl='o-nas')), + #MenuItem(_(u'Events'), reverse('events')), ] + # TODO: context-aware language switcher if context['request'].LANGUAGE_CODE == 'pl': items.append(MenuItem(u'en', '/en/', html_id='item-lang')) else: