incuna/django-orderable — pull request #13 by zlorf (2013-12-09 22:45:07+00:00)
Title: Queries number optimalization + more

Hi,

I've tried to find the One Truly Ultimate django app for model sorting, but none suited me completely. Yours was closest to ideal, so I decided to patch it.

I wonder why app should perform so many queries when saving order? Why it should call ``save()`` on every object (and save perform typically 2 queries for model)? Why not use ``update()`` instead?

Second problem: I don't want order field to be directly editable in admin. It can only confuse users. Instead, they should use drag&drop in changelist to set ordering.

So my proposition: add ORDERABLE_ORDER_EDITABLE setting which control whether ``sort_order`` is editable (by default it is, to provide backward compatibility). Moreover, if field is not editable, order saving use `update` optimization (maybe it can be used even in editable case, but for uneditable it's obviously safe).

Second commit add translation for column header and remove sorting option. Why? Because if someone (accidentally) reverse the sorting order and then do some drag&drop, he can be surprised that the order is just reversed from what he saw. Changelist order should not be alterable.