diff options
-rw-r--r-- | archaeological_context_records/models.py | 7 | ||||
-rw-r--r-- | archaeological_files/models.py | 4 | ||||
-rw-r--r-- | archaeological_finds/models.py | 6 | ||||
-rw-r--r-- | archaeological_operations/models.py | 5 | ||||
-rw-r--r-- | ishtar_common/models.py | 7 | ||||
-rw-r--r-- | ishtar_common/views.py | 3 |
6 files changed, 20 insertions, 12 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index af042bf45..5dc943275 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -236,12 +236,13 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): Q(history_creator=user) @classmethod - def get_owns(cls, user, menu_filtr=None): + def get_owns(cls, user, menu_filtr=None, limit=None): replace_query = {} if menu_filtr: replace_query = {'operation': menu_filtr} - owns = super(ContextRecord, cls).get_owns(user, - replace_query=replace_query) + owns = super(ContextRecord, cls).get_owns( + user, replace_query=replace_query, + limit=limit) return sorted(owns, key=lambda x: x.cached_label) def full_label(self): diff --git a/archaeological_files/models.py b/archaeological_files/models.py index b116d1f1c..3721e4d3d 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -340,8 +340,8 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, return cls @classmethod - def get_owns(cls, user, menu_filtr=None): - owns = super(File, cls).get_owns(user) + def get_owns(cls, user, menu_filtr=None, limit=None): + owns = super(File, cls).get_owns(user, limit=limit) return sorted(owns, key=lambda x: x.cached_label) def get_values(self, prefix=''): diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 722d165ce..5581df084 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -587,11 +587,13 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): Q(history_creator=user) @classmethod - def get_owns(cls, user, menu_filtr=None): + def get_owns(cls, user, menu_filtr=None, limit=None): replace_query = {} if menu_filtr: replace_query = {'base_finds__context_record': menu_filtr} - owns = super(Find, cls).get_owns(user, replace_query=replace_query) + owns = super(Find, cls).get_owns( + user, replace_query=replace_query, + limit=limit) return sorted(owns, key=lambda x: x.cached_label) def _generate_cached_label(self): diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 0cebcf292..4dd107da8 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -308,12 +308,13 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, ordering = ('cached_label',) @classmethod - def get_owns(cls, user, menu_filtr=None): + def get_owns(cls, user, menu_filtr=None, limit=None): replace_query = {} if menu_filtr: replace_query = {'associated_file': menu_filtr} owns = super(Operation, cls).get_owns( - user, replace_query=replace_query) + user, replace_query=replace_query, + limit=limit) # owns = owns.annotate(null_count=Count('operation_code')) # return owns.order_by("common_name", "-year", "operation_code") return sorted(owns, key=lambda x: x.cached_label) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 5b93b62a2..ba3d51172 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -235,7 +235,7 @@ class OwnPerms: return cls.objects.filter(query).count() @classmethod - def get_owns(cls, user, replace_query={}): + def get_owns(cls, user, replace_query={}, limit=None): """ Get Own items """ @@ -252,7 +252,10 @@ class OwnPerms: q = cls.objects.filter(query) if replace_query: q = cls.objects.filter(**replace_query) - items += list(q.order_by(*cls._meta.ordering).all()) + if limit: + items += list(q.order_by('-pk')[:limit]) + else: + items += list(q.order_by(*cls._meta.ordering).all()) return items diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 6dc7e6e0d..3406cf7af 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -266,7 +266,8 @@ def shortcut_menu(request): current = model_name in request.session and request.session[model_name] items = [] for item in model.get_owns(request.user, - menu_filtr=current_selected_item): + menu_filtr=current_selected_item, + limit=100): pk = unicode(item.pk) if item.IS_BASKET: pk = "basket-" + pk |