diff --git a/adminsortable/admin.py b/adminsortable/admin.py index 459042a..794d94b 100644 --- a/adminsortable/admin.py +++ b/adminsortable/admin.py @@ -108,7 +108,6 @@ class SortableAdmin(ModelAdmin): context = { 'title' : 'Drag and drop %s to change display order' % capfirst(verbose_name_plural), 'opts' : opts, - 'root_path' : '/%s' % admin_site.root_path, 'app_label' : opts.app_label, 'has_perm' : has_perm, 'objects' : objects, @@ -149,14 +148,20 @@ class SortableAdmin(ModelAdmin): indexes = map(str, request.POST.get('indexes', []).split(',')) klass = ContentType.objects.get(id=model_type_id).model_class() objects_dict = dict([(str(obj.pk), obj) for obj in klass.objects.filter(pk__in=indexes)]) - lowest_ordered_object = min(objects_dict.values(), key=lambda x: getattr(x, 'order')) - min_index = getattr(lowest_ordered_object, 'order') or 0 + if '-order' in klass._meta.ordering: #desc order + start_object = max(objects_dict.values(), key=lambda x: getattr(x, 'order')) + start_index = getattr(start_object, 'order') or len(indexes) + step = -1 + else: #'order' is default, asc order + start_object = min(objects_dict.values(), key=lambda x: getattr(x, 'order')) + start_index = getattr(start_object, 'order') or 0 + step = 1 for index in indexes: obj = objects_dict.get(index) - setattr(obj, 'order', min_index) + setattr(obj, 'order', start_index) obj.save() - min_index += 1 + start_index += step response = {'objects_sorted' : True} except (Key, IndexError, klass.DoesNotExist, AttributeError): diff --git a/adminsortable/locale/en/LC_MESSAGES/django.po b/adminsortable/locale/en/LC_MESSAGES/django.po index db15639..7eb07a5 100644 --- a/adminsortable/locale/en/LC_MESSAGES/django.po +++ b/adminsortable/locale/en/LC_MESSAGES/django.po @@ -23,7 +23,7 @@ msgstr "" #, python-format msgid "" "You may also drag and drop %(sortable_by_class_display_name)s to change " -"thier order." +"their order." msgstr "" #: templates/adminsortable/change_list.html:50 diff --git a/adminsortable/locale/nl/LC_MESSAGES/django.mo b/adminsortable/locale/nl/LC_MESSAGES/django.mo index 5415493..da7f085 100644 Binary files a/adminsortable/locale/nl/LC_MESSAGES/django.mo and b/adminsortable/locale/nl/LC_MESSAGES/django.mo differ diff --git a/adminsortable/locale/nl/LC_MESSAGES/django.po b/adminsortable/locale/nl/LC_MESSAGES/django.po index 0a5abd6..668f3c5 100644 --- a/adminsortable/locale/nl/LC_MESSAGES/django.po +++ b/adminsortable/locale/nl/LC_MESSAGES/django.po @@ -25,7 +25,7 @@ msgstr "Sleep %(model)s om de volgorde te veranderen" #: templates/adminsortable/change_list.html:39 #, python-format -msgid "You may also drag and drop %(sortable_by_class_display_name)s to change thier order." +msgid "You may also drag and drop %(sortable_by_class_display_name)s to change their order." msgstr "U kunt ook %(sortable_by_class_display_name)s slepen om de volgorde te veranderen." #: templates/adminsortable/change_list.html:50 diff --git a/adminsortable/templates/adminsortable/change_form.html b/adminsortable/templates/adminsortable/change_form.html index 1181805..d27b7de 100644 --- a/adminsortable/templates/adminsortable/change_form.html +++ b/adminsortable/templates/adminsortable/change_form.html @@ -19,7 +19,6 @@ {% block extrastyle %} {{ block.super }} - {% if has_sortable_tabular_inlines %} {% endif %} diff --git a/adminsortable/templates/adminsortable/change_list.html b/adminsortable/templates/adminsortable/change_list.html index 9d85464..10a270e 100644 --- a/adminsortable/templates/adminsortable/change_list.html +++ b/adminsortable/templates/adminsortable/change_list.html @@ -3,7 +3,6 @@ {% block extrastyle %} {{ block.super }} - {% endblock %} @@ -36,7 +35,7 @@ {% if sortable_by_class.is_sortable %}

- {% blocktrans %}You may also drag and drop {{ sortable_by_class_display_name }} to change thier order.{% endblocktrans %} + {% blocktrans %}You may also drag and drop {{ sortable_by_class_display_name }} to change their order.{% endblocktrans %}

{% endif %} {% endblock %}