diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-15 01:08:10 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-15 01:08:10 +0100 |
| commit | fcae560dbada029bdcadd2147976dbf017ea7ba3 (patch) | |
| tree | 0dd1bd97ac29979ab95bb65931db80906f0fe8b5 | |
| parent | eacf8b9111488c9cb4ed39cd42ff93949874e225 (diff) | |
| download | Ishtar-fcae560dbada029bdcadd2147976dbf017ea7ba3.tar.bz2 Ishtar-fcae560dbada029bdcadd2147976dbf017ea7ba3.zip | |
Manage blank search (closes #211)
| -rw-r--r-- | ishtar/furnitures/views.py | 24 | ||||
| -rw-r--r-- | ishtar/furnitures/widgets.py | 2 |
2 files changed, 13 insertions, 13 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index 11563823a..c4dd517fb 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -25,7 +25,7 @@ import csv import json import datetime -from django.http import HttpResponse +from django.http import HttpResponse, Http404 from django.template import RequestContext from django.shortcuts import render_to_response, redirect from django.utils.translation import ugettext, ugettext_lazy as _ @@ -51,7 +51,7 @@ def index(request): def update_current_item(request): if not request.is_ajax() and not request.method == 'POST': - return Http404() + raise Http404 if 'value' in request.POST and 'item' in request.POST: request.session[request.POST['item']] = request.POST['value'] return HttpResponse('ok') @@ -134,13 +134,13 @@ def get_item(model, func_name, default_name, extra_request_keys=[]): """ Generic treatment of tables """ - def func(request, type='json', **dct): - if not type: - type = 'json' + def func(request, data_type='json', **dct): + if not data_type: + data_type = 'json' fields = [model._meta.get_field_by_name(k)[0] for k in model._meta.get_all_field_names()] request_keys = dict([(field.name, - field.name + (hasattr(field, 'rel') and '__pk' or '')) + field.name + (hasattr(field, 'rel') and field.rel and '__pk' or '')) for field in fields]) request_keys.update(extra_request_keys) dct = {} @@ -149,11 +149,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[]): if not q: continue dct[request_keys[k]] = q - if not dct: - if func_name in request.session: - dct = request.session[func_name] - elif default_name in request.session: + if not dct and 'submited' not in request.GET: + if default_name in request.session: dct = {"pk":request.session[default_name]} + elif func_name in request.session: + dct = request.session[func_name] if not dct: return HttpResponse(mimetype='text/plain') else: @@ -182,7 +182,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[]): else: data.append(val and unicode(val) or u"") datas.append(data) - if type == "json": + if data_type == "json": rows = [] for data in datas: res = {'id':data[0]} @@ -195,7 +195,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[]): "rows":rows }) return HttpResponse(data, mimetype='text/plain') - elif type == "csv": + elif data_type == "csv": response = HttpResponse(mimetype='text/csv') n = datetime.datetime.now() filename = u'%s_%s.csv' % (default_name, diff --git a/ishtar/furnitures/widgets.py b/ishtar/furnitures/widgets.py index 69591a9ce..34fa24357 100644 --- a/ishtar/furnitures/widgets.py +++ b/ishtar/furnitures/widgets.py @@ -194,7 +194,7 @@ jQuery("#search_%(name)s").click(function (){ }
}
var mygrid = jQuery("#grid_%(name)s");
- var url = "%(source)s?" + data;
+ var url = "%(source)s?submited=1&" + data;
mygrid.setGridParam({url:url});
mygrid.trigger("reloadGrid");
return false;
|
