diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-12-15 18:03:55 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:38:33 +0200 |
commit | ef878c317f8aa33b5fdd92417a12e1385454e86e (patch) | |
tree | db7dc16f560a2dd63fb02c28cbeda57e19abe905 /ishtar_common/models_common.py | |
parent | c17d33377daa812fad40b1a85a29a8bbb9dc5a85 (diff) | |
download | Ishtar-ef878c317f8aa33b5fdd92417a12e1385454e86e.tar.bz2 Ishtar-ef878c317f8aa33b5fdd92417a12e1385454e86e.zip |
🐛 Sheets - only display the first five updated imports links (refs #5680)
Diffstat (limited to 'ishtar_common/models_common.py')
-rw-r--r-- | ishtar_common/models_common.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index dcb9d030d..658c7d157 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -1107,28 +1107,37 @@ class Imported(models.Model): class Meta: abstract = True - def _get_imports(self, user, key): + def _get_imports(self, user, key, limit): if not user.ishtaruser: return [] q = getattr(self, key) - lst = [] if user.is_superuser or user.ishtaruser.has_right("view_import"): - lst = list(q.all()) + q = q.all() elif user.ishtaruser.has_right("view_own_import"): - lst = q.filter(Q(user=user.ishtaruser) | Q(importer_type__users__pk=user.ishtaruser.pk)) + q = q.filter(Q(user=user.ishtaruser) | Q(importer_type__users__pk=user.ishtaruser.pk)) + else: + return [] + q = q.order_by("-id") + has_limit = False + if q.count() > limit: + has_limit = True + q = q[:limit] + lst = list(q.all()) new_lst = [] for imprt in lst: if imprt.group: new_lst.append(imprt.group) else: new_lst.append(imprt) + if has_limit: + new_lst.append("...") return new_lst - def get_imports(self, user): - return self._get_imports(user, "imports") + def get_imports(self, user, limit=None): + return self._get_imports(user, "imports", limit) - def get_imports_updated(self, user): - return self._get_imports(user, "imports_updated") + def get_imports_updated(self, user, limit=None): + return self._get_imports(user, "imports_updated", limit) class JsonData(models.Model, CachedGen): |