more order in app settings,
[prawokultury.git] / migdal / templatetags / migdal_tags.py
index 9c7b15b..2ec8081 100644 (file)
@@ -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))
 
@@ -40,7 +41,7 @@ def entry_short(context, entry):
 
 
 @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',
@@ -48,6 +49,7 @@ def entry_promobox(context, entry):
     context = {
         'request': context['request'],
         'object': entry,
+        'counter': counter,
     }
     return t.render(template.Context(context))
 
@@ -62,7 +64,7 @@ def categories(context, taxonomy):
 
 
 @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]}
 
@@ -88,9 +90,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
 
@@ -98,6 +100,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):
@@ -117,8 +126,8 @@ def main_menu(context, chooser=None, value=None):
         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')),
+        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'))