Merge pull request #229 from blag/fix-saving-with-specified-order-value
Fix saving with specified order valuemaster
commit
e90dc03b2c
|
|
@ -89,7 +89,7 @@ class SortableMixin(models.Model):
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
needs_default = (self._state.adding if VERSION >= (1, 8) else not self.pk)
|
needs_default = (self._state.adding if VERSION >= (1, 8) else not self.pk)
|
||||||
if needs_default:
|
if not getattr(self, self.order_field_name) and needs_default:
|
||||||
try:
|
try:
|
||||||
current_max = self.__class__.objects.aggregate(
|
current_max = self.__class__.objects.aggregate(
|
||||||
models.Max(self.order_field_name))[self.order_field_name + '__max'] or 0
|
models.Max(self.order_field_name))[self.order_field_name + '__max'] or 0
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,11 @@ class SortableTestCase(TestCase):
|
||||||
self.assertTrue(get_is_sortable(Category.objects.all()),
|
self.assertTrue(get_is_sortable(Category.objects.all()),
|
||||||
'Category has more than one record. It should be sortable.')
|
'Category has more than one record. It should be sortable.')
|
||||||
|
|
||||||
|
def test_doesnt_overwrite_preexisting_order_field_value(self):
|
||||||
|
self.create_category()
|
||||||
|
category = Category.objects.create(title='Category 2', order=5)
|
||||||
|
self.assertEqual(category.order, 5)
|
||||||
|
|
||||||
def test_save_order_incremented(self):
|
def test_save_order_incremented(self):
|
||||||
category1 = self.create_category()
|
category1 = self.create_category()
|
||||||
self.assertEqual(category1.order, 1, 'Category 1 order should be 1.')
|
self.assertEqual(category1.order, 1, 'Category 1 order should be 1.')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue