diff options
| 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 | 
| commit | 7a504b1f0b3c58875ea852e94c0da05bd9d84890 (patch) | |
| tree | 96fee714f84d06390563bb928ed2a71497efbe5b | |
| parent | dbc177886d29dcf7a39916189ce712d1bca16ef4 (diff) | |
| download | Ishtar-7a504b1f0b3c58875ea852e94c0da05bd9d84890.tar.bz2 Ishtar-7a504b1f0b3c58875ea852e94c0da05bd9d84890.zip | |
Shortcut menu: limit simple menu to 100 entries by types
| -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 | 
