diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-15 16:51:48 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-15 16:51:48 +0200 |
| commit | 06605ee2d7066b4ae73402d336b2e4e54a4d7802 (patch) | |
| tree | dcf142ce2564f8dd88a4e0c566947e71f7921281 /ishtar_common | |
| parent | 041ed027cc5b5e0523bc4a80c8e034de76fcb70a (diff) | |
| download | Ishtar-06605ee2d7066b4ae73402d336b2e4e54a4d7802.tar.bz2 Ishtar-06605ee2d7066b4ae73402d336b2e4e54a4d7802.zip | |
🐛 fix autocomplete repetition
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/views.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 4f37a0938..1599c071f 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -526,6 +526,7 @@ def get_autocomplete_generic(model, extra=None): nb = 0 objects = [] has_parent = hasattr(model, "parent") + query_exact = None if not q: q = "" else: @@ -547,8 +548,11 @@ def get_autocomplete_generic(model, extra=None): sort = ["label"] if has_parent: sort = ["parent__label", "label"] + query = model.objects.filter(query) + if query_exact and objects: + query = query.exclude(pk__in=list(query_exact.values_list("pk", flat=True))) objects += list( - model.objects.filter(query).order_by(*sort).distinct()[:limit] + query.order_by(*sort).distinct()[:limit] ) get_label = lambda x: x.full_label() if hasattr(x, "full_label") else str(x) data = json.dumps([{"id": obj.pk, "value": get_label(obj)} for obj in objects]) |
