summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-07-10 23:16:51 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-07-10 23:16:51 +0200
commit1144db70d10c30880bed0e482f3c0fd8b81022cb (patch)
tree20844e062f90c4fb91cd774d61909674c1685df6
parent71b8e41a3bdb78b89b35b2fcee8d1418fa9c3bc2 (diff)
downloadIshtar-1144db70d10c30880bed0e482f3c0fd8b81022cb.tar.bz2
Ishtar-1144db70d10c30880bed0e482f3c0fd8b81022cb.zip
Correct sorting in tables (closes #528)
-rw-r--r--ishtar/ishtar_base/views.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/ishtar/ishtar_base/views.py b/ishtar/ishtar_base/views.py
index 8a3ecb05f..99c2167d7 100644
--- a/ishtar/ishtar_base/views.py
+++ b/ishtar/ishtar_base/views.py
@@ -203,9 +203,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
dct[k] = dct[k] == u"2" and True or False
# manage hierarchic conditions
or_reqs = []
- for k in HIERARCHIC_FIELDS:
+ for k_hr in HIERARCHIC_FIELDS:
+ if k_hr not in dct:
+ continue
for req in dct.copy():
- if req.endswith(k + '__pk'):
+ if req.endswith(k_hr + '__pk'):
val = dct.pop(req)
reqs = Q(**{req:val})
req = req[:-2] + '__'
@@ -223,12 +225,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
if q and q in request_keys:
ks = request_keys[q]
if type(ks) not in (list, tuple):
- ks = [k]
+ ks = [ks]
for k in ks:
if k.endswith("__pk"):
k = k[:-len("__pk")] + "__label"
q = request_items.get('sord')
sign = q and q == u'desc' and "-" or ''
+ if '__' in k:
+ k = k.split('__')[0]
items = items.order_by(sign + k)
datas = []
if old: