diff --git a/zinnia/admin/entry.py b/zinnia/admin/entry.py
index 141bcefa6..af87fd99a 100644
--- a/zinnia/admin/entry.py
+++ b/zinnia/admin/entry.py
@@ -39,25 +39,26 @@ class EntryAdmin(admin.ModelAdmin):
'classes': ('collapse', 'collapse-closed')}),
(_('Privacy'), {'fields': ('password', 'login_required',),
'classes': ('collapse', 'collapse-closed')}),
- (_('Discussion'), {'fields': ('comment_enabled',
- 'pingback_enabled')}),
+ (_('Discussions'), {'fields': ('comment_enabled',
+ 'pingback_enabled',
+ 'trackback_enabled'),
+ 'classes': ('collapse',
+ 'collapse-closed')}),
(_('Publication'), {'fields': ('categories', 'tags',
'sites', 'slug')}))
list_filter = (CategoryListFilter, AuthorListFilter, 'status', 'featured',
'login_required', 'comment_enabled', 'pingback_enabled',
- 'creation_date', 'start_publication',
+ 'trackback_enabled', 'creation_date', 'start_publication',
'end_publication', 'sites')
list_display = ('get_title', 'get_authors', 'get_categories',
- 'get_tags', 'get_sites',
- 'get_comments_are_open', 'pingback_enabled',
- 'get_is_actual', 'get_is_visible', 'get_link',
+ 'get_tags', 'get_sites', 'get_is_visible',
'get_short_url', 'creation_date')
radio_fields = {'template': admin.VERTICAL}
filter_horizontal = ('categories', 'authors', 'related')
prepopulated_fields = {'slug': ('title', )}
search_fields = ('title', 'excerpt', 'content', 'tags')
actions = ['make_mine', 'make_published', 'make_hidden',
- 'close_comments', 'close_pingbacks',
+ 'close_comments', 'close_pingbacks', 'close_trackbacks',
'ping_directories', 'make_tweet', 'put_on_top']
actions_on_top = True
actions_on_bottom = True
@@ -71,12 +72,15 @@ def get_title(self, entry):
"""Return the title with word count and number of comments"""
title = _('%(title)s (%(word_count)i words)') % \
{'title': entry.title, 'word_count': entry.word_count}
- if entry.comment_count:
+ reaction_count = (entry.comment_count +
+ entry.pingback_count +
+ entry.trackback_count)
+ if reaction_count:
return ungettext_lazy(
- '%(title)s (%(comments)i comment)',
- '%(title)s (%(comments)i comments)', entry.comment_count) % \
+ '%(title)s (%(reactions)i reaction)',
+ '%(title)s (%(reactions)i reactions)', reaction_count) % \
{'title': title,
- 'comments': entry.comment_count}
+ 'reactions': reaction_count}
return title
get_title.short_description = _('title')
@@ -125,38 +129,16 @@ def get_sites(self, entry):
get_sites.allow_tags = True
get_sites.short_description = _('site(s)')
- def get_comments_are_open(self, entry):
- """Admin wrapper for entry.comments_are_open"""
- return entry.comments_are_open
- get_comments_are_open.boolean = True
- get_comments_are_open.short_description = _('comment enabled')
-
- def get_is_actual(self, entry):
- """Admin wrapper for entry.is_actual"""
- return entry.is_actual
- get_is_actual.boolean = True
- get_is_actual.short_description = _('is actual')
-
def get_is_visible(self, entry):
"""Admin wrapper for entry.is_visible"""
return entry.is_visible
get_is_visible.boolean = True
get_is_visible.short_description = _('is visible')
- def get_link(self, entry):
- """Return a formated link to the entry"""
- return u'%s' % (
- entry.get_absolute_url(), _('View'))
- get_link.allow_tags = True
- get_link.short_description = _('View on site')
-
def get_short_url(self, entry):
"""Return the short url in HTML"""
- short_url = entry.short_url
- if not short_url:
- return _('Unavailable')
return '%(url)s' % \
- {'url': short_url}
+ {'url': entry.short_url}
get_short_url.allow_tags = True
get_short_url.short_description = _('short url')
@@ -272,9 +254,17 @@ def close_pingbacks(self, request, queryset):
"""Close the pingbacks for selected entries"""
queryset.update(pingback_enabled=False)
self.message_user(
- request, _('Linkbacks are now closed for selected entries.'))
+ request, _('Pingbacks are now closed for selected entries.'))
close_pingbacks.short_description = _(
- 'Close the linkbacks for selected entries')
+ 'Close the pingbacks for selected entries')
+
+ def close_trackbacks(self, request, queryset):
+ """Close the trackbacks for selected entries"""
+ queryset.update(trackback_enabled=False)
+ self.message_user(
+ request, _('Trackbacks are now closed for selected entries.'))
+ close_trackbacks.short_description = _(
+ 'Close the trackbacks for selected entries')
def put_on_top(self, request, queryset):
"""Put the selected entries on top at the current date"""