def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == 'authors': kwargs['queryset'] = authors_published() if db_field.name == 'tags': kwargs['queryset'] = tags_published() return super(CMSLatestEntriesPlugin, self).formfield_for_manytomany( db_field, request, **kwargs)
def get_nodes(self, request): nodes = [] nodes.append(NavigationNode(_('Tags'), reverse('tag-list'), 'tags')) for tag in tags_published(): nodes.append(NavigationNode(tag.name, reverse('tag-detail', args=[tag.name]), tag.pk, 'tags')) return nodes
def test_tags_published(self): self.assertEquals(tags_published().count(), Tag.objects.count()) Tag.objects.create(name='out') self.assertNotEquals(tags_published().count(), Tag.objects.count())
def items(self): tags = tags_published() self.cache(tags) return tags
"""Urls for the zinnia tags""" from django.conf.urls.defaults import * from blog.models import Entry from blog.managers import tags_published from django.conf import settings from settings import PAGINATION tag_conf = {'queryset': tags_published(), 'template_name': 'blog/tag_list.html'} tag_conf_entry = {'queryset_or_model': Entry.published.all(), 'paginate_by': PAGINATION,} t_main = {'queryset_or_model': Entry.published.all(), 'paginate_by': PAGINATION, 'tag': 'home'} urlpatterns = patterns('blog.views.tags', url(r'^topics/$', 'tag_list', tag_conf, name='tag-list'), url(r'^$', 'tag_detail', t_main, name='tag-detail'), url(r'^(?P<tag>[-\w]+)/$', 'tag_detail', tag_conf_entry, name='tag-detail'), url(r'^(?P<tag>[-\w]+)/page/(?P<page>\d+)/$', 'tag_detail', tag_conf_entry, name='tag-detail-paginated'), )