summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-10-02 20:20:13 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:38:32 +0200
commitd7a3da21149ea5da231bcb7d3b2ca2b0b39ae68f (patch)
treecd161832e89d0e613d1c0c1a9d0132a5190bfb3a
parent8ee253c715bbfb8175a1fa2ca83334a774b01941 (diff)
downloadIshtar-d7a3da21149ea5da231bcb7d3b2ca2b0b39ae68f.tar.bz2
Ishtar-d7a3da21149ea5da231bcb7d3b2ca2b0b39ae68f.zip
✨ links to import sheet
-rw-r--r--ishtar_common/models_common.py15
-rw-r--r--ishtar_common/templates/ishtar/blocks/sheet_creation_section.html18
-rw-r--r--ishtar_common/utils.py3
-rw-r--r--ishtar_common/views_item.py4
4 files changed, 37 insertions, 3 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 1033be9ed..79c9600dd 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -1106,6 +1106,21 @@ class Imported(models.Model):
class Meta:
abstract = True
+ def _get_imports(self, user, key):
+ if not user.ishtaruser:
+ return []
+ q = getattr(self, key)
+ if user.is_superuser or user.ishtaruser.has_right("view_import"):
+ return list(q.all())
+ q = q.filter(Q(user=user.ishtaruser) | Q(importer_type__users__pk=user.ishtaruser.pk))
+ return list(q.all())
+
+ def get_imports(self, user):
+ return self._get_imports(user, "imports")
+
+ def get_imports_updated(self, user):
+ return self._get_imports(user, "imports_updated")
+
class JsonData(models.Model, CachedGen):
data = JSONField(default=dict, blank=True)
diff --git a/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html b/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html
index 78a5ca75f..4460809d4 100644
--- a/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html
+++ b/ishtar_common/templates/ishtar/blocks/sheet_creation_section.html
@@ -18,4 +18,22 @@
<small>{% firstof item.history_date|date:"DATETIME_FORMAT" item.history.all.0.history_date|date:"DATETIME_FORMAT" %}</small>
</div>
{% endif %}
+{% 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('{% url 'show-import' imprt.pk %}')">
+ <i class="fa fa-info-circle" aria-hidden="true"></i>
+ </a> {{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('{% url 'show-import' imprt.pk %}')">
+ <i class="fa fa-info-circle" aria-hidden="true"></i>
+ </a> {{imprt}}{% endfor %}</dd>
+</dl>
+{% endif %}
{% endif %}
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index dd2f3afe3..c9bf53fc7 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -1241,9 +1241,6 @@ def get_all_field_names(model):
def get_all_related_m2m_objects_with_model(model, related_name=None):
- for f in model._meta.get_fields(include_hidden=True):
- if f.many_to_many and f.auto_created:
- print(f.related_name)
return [
(f, f.model if f.model != model else None)
for f in model._meta.get_fields(include_hidden=True)
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 7596f493f..ceef7a343 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -402,6 +402,10 @@ def show_item(model, name, extra_dct=None, model_for_perms=None):
for perm in permissions:
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)
+
if hasattr(item, "history") and request.user.is_superuser:
if date:
try: