diff options
Diffstat (limited to 'archaeological_files/models.py')
| -rw-r--r-- | archaeological_files/models.py | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 638b19d18..15e65579c 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -340,12 +340,16 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,          cache.set(cache_key, has_adminact, settings.CACHE_TIMEOUT)          return has_adminact -    def get_short_menu_class(self): -        cache_key, val = get_cache(self.__class__, [self.pk, -                                                    'short_class_name']) +    @classmethod +    def get_short_menu_class(cls, pk): +        cache_key, val = get_cache(cls, [pk, 'short_class_name'])          if val:              return val -        return self.update_short_menu_class(cache_key) +        q = cls.objects.filter(pk=pk) +        if not q.count(): +            return '' +        item = q.all()[0] +        return item.update_short_menu_class(cache_key)      def update_short_menu_class(self, cache_key=None):          if not cache_key: @@ -366,9 +370,12 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,          return cls      @classmethod -    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_owns(cls, user, menu_filtr=None, limit=None, values=None, +                 get_short_menu_class=False): +        owns = super(File, cls).get_owns( +            user, limit=limit, values=values, +            get_short_menu_class=get_short_menu_class) +        return cls._return_get_owns(owns, values, get_short_menu_class)      def get_values(self, prefix=''):          values = super(File, self).get_values(prefix=prefix) | 
