Commit c4b6edf3 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Fixed #12746 -- Updated sorting calls to use 'key' instead of 'cmp'. This will...

Fixed #12746 -- Updated sorting calls to use 'key' instead of 'cmp'. This will be slightly faster in certain circumstances, but more importantly, is a required step for migration to Python 3. Thanks to Martin van Loewis for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13509 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 9e5899f6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -501,7 +501,7 @@ class ModelAdmin(BaseModelAdmin):

        # Convert the actions into a SortedDict keyed by name
        # and sorted by description.
        actions.sort(lambda a,b: cmp(a[2].lower(), b[2].lower()))
        actions.sort(key=lambda k: k[2].lower())
        actions = SortedDict([
            (name, (func, name, desc))
            for func, name, desc in actions
+3 −3
Original line number Diff line number Diff line
@@ -379,11 +379,11 @@ class AdminSite(object):

        # Sort the apps alphabetically.
        app_list = app_dict.values()
        app_list.sort(lambda x, y: cmp(x['name'], y['name']))
        app_list.sort(key=lambda x: x['name'])

        # Sort the models alphabetically within each app.
        for app in app_list:
            app['models'].sort(lambda x, y: cmp(x['name'], y['name']))
            app['models'].sort(key=lambda x: x['name'])

        context = {
            'title': _('Site administration'),
@@ -443,7 +443,7 @@ class AdminSite(object):
        if not app_dict:
            raise http.Http404('The requested admin page does not exist.')
        # Sort the models alphabetically within each app.
        app_dict['models'].sort(lambda x, y: cmp(x['name'], y['name']))
        app_dict['models'].sort(key=lambda x: x['name'])
        context = {
            'title': _('%s administration') % capfirst(app_label),
            'app_list': [app_dict],
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ class CalendarPlugin(DatabrowsePlugin):
    def homepage_view(self, request):
        easy_model = EasyModel(self.site, self.model)
        field_list = self.fields.values()
        field_list.sort(lambda x, y: cmp(x.verbose_name, y.verbose_name))
        field_list.sort(key=lambda k:k.verbose_name)
        return render_to_response('databrowse/calendar_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list})

    def calendar_view(self, request, field, year=None, month=None, day=None):
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ class FieldChoicePlugin(DatabrowsePlugin):
    def homepage_view(self, request):
        easy_model = EasyModel(self.site, self.model)
        field_list = self.fields.values()
        field_list.sort(lambda x, y: cmp(x.verbose_name, y.verbose_name))
        field_list.sort(key=lambda k: k.verbose_name)
        return render_to_response('databrowse/fieldchoice_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list})

    def field_view(self, request, field, value=None):
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ def get_declared_fields(bases, attrs, with_base_fields=True):
    Also integrates any additional media definitions
    """
    fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
    fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
    fields.sort(key=lambda x: x[1].creation_counter)

    # If this class is subclassing another Form, add that Form's fields.
    # Note that we loop over the bases in *reverse*. This is necessary in
Loading