diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-12-15 18:03:55 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-02-05 10:51:52 +0100 |
commit | e5c704cbe7d3bd3e805aee3b767267539e2a963e (patch) | |
tree | 91da84b23034a1f0dd61f80fba231066d522a4eb /ishtar_common/models_common.py | |
parent | 414aee179063a64eddd2119ec8639fd211720036 (diff) | |
download | Ishtar-e5c704cbe7d3bd3e805aee3b767267539e2a963e.tar.bz2 Ishtar-e5c704cbe7d3bd3e805aee3b767267539e2a963e.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): |