diff --git a/categories/editor/templatetags/admin_tree_list_tags.py b/categories/editor/templatetags/admin_tree_list_tags.py
index 2af33d6..681df55 100644
--- a/categories/editor/templatetags/admin_tree_list_tags.py
+++ b/categories/editor/templatetags/admin_tree_list_tags.py
@@ -96,27 +96,18 @@ def items_for_tree_result(cl, result, form):
value = result.serializable_value(attr)
result_id = repr(force_text(value))[1:]
first = False
- if django.VERSION[1] < 4: # versions 1.3 and smaller
- yield mark_safe(
- '<%s%s>%s%s%s>' %
- (table_tag, row_class, checkbox_value, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag))
- elif django.VERSION[1] < 7: # versions 1.4 to 1.7
- yield mark_safe(
- '<%s%s>%s%s>' %
- (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag))
- else: # versions 1.8 and greater
- result_id = escapejs(value)
- yield mark_safe(
+ result_id = escapejs(value)
+ yield mark_safe(
+ format_html(
+ smart_text('<{}{}>{}{}>'),
+ table_tag,
+ row_class,
+ url,
format_html(
- '<{}{}>{}{}>',
- table_tag,
- row_class,
- url,
- format_html(
- ' onclick="opener.dismissRelatedLookupPopup(window, '
- ''{}'); return false;"', result_id
- ) if cl.is_popup else '', result_repr, table_tag)
- )
+ ' onclick="opener.dismissRelatedLookupPopup(window, '
+ ''{}'); return false;"', result_id
+ ) if cl.is_popup else '', result_repr, table_tag)
+ )
else:
# By default the fields come from ModelAdmin.list_editable, but if we pull
@@ -127,9 +118,9 @@ def items_for_tree_result(cl, result, form):
result_repr = mark_safe(force_text(bf.errors) + force_text(bf))
else:
result_repr = conditional_escape(result_repr)
- yield mark_safe('
%s | ' % (row_class, result_repr))
+ yield mark_safe(smart_text('%s | ' % (row_class, result_repr)))
if form and not form[cl.model._meta.pk.name].is_hidden:
- yield mark_safe('%s | ' % force_text(form[cl.model._meta.pk.name]))
+ yield mark_safe(smart_text('%s | ' % force_text(form[cl.model._meta.pk.name])))
class TreeList(list):
diff --git a/categories/tests/test_admin.py b/categories/tests/test_admin.py
index 6806ec4..897a9fe 100644
--- a/categories/tests/test_admin.py
+++ b/categories/tests/test_admin.py
@@ -1,6 +1,9 @@
+# -*- coding: utf-8 -*-
+
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.test import Client, TestCase
+from django.utils.encoding import smart_text
from categories.models import Category
@@ -16,7 +19,7 @@ class TestCategoryAdmin(TestCase):
url = reverse('admin:categories_category_add')
data = {
'parent': '',
- 'name': "Parent",
+ 'name': smart_text('Parent Catégory'),
'thumbnail': '',
'filename': '',
'active': 'on',
@@ -34,7 +37,7 @@ class TestCategoryAdmin(TestCase):
self.assertEqual(1, Category.objects.count())
# update parent
- data.update({'name': 'Parent (Changed)'})
+ data.update({'name': smart_text('Parent Catégory (Changed)')})
resp = self.client.post(reverse('admin:categories_category_change', args=(1,)), data=data)
self.assertEqual(resp.status_code, 302)
self.assertEqual(1, Category.objects.count())
@@ -42,8 +45,8 @@ class TestCategoryAdmin(TestCase):
# add a child
data.update({
'parent': '1',
- 'name': 'Child',
- 'slug': 'child',
+ 'name': smart_text('Child Catégory'),
+ 'slug': smart_text('child-category'),
})
resp = self.client.post(url, data=data)
self.assertEqual(resp.status_code, 302)
@@ -54,3 +57,8 @@ class TestCategoryAdmin(TestCase):
resp = self.client.post(reverse('admin:categories_category_change', args=(2,)), data=data)
self.assertEqual(resp.status_code, 302)
self.assertEqual(2, Category.objects.count())
+
+ # test the admin list view
+ url = reverse('admin:categories_category_changelist')
+ resp = self.client.get(url)
+ self.assertEqual(resp.status_code, 200)