Merge branch 'master' of github.com:btaylordesign/django-admin-sortable

master
Brandon Taylor 2011-11-22 21:00:19 -06:00
commit fe01094ac6
2 changed files with 8 additions and 8 deletions

View File

@ -24,9 +24,10 @@ class Sortable(models.Model):
@classmethod @classmethod
def is_sortable(cls): def is_sortable(cls):
try: try:
return True if cls.objects.order_by('-order')[:1][0].order > 1 else False max_order = cls.objects.aggregate(models.Max('order'))['order__max']
except IndexError: except TypeError, IndexError:
return False max_order = 0
return True if max_order > 1 else False
@classmethod @classmethod
def model_type_id(cls): def model_type_id(cls):
@ -35,9 +36,8 @@ class Sortable(models.Model):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.id: if not self.id:
try: try:
#increment the order field by adding one to the last value of order self.order = self.__class__.objects.aggregate(models.Max('order'))['order__max'] + 1
self.order = self.__class__.objects.order_by('-order')[:1][0].order + 1 except TypeError, IndexError:
except IndexError:
#order defaults to 1
pass pass
super(Sortable, self).save(*args, **kwargs) super(Sortable, self).save(*args, **kwargs)

View File

@ -34,7 +34,7 @@ class SortableTestCase(TestCase):
self.user.save() self.user.save()
def create_category(self, title='Category 1'): def create_category(self, title='Category 1'):
category, _ = Category.objects.get_or_create(title=title) category = Category.objects.create(title=title)
return category return category
def test_new_user_is_authenticated(self): def test_new_user_is_authenticated(self):