def is_active(self, request, value):
url = request.get_full_path()
- return url == str(self.url) or url in set(str(url) for url in self.more_urls)
+ if url.startswith(str(self.url)):
+ return True
+ for other_url in self.more_urls:
+ if url.startswith(str(other_url)):
+ return True
+ return False
def check_active(self, request, value):
try:
ITEMS.append(ModelMenuItem(Entry, reverse_lazy('migdal_entry_list_publications'),
field_lookups={'type': 'publications'}, title=_('Publications')))
-ITEMS.append(MenuItem(reverse_lazy('events'), _('Events'),
- more_urls=(reverse_lazy('events_past'),)))
+ITEMS.append(MenuItem(reverse_lazy('events'), _('Events')))
ITEMS.append(ObjectMenuItem(
obj_get=lambda:Category.objects.get(slug_pl='stanowisko'),
title=_('Positions')
))
-ITEMS.append(MenuItem(reverse_lazy('questions'), _('First aid'),
- more_urls=(
- reverse_lazy('questions_form'),
- #reverse_lazy('questions_question'),
- reverse_lazy('questions_thanks'),
- )))
+ITEMS.append(MenuItem(reverse_lazy('questions'), _('First aid')))
ITEMS.append(ObjectMenuItem(
obj_get=lambda:Entry.published_objects.get(slug_pl='pierwsza-pomoc'),
help_text=_('Check to display answered question on site.'))
published_at = models.DateTimeField(_('published at'), null=True, blank=True, db_index=True)
- tags = TaggableManager(through=TagItem)
+ tags = TaggableManager(through=TagItem, blank=True)
class Meta:
ordering = ['-created_at']
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
from django.core.urlresolvers import reverse_lazy
+from django.db import models
+from django.shortcuts import get_object_or_404
from django.views.generic import ListView
from django.views.generic.edit import FormView
from .forms import QuestionForm
self.tag = None
if 'tag' in request.GET:
try:
- self.tag = Tag.objects.get(slug=request.GET['tag'])
- except Tag.DoesNotExist:
+ self.tag = Tag.objects.filter(items__question__published=True, slug=request.GET['tag'])[0]
+ except IndexError:
pass
return super(QuestionListView, self).get(request, *args, **kwargs)
def get_queryset(self):
qs = Question.objects.filter(published=True
).order_by('-published_at')
- if 'tag' in self.request.GET:
- qs = qs.filter(tags__slug=self.request.GET['tag'])
+ if self.tag:
+ qs = qs.filter(tags=self.tag)
return qs
def get_context_data(self, *args, **kwargs):
context = super(QuestionListView, self).get_context_data(*args, **kwargs)
- context['tags'] = Tag.objects.all()
+ context['tags'] = Tag.objects.filter(items__question__published=True
+ ).annotate(c=models.Count('items__tag')).order_by('-c', 'slug')
context['tag'] = self.tag
return context