summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-05-28 15:29:48 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:28 +0200
commitf4f7f849f28d93f09d3b0276d0514dbe92e1d43b (patch)
treebc97d4e93f653bf6e13a9668e2bd0afc6ea3e237
parentbf894073124b8c86f9d11f14f61962781e436fcd (diff)
downloadIshtar-f4f7f849f28d93f09d3b0276d0514dbe92e1d43b.tar.bz2
Ishtar-f4f7f849f28d93f09d3b0276d0514dbe92e1d43b.zip
Manage tuple generation for html SELECT when parent is self
-rw-r--r--ishtar_common/models.py11
1 files changed, 3 insertions, 8 deletions
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: