22# coding=utf-8
33# ------------------------------------------------------------------------
44
5+ from functools import reduce
56import json
67import logging
78
1617from django .utils .html import escape
1718from django .utils .safestring import mark_safe
1819from django .utils .translation import ugettext_lazy as _ , ugettext
19- from django .utils .encoding import force_unicode
20+ from django .utils .encoding import force_text
2021
2122from mptt .exceptions import InvalidMove
2223from mptt .forms import MPTTAdminForm
@@ -92,7 +93,7 @@ def ajax_editable_boolean_cell(item, attr, text='', override=None):
9293 (useful for "disabled and you can't change it" situations).
9394 """
9495 if text :
95- text = ' (%s)' % unicode ( text )
96+ text = u ' (%s)' % text
9697
9798 if override is not None :
9899 a = [ django_boolean_icon (override , text ), text ]
@@ -108,7 +109,7 @@ def ajax_editable_boolean_cell(item, attr, text='', override=None):
108109
109110 a .insert (0 , '<div id="wrap_%s_%d">' % ( attr , item .pk ))
110111 a .append ('</div>' )
111- return unicode ( '' .join (a ) )
112+ return u '' .join (a )
112113
113114# ------------------------------------------------------------------------
114115def ajax_editable_boolean (attr , short_description ):
@@ -119,7 +120,7 @@ def ajax_editable_boolean(attr, short_description):
119120 Example::
120121
121122 class MyTreeEditor(TreeEditor):
122- list_display = ('__unicode__ ', 'active_toggle')
123+ list_display = ('__str__ ', 'active_toggle')
123124
124125 active_toggle = ajax_editable_boolean('active', _('is active'))
125126 """
@@ -247,7 +248,7 @@ def indented_short_title(self, item):
247248 if hasattr (item , 'short_title' ) and callable (item .short_title ):
248249 r += escape (item .short_title ())
249250 else :
250- r += escape (unicode ( item ) )
251+ r += escape (u'%s' % item )
251252# r += '</span>'
252253 return mark_safe (r )
253254 indented_short_title .short_description = _ ('title' )
@@ -432,8 +433,8 @@ def _move_node(self, request):
432433 if position in ('last-child' , 'left' , 'right' ):
433434 try :
434435 tree_manager .move_node (cut_item , pasted_on , position )
435- except InvalidMove , e :
436- self .message_user (request , unicode ( e ) )
436+ except InvalidMove as e :
437+ self .message_user (request , u'%s' % e )
437438 return HttpResponse ('FAIL' )
438439
439440 # Ensure that model save has been run
@@ -470,7 +471,7 @@ def delete_selected_tree(self, modeladmin, request, queryset):
470471 if self .has_delete_permission (request , obj ):
471472 obj .delete ()
472473 n += 1
473- obj_display = force_unicode (obj )
474+ obj_display = force_text (obj )
474475 self .log_deletion (request , obj , obj_display )
475476 else :
476477 logger .warning (
0 commit comments