#
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',
context = {
'request': context['request'],
'object': entry,
+ 'detail': detail,
}
return t.render(template.Context(context))
@register.simple_tag(takes_context=True)
-def entry_promobox(context, entry):
+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))
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]}
'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, html_id=None):
- self.obj = obj
- self.title = 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 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')),
- ModelMenuItem(Category.objects.get(slug_pl='stanowisko')),
- ModelMenuItem(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}