From da0da5e6901594ceba40f3a0fd778b4ecd580514 Mon Sep 17 00:00:00 2001 From: Brandon Taylor Date: Sun, 5 Jul 2015 22:37:20 -0400 Subject: [PATCH] Fixes: Bug in get_previous() method #108 Added ordering to _filter_objects internal method to correctly select previous object. --- adminsortable/admin.py | 2 +- adminsortable/models.py | 3 ++- sample_project/database/test_project.sqlite | Bin 100352 -> 100352 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/adminsortable/admin.py b/adminsortable/admin.py index bd684f9..e103f14 100644 --- a/adminsortable/admin.py +++ b/adminsortable/admin.py @@ -290,7 +290,7 @@ class SortableInlineBase(SortableAdminBase, InlineModelAdmin): qs = super(SortableInlineBase, self).queryset(request) else: qs = super(SortableInlineBase, self).get_queryset(request) - + if get_is_sortable(qs): self.model.is_sortable = True else: diff --git a/adminsortable/models.py b/adminsortable/models.py index d17a815..01272e2 100644 --- a/adminsortable/models.py +++ b/adminsortable/models.py @@ -80,7 +80,8 @@ class Sortable(models.Model): {self.sortable_foreign_key.name: sfk_obj.id}) try: - obj = self.__class__.objects.filter(**filters)[:1][0] + order_by = '-order' if 'order__lt' in filters.keys() else 'order' + obj = self.__class__.objects.filter(**filters).order_by(order_by)[:1][0] except IndexError: obj = None diff --git a/sample_project/database/test_project.sqlite b/sample_project/database/test_project.sqlite index 9d92c7d09973d6081302a80ff5ba122846cea224..77631b38996f50b70917394c883b53128ddb8816 100644 GIT binary patch delta 275 zcmZpez}7H?W9$G@lLcp3YcyG#v--BMIubHx U`-WCVCPoo#j^5tU%2>e!0FG}>@&Et; delta 140 zcmV;70CWFmdLD01W~k00JKZL;`67jsmj+*aH0n uA_GSQYy*)4wgcOS0eAwn!zb