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 | |
parent | c17d33377daa812fad40b1a85a29a8bbb9dc5a85 (diff) | |
download | Ishtar-ef878c317f8aa33b5fdd92417a12e1385454e86e.tar.bz2 Ishtar-ef878c317f8aa33b5fdd92417a12e1385454e86e.zip |
🐛 Sheets - only display the first five updated imports links (refs #5680)
-rw-r--r-- | ishtar_common/models_common.py | 25 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/blocks/sheet_creation_section.html | 12 | ||||
-rw-r--r-- | ishtar_common/views_item.py | 4 |
3 files changed, 25 insertions, 16 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): diff --git a/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html b/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html index fc969bb17..f23561afa 100644 --- a/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html +++ b/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html @@ -21,19 +21,19 @@ {% if get_import_list %} <dl class="col-12 col-md-6 col-lg-3 flex-wrap"> <dt>{% trans "Imports (creation)" %}</dt> - <dd>{% for imprt in get_import_list %}{% if loop.counter %} ; {% endif %} - <a class="display_details" href="#" onclick="load_window('{{ imprt.get_show_url }}')"> + <dd>{% for imprt in get_import_list %}{% if forloop.counter0 %} ; {% endif %} + {% if imprt.get_show_url %}<a class="display_details" href="#" onclick="load_window('{{ imprt.get_show_url }}')"> <i class="fa fa-info-circle" aria-hidden="true"></i> - </a> {{imprt}}{% endfor %}</dd> + </a>{% endif %} {{imprt}}{% endfor %}</dd> </dl> {% endif %} {% if get_import_updated %} <dl class="col-12 col-md-6 col-lg-3 flex-wrap"> <dt>{% trans "Imports (update)" %}</dt> - <dd>{% for imprt in get_import_updated %}{% if loop.counter %} ; {% endif %} - <a class="display_details" href="#" onclick="load_window('{{ imprt.get_show_url }}')"> + <dd>{% for imprt in get_import_updated %}{% if forloop.counter0 %} ; {% endif %} + {% if imprt.get_show_url %}<a class="display_details" href="#" onclick="load_window('{{ imprt.get_show_url }}')"> <i class="fa fa-info-circle" aria-hidden="true"></i> - </a> {{imprt}}{% endfor %}</dd> + </a>{% endif %} {{imprt}}{% endfor %}</dd> </dl> {% endif %} {% endif %} diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index ceef7a343..d71775921 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -403,8 +403,8 @@ def show_item(model, name, extra_dct=None, model_for_perms=None): dct["permission_" + perm] = True if hasattr(item, "get_imports"): - dct["get_import_list"] = item.get_imports(request.user) - dct["get_import_updated"] = item.get_imports_updated(request.user) + dct["get_import_list"] = item.get_imports(request.user, limit=5) + dct["get_import_updated"] = item.get_imports_updated(request.user, limit=5) if hasattr(item, "history") and request.user.is_superuser: if date: |