summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-11 18:26:59 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-11 18:26:59 +0200
commit253023f6c3480e75d1b9977ff2d2869af4262a29 (patch)
tree96fee714f84d06390563bb928ed2a71497efbe5b
parented8291ebd2c5613a9bddffd9380c9f61a08303dd (diff)
downloadIshtar-253023f6c3480e75d1b9977ff2d2869af4262a29.tar.bz2
Ishtar-253023f6c3480e75d1b9977ff2d2869af4262a29.zip
Shortcut menu: limit simple menu to 100 entries by types
-rw-r--r--archaeological_context_records/models.py7
-rw-r--r--archaeological_files/models.py4
-rw-r--r--archaeological_finds/models.py6
-rw-r--r--archaeological_operations/models.py5
-rw-r--r--ishtar_common/models.py7
-rw-r--r--ishtar_common/views.py3
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