From f4f7f849f28d93f09d3b0276d0514dbe92e1d43b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 28 May 2019 15:29:48 +0200 Subject: Manage tuple generation for html SELECT when parent is self --- ishtar_common/models.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index c554a0ee2..19be62948 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -60,7 +60,7 @@ from django.core.serializers import serialize from django.core.urlresolvers import reverse, NoReverseMatch from django.core.validators import validate_slug from django.db import connection -from django.db.models import Q, Max, Count +from django.db.models import Q, Max, Count, F from django.db.models.signals import post_save, post_delete, m2m_changed from django.db.models.fields.related import ManyToManyField, ManyToManyRel from django.db.utils import DatabaseError @@ -843,6 +843,8 @@ class GeneralType(Cached, models.Model): else: for item in childs.values("id", "parent_id", "label").all(): parent_id = item["parent_id"] or 0 + if item["id"] == item["parent_id"]: + parent_id = 0 if parent_id not in res: res[parent_id] = [] res[parent_id].append((item["id"], item["label"])) @@ -916,13 +918,6 @@ class GeneralType(Cached, models.Model): if not exclude: exclude = [] dct['available'] = True - dct['parent'] = None - items = cls.objects.filter(**dct) - if exclude: - items = items.exclude(txt_idx__in=exclude) - if hasattr(cls, 'order'): - items = items.order_by('order') - child_list = cls._get_childs_list(dct, exclude, instances) if 0 in child_list: -- cgit v1.2.3