From 1144db70d10c30880bed0e482f3c0fd8b81022cb Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 10 Jul 2011 23:16:51 +0200 Subject: Correct sorting in tables (closes #528) --- ishtar/ishtar_base/views.py | 10 +++++++--- 1 file 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: -- cgit v1.2.3