diff options
Diffstat (limited to 'ishtar/furnitures/views.py')
| -rw-r--r-- | ishtar/furnitures/views.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index 4ef1f81ea..0320ce5c9 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -174,13 +174,18 @@ def get_item(model, func_name, default_name, extra_request_keys=[], field.name + (hasattr(field, 'rel') and field.rel and '__pk' or '')) for field in fields]) request_keys.update(extra_request_keys) + request_items = request.method == 'POST' and request.POST or request.GET dct = {} + try: + old = 'old' in request_items and int(request_items['old']) + except ValueError: + return HttpResponse(None, mimetype='text/plain') for k in request_keys: - q = request.GET.get(k) + q = request_items.get(k) if not q: continue dct[request_keys[k]] = q - if not dct and 'submited' not in request.GET: + if not dct and 'submited' not in request_items: if default_name in request.session and \ request.session[default_name]: dct = {"pk":request.session[default_name]} @@ -196,16 +201,20 @@ def get_item(model, func_name, default_name, extra_request_keys=[], dct[k] = dct[k] == u"2" and True or False query = Q(**dct) items = model.objects.filter(query) - q = request.GET.get('sidx') + q = request_items.get('sidx') # manage tables if q and q in request_keys: k = request_keys[q] if k.endswith("__pk"): k = k[:-len("__pk")] + "__label" - q = request.GET.get('sord') + q = request_items.get('sord') sign = q and q == u'desc' and "-" or '' items = items.order_by(sign + k) datas = [] + if old: + print [item.pk for item in items] + items = [item.get_previous(old) for item in items] + print [item.pk for item in items] for item in items: data = [item.pk] for k in model.TABLE_COLS: |
