web/views/tableview.py
changeset 10718 97d398e17f8c
parent 10688 fa29f3628a1b
child 10829 550c2d27339f
equal deleted inserted replaced
10717:46f934bebd85 10718:97d398e17f8c
    65 
    65 
    66 from warnings import warn
    66 from warnings import warn
    67 from copy import copy
    67 from copy import copy
    68 from types import MethodType
    68 from types import MethodType
    69 
    69 
    70 from six import string_types, add_metaclass
    70 from six import string_types, add_metaclass, create_bound_method
    71 from six.moves import range
    71 from six.moves import range
    72 
    72 
    73 from logilab.mtconverter import xml_escape
    73 from logilab.mtconverter import xml_escape
    74 from logilab.common.decorators import cachedproperty
    74 from logilab.common.decorators import cachedproperty
    75 from logilab.common.deprecation import class_deprecated
    75 from logilab.common.deprecation import class_deprecated
   724         try:
   724         try:
   725             acopy =  copy(self)
   725             acopy =  copy(self)
   726             for aname, member in[('renderfunc', renderfunc),
   726             for aname, member in[('renderfunc', renderfunc),
   727                                  ('sortfunc', sortfunc)]:
   727                                  ('sortfunc', sortfunc)]:
   728                 if isinstance(member, MethodType):
   728                 if isinstance(member, MethodType):
   729                     member = MethodType(member.im_func, acopy, acopy.__class__)
   729                     member = create_bound_method(member.__func__, acopy)
   730                 setattr(acopy, aname, member)
   730                 setattr(acopy, aname, member)
   731             return acopy
   731             return acopy
   732         finally:
   732         finally:
   733             self.renderfunc = renderfunc
   733             self.renderfunc = renderfunc
   734             self.sortfunc = sortfunc
   734             self.sortfunc = sortfunc