Added method to check for self-referential sortable foreign keys.

master
Brandon Taylor 2014-11-03 10:43:41 -05:00
parent d332563e27
commit 612c4f8031
1 changed files with 17 additions and 4 deletions

View File

@ -1,4 +1,4 @@
from .models import Sortable
from .models import Sortable, SortableForeignKey
def get_is_sortable(objects):
@ -9,9 +9,22 @@ def get_is_sortable(objects):
return False
def check_model_is_sortable(cls):
if cls:
if issubclass(type(cls), Sortable):
if cls.objects.count() > 1:
def is_self_referential(cls):
cls_type = type(cls)
sortable_subclass = issubclass(cls_type, Sortable)
sortable_foreign_key_subclass = issubclass(cls_type, SortableForeignKey)
if sortable_foreign_key_subclass and not sortable_subclass:
return True
return False
def check_model_is_sortable(cls):
if cls:
if is_self_referential(cls):
objects = cls.model.objects
else:
objects = cls.objects
if objects.count() > 1:
return True
return False